mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-08 20:12:23 +00:00
Merge branch 'bug5245'
This commit is contained in:
commit
8aa2de6248
36 files changed
+610
-119
No files matched your search
+1
-1
@@ -50,7 +50,7 @@ public class Activator implements BundleActivator {
|
||||
final SwissTimingConnectivityParamsHandler paramsHandler = new SwissTimingConnectivityParamsHandler(
|
||||
MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(mongoObjectFactory, domainObjectFactory),
|
||||
MongoRegattaLogStoreFactory.INSTANCE.getMongoRegattaLogStore(mongoObjectFactory, domainObjectFactory),
|
||||
domainFactory);
|
||||
domainFactory, securityService);
|
||||
properties.put(TypeBasedServiceFinder.TYPE, SwissTimingTrackingConnectivityParameters.TYPE);
|
||||
context.registerService(RaceTrackingConnectivityParametersHandler.class, paramsHandler, properties);
|
||||
for (SwissTimingArchiveConfiguration swissTimingArchive : SwissTimingAdapterPersistence.INSTANCE
|
||||
|
||||
+1
-5
@@ -101,17 +101,13 @@ public class SwissTimingAdapterPersistenceImpl implements SwissTimingAdapterPers
|
||||
private SwissTimingArchiveConfiguration loadSwissTimingArchiveConfiguration(Document object) {
|
||||
final String jsonUrl = object.getString(FieldNames.ST_ARCHIVE_JSON_URL.name());
|
||||
String creatorName = object.getString(FieldNames.ST_ARCHIVE_CREATOR_NAME.name());
|
||||
|
||||
final boolean needsUpdate = (creatorName == null);
|
||||
if (needsUpdate) {
|
||||
// No creator is set yet -> existing configurations are assumed to belong to the admin
|
||||
creatorName = "admin";
|
||||
}
|
||||
|
||||
final SwissTimingArchiveConfiguration loadedSwissTimingArchiveConfiguration = swissTimingFactory.createSwissTimingArchiveConfiguration(
|
||||
jsonUrl,
|
||||
creatorName);
|
||||
|
||||
jsonUrl, creatorName);
|
||||
if (needsUpdate) {
|
||||
// recreating the config on the DB because the composite key changed
|
||||
deleteSwissTimingArchiveConfiguration(
|
||||
|
||||
+23
-3
@@ -16,15 +16,19 @@ import com.sap.sailing.domain.swisstimingadapter.Competitor;
|
||||
import com.sap.sailing.domain.swisstimingadapter.CrewMember;
|
||||
import com.sap.sailing.domain.swisstimingadapter.DomainFactory;
|
||||
import com.sap.sailing.domain.swisstimingadapter.StartList;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
|
||||
import com.sap.sailing.domain.swisstimingadapter.impl.CompetitorWithID;
|
||||
import com.sap.sailing.domain.swisstimingadapter.impl.CompetitorWithoutID;
|
||||
import com.sap.sailing.domain.swisstimingadapter.impl.CrewMemberImpl;
|
||||
import com.sap.sailing.domain.swisstimingadapter.impl.StartListImpl;
|
||||
import com.sap.sailing.domain.swisstimingadapter.impl.SwissTimingTrackingConnectivityParameters;
|
||||
import com.sap.sailing.domain.swisstimingadapter.persistence.SwissTimingAdapterPersistence;
|
||||
import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters;
|
||||
import com.sap.sailing.domain.tracking.impl.AbstractRaceTrackingConnectivityParametersHandler;
|
||||
import com.sap.sse.common.TypeBasedServiceFinder;
|
||||
import com.sap.sse.security.SecurityService;
|
||||
import com.sap.sse.security.SessionUtils;
|
||||
|
||||
/**
|
||||
* Handles mapping TracTrac connectivity parameters from and to a map with {@link String} keys. The
|
||||
@@ -57,16 +61,20 @@ public class SwissTimingConnectivityParamsHandler extends AbstractRaceTrackingCo
|
||||
private static final String UPDATE_URL = "updateURL";
|
||||
private static final String UPDATE_USERNAME = "updateUsername";
|
||||
private static final String UPDATE_PASSWORD = "updatePassword";
|
||||
private static final String EVENT_NAME = "eventName";
|
||||
private static final String MANAGE2SAIL_EVENT_URL = "manage2SailEventUrl";
|
||||
private final RaceLogStore raceLogStore;
|
||||
private final RegattaLogStore regattaLogStore;
|
||||
private final DomainFactory domainFactory;
|
||||
private final SwissTimingFactory swissTimingFactory;
|
||||
private final SecurityService securityService;
|
||||
|
||||
public SwissTimingConnectivityParamsHandler(RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, DomainFactory domainFactory) {
|
||||
public SwissTimingConnectivityParamsHandler(RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, DomainFactory domainFactory, SecurityService securityService) {
|
||||
super();
|
||||
this.raceLogStore = raceLogStore;
|
||||
this.regattaLogStore = regattaLogStore;
|
||||
this.domainFactory = domainFactory;
|
||||
this.securityService = securityService;
|
||||
this.swissTimingFactory = SwissTimingFactory.INSTANCE;
|
||||
}
|
||||
|
||||
@@ -84,6 +92,8 @@ public class SwissTimingConnectivityParamsHandler extends AbstractRaceTrackingCo
|
||||
result.put(UPDATE_URL, stParams.getUpdateURL());
|
||||
result.put(UPDATE_USERNAME, stParams.getUpdateUsername());
|
||||
result.put(UPDATE_PASSWORD, stParams.getUpdatePassword());
|
||||
result.put(EVENT_NAME, stParams.getEventName());
|
||||
result.put(MANAGE2SAIL_EVENT_URL, stParams.getManage2SailEventUrl());
|
||||
addWindTrackingParameters(stParams, result);
|
||||
return result;
|
||||
}
|
||||
@@ -184,7 +194,9 @@ public class SwissTimingConnectivityParamsHandler extends AbstractRaceTrackingCo
|
||||
(boolean) map.get(USE_INTERNAL_MARK_PASSING_ALGORITHM), isTrackWind(map), isCorrectWindDirectionByMagneticDeclination(map),
|
||||
(String) map.get(UPDATE_URL),
|
||||
(String) map.get(UPDATE_USERNAME),
|
||||
(String) map.get(UPDATE_PASSWORD));
|
||||
(String) map.get(UPDATE_PASSWORD),
|
||||
(String) map.get(EVENT_NAME),
|
||||
(String) map.get(MANAGE2SAIL_EVENT_URL));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -209,7 +221,15 @@ public class SwissTimingConnectivityParamsHandler extends AbstractRaceTrackingCo
|
||||
stParams.getDelayToLiveInMillis(), swissTimingFactory, domainFactory, raceLogStore, regattaLogStore,
|
||||
stParams.isUseInternalMarkPassingAlgorithm(), stParams.isTrackWind(),
|
||||
stParams.isCorrectWindDirectionByMagneticDeclination(), stParams.getUpdateURL(),
|
||||
stParams.getUpdateUsername(), stParams.getUpdatePassword());
|
||||
stParams.getUpdateUsername(), stParams.getUpdatePassword(), stParams.getEventName(), stParams.getManage2SailEventUrl());
|
||||
final String creatorName = SessionUtils.getPrincipal().toString();
|
||||
if (result.getManage2SailEventUrl() != null) { // legacy records won't have this URL stored in their connectivity params
|
||||
final SwissTimingConfiguration swissTimingConfiguration = SwissTimingFactory.INSTANCE
|
||||
.createSwissTimingConfiguration(result.getEventName(), result.getManage2SailEventUrl(), result.getHostname(), result.getPort(), result.getUpdateURL(),
|
||||
result.getUpdateUsername(), result.getUpdatePassword(), creatorName);
|
||||
SwissTimingAdapterPersistence.INSTANCE.updateSwissTimingConfiguration(swissTimingConfiguration);
|
||||
securityService.setDefaultOwnershipIfNotSet(swissTimingConfiguration.getIdentifier());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -77,7 +77,7 @@ public interface DomainFactory {
|
||||
RaceTrackingConnectivityParameters createTrackingConnectivityParameters(String hostname, int port, String raceID,
|
||||
String raceName, String raceDescription, BoatClass boatClass, StartList startList,
|
||||
long delayToLiveInMillis, SwissTimingFactory swissTimingFactory, DomainFactory domainFactory,
|
||||
RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, boolean useInternalMarkPassingAlgorithm, boolean trackWind, boolean correctWindDirectionByMagneticDeclination, String updateURL, String updateUsername, String updatePassword);
|
||||
RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, boolean useInternalMarkPassingAlgorithm, boolean trackWind, boolean correctWindDirectionByMagneticDeclination, String updateURL, String updateUsername, String updatePassword, String eventName, String manage2SailEventUrl);
|
||||
|
||||
ControlPoint getOrCreateControlPoint(String description, Iterable<Serializable> deviceIds, MarkType markType,
|
||||
String shortNameOfGate);
|
||||
|
||||
+4
-1
@@ -29,7 +29,10 @@ public interface SwissTimingAdapter {
|
||||
*/
|
||||
RaceHandle addSwissTimingRace(TrackerManager trackerManager, RegattaIdentifier regattaToAddTo, String raceID,
|
||||
String raceName, String raceDescription, BoatClass boatClass, String hostname, int port,
|
||||
StartList startList, RaceLogStore logStore, RegattaLogStore regattaLogStore, long timeoutInMilliseconds, boolean useInternalMarkPassingAlgorithm, boolean trackWind, boolean correctWindDirectionByMagneticDeclination, String updateURL, String updateUsername, String updatePassword)
|
||||
StartList startList, RaceLogStore logStore, RegattaLogStore regattaLogStore, long timeoutInMilliseconds,
|
||||
boolean useInternalMarkPassingAlgorithm, boolean trackWind,
|
||||
boolean correctWindDirectionByMagneticDeclination, String updateURL, String updateUsername,
|
||||
String updatePassword, String eventName, String manage2SailEventUrl)
|
||||
throws InterruptedException, UnknownHostException, IOException, ParseException, Exception;
|
||||
|
||||
StartList readStartListForRace(String raceId, RegattaResults regattaResults);
|
||||
|
||||
+2
-2
@@ -429,11 +429,11 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
long delayToLiveInMillis, SwissTimingFactory swissTimingFactory, DomainFactory domainFactory,
|
||||
RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, boolean useInternalMarkPassingAlgorithm,
|
||||
boolean trackWind, boolean correctWindDirectionByMagneticDeclination, String updateURL,
|
||||
String updateUsername, String updatePassword) {
|
||||
String updateUsername, String updatePassword, String eventName, String manage2SailEventUrl) {
|
||||
return new SwissTimingTrackingConnectivityParameters(hostname, port, raceID, raceName, raceDescription,
|
||||
boatClass, startList, delayToLiveInMillis, swissTimingFactory, domainFactory, raceLogStore,
|
||||
regattaLogStore, useInternalMarkPassingAlgorithm, trackWind, correctWindDirectionByMagneticDeclination,
|
||||
updateURL, updateUsername, updatePassword);
|
||||
updateURL, updateUsername, updatePassword, eventName, manage2SailEventUrl);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
-2
@@ -70,12 +70,13 @@ public class SwissTimingAdapterImpl implements SwissTimingAdapter {
|
||||
String raceName, String raceDescription, BoatClass boatClass, String hostname, int port,
|
||||
StartList startList, RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, long timeoutInMilliseconds,
|
||||
boolean useInternalMarkPassingAlgorithm, boolean trackWind, boolean correctWindDirectionByMagneticDeclination,
|
||||
String updateURL, String updateUsername, String updatePassword) throws Exception {
|
||||
String updateURL, String updateUsername, String updatePassword, String eventName, String manage2SailEventUrl) throws Exception {
|
||||
return trackerManager.addRace(regattaToAddTo,
|
||||
swissTimingDomainFactory.createTrackingConnectivityParameters(hostname, port, raceID, raceName,
|
||||
raceDescription, boatClass, startList, DEFAULT_SWISSTIMING_LIVE_DELAY_IN_MILLISECONDS,
|
||||
swissTimingFactory, swissTimingDomainFactory, raceLogStore, regattaLogStore,
|
||||
useInternalMarkPassingAlgorithm, trackWind, correctWindDirectionByMagneticDeclination, updateURL, updateUsername, updatePassword),
|
||||
useInternalMarkPassingAlgorithm, trackWind, correctWindDirectionByMagneticDeclination,
|
||||
updateURL, updateUsername, updatePassword, eventName, manage2SailEventUrl),
|
||||
timeoutInMilliseconds);
|
||||
}
|
||||
|
||||
|
||||
+14
-1
@@ -37,12 +37,15 @@ public class SwissTimingTrackingConnectivityParameters extends AbstractRaceTrack
|
||||
private final String updateURL;
|
||||
private final String updateUsername;
|
||||
private final String updatePassword;
|
||||
private final String eventName;
|
||||
private final String manage2SailEventUrl;
|
||||
|
||||
public SwissTimingTrackingConnectivityParameters(String hostname, int port, String raceID, String raceName,
|
||||
String raceDescription, BoatClass boatClass, StartList startList, long delayToLiveInMillis,
|
||||
SwissTimingFactory swissTimingFactory, DomainFactory domainFactory, RaceLogStore raceLogStore,
|
||||
RegattaLogStore regattaLogStore, boolean useInternalMarkPassingAlgorithm, boolean trackWind,
|
||||
boolean correctWindDirectionByMagneticDeclination, String updateURL, String updateUsername, String updatePassword) {
|
||||
boolean correctWindDirectionByMagneticDeclination, String updateURL, String updateUsername,
|
||||
String updatePassword, String eventName, String manage2SailEventUrl) {
|
||||
super(trackWind, correctWindDirectionByMagneticDeclination);
|
||||
this.hostname = hostname;
|
||||
this.port = port;
|
||||
@@ -60,6 +63,8 @@ public class SwissTimingTrackingConnectivityParameters extends AbstractRaceTrack
|
||||
this.updateURL = updateURL;
|
||||
this.updateUsername = updateUsername;
|
||||
this.updatePassword = updatePassword;
|
||||
this.eventName = eventName;
|
||||
this.manage2SailEventUrl = manage2SailEventUrl;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -137,6 +142,14 @@ public class SwissTimingTrackingConnectivityParameters extends AbstractRaceTrack
|
||||
return useInternalMarkPassingAlgorithm;
|
||||
}
|
||||
|
||||
public String getEventName() {
|
||||
return eventName;
|
||||
}
|
||||
|
||||
public String getManage2SailEventUrl() {
|
||||
return manage2SailEventUrl;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getClass().getSimpleName()+" for "+hostname+":"+port+", raceName: "+raceName+", raceID: "+raceID+", boatClass: "+boatClass;
|
||||
|
||||
@@ -14,10 +14,14 @@ Require-Bundle: com.sap.sailing.domain.common,
|
||||
com.sap.sse,
|
||||
com.sap.sse.common,
|
||||
com.sap.sailing.domain.shared.android,
|
||||
com.sap.sailing.domain.persistence
|
||||
com.sap.sailing.domain.persistence,
|
||||
com.sap.sailing.domain.swisstimingadapter.persistence,
|
||||
com.sap.sse.replication.interfaces,
|
||||
com.sap.sse.security
|
||||
Export-Package: com.sap.sailing.domain.swisstimingreplayadapter,
|
||||
com.sap.sailing.domain.swisstimingreplayadapter.impl;x-friends:="com.sap.sailing.mongodb.test"
|
||||
Import-Package: org.osgi.framework;version="1.7.0",
|
||||
Import-Package: com.sap.sse.security,
|
||||
org.osgi.framework;version="1.7.0",
|
||||
org.osgi.util.tracker;version="1.5.1"
|
||||
Bundle-Activator: com.sap.sailing.domain.swisstimingreplayadapter.impl.Activator
|
||||
Automatic-Module-Name: com.sap.sailing.domain.swisstimingreplayadapter
|
||||
+7
-3
@@ -35,6 +35,9 @@ public interface SwissTimingReplayService {
|
||||
* @param link
|
||||
* the URL without the implicit "http://" prefix, as obtained, e.g., from
|
||||
* {@link SwissTimingReplayRace#getLink()}.
|
||||
* @param swissTimingUrl
|
||||
* the overview URL that lists the races that can be loaded; passed through in particular for
|
||||
* re-establishing after master data import
|
||||
* @param raceID
|
||||
* the SwissTiming ID for the race
|
||||
* @param useInternalMarkPassingAlgorithm
|
||||
@@ -43,9 +46,10 @@ public interface SwissTimingReplayService {
|
||||
* only required if {@code regattaToAddTo} is {@code null}; used for the retrieval/creation of a default
|
||||
* regatta
|
||||
*/
|
||||
void loadRaceData(RegattaIdentifier regattaToAddTo, String link, String raceName, String raceID,
|
||||
String boatClassName, TrackerManager trackerManager, TrackedRegattaRegistry trackedRegattaRegistry,
|
||||
boolean useInternalMarkPassingAlgorithm, RaceLogStore raceLogStore, RegattaLogStore regattaLogStore)
|
||||
void loadRaceData(RegattaIdentifier regattaToAddTo, String link, String swissTimingUrl, String raceName,
|
||||
String raceID, String boatClassName, TrackerManager trackerManager,
|
||||
TrackedRegattaRegistry trackedRegattaRegistry, boolean useInternalMarkPassingAlgorithm,
|
||||
RaceLogStore raceLogStore, RegattaLogStore regattaLogStore)
|
||||
throws MalformedURLException, FileNotFoundException, URISyntaxException, Exception;
|
||||
|
||||
/**
|
||||
|
||||
+6
-1
@@ -19,6 +19,8 @@ import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayServiceF
|
||||
import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParametersHandler;
|
||||
import com.sap.sse.MasterDataImportClassLoaderService;
|
||||
import com.sap.sse.common.TypeBasedServiceFinder;
|
||||
import com.sap.sse.replication.FullyInitializedReplicableTracker;
|
||||
import com.sap.sse.security.SecurityService;
|
||||
import com.sap.sse.util.ServiceTrackerFactory;
|
||||
|
||||
public class Activator implements BundleActivator {
|
||||
@@ -40,11 +42,13 @@ public class Activator implements BundleActivator {
|
||||
final ServiceTracker<DomainObjectFactory, DomainObjectFactory> domainObjectFactoryServiceTracker = ServiceTrackerFactory.createAndOpen(context, DomainObjectFactory.class);
|
||||
final ServiceTracker<SwissTimingAdapterFactory, SwissTimingAdapterFactory> swissTimingAdapterFactoryServiceTracker = ServiceTrackerFactory.createAndOpen(context, SwissTimingAdapterFactory.class);
|
||||
final ServiceTracker<RaceLogResolver, RaceLogResolver> raceLogResolverServiceTracker = ServiceTrackerFactory.createAndOpen(context, RaceLogResolver.class);
|
||||
final FullyInitializedReplicableTracker<SecurityService> securityServiceTracker = FullyInitializedReplicableTracker.createAndOpen(context, SecurityService.class);
|
||||
try {
|
||||
final MongoObjectFactory mongoObjectFactory = mongoObjectFactoryServiceTracker.waitForService(0);
|
||||
final DomainObjectFactory domainObjectFactory = domainObjectFactoryServiceTracker.waitForService(0);
|
||||
final SwissTimingAdapterFactory swissTimingAdapterFactory = swissTimingAdapterFactoryServiceTracker.waitForService(0);
|
||||
final RaceLogResolver raceLogResolver = raceLogResolverServiceTracker.waitForService(0);
|
||||
final SecurityService securityService = securityServiceTracker.getInitializedService(0);
|
||||
final Dictionary<String, Object> properties = new Hashtable<String, Object>();
|
||||
final com.sap.sailing.domain.swisstimingadapter.DomainFactory domainFactory = swissTimingAdapterFactory
|
||||
.getOrCreateSwissTimingAdapter(domainObjectFactory.getBaseDomainFactory())
|
||||
@@ -52,7 +56,8 @@ public class Activator implements BundleActivator {
|
||||
final SwissTimingReplayConnectivityParamsHandler paramsHandler = new SwissTimingReplayConnectivityParamsHandler(
|
||||
MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(mongoObjectFactory, domainObjectFactory),
|
||||
MongoRegattaLogStoreFactory.INSTANCE.getMongoRegattaLogStore(mongoObjectFactory, domainObjectFactory),
|
||||
domainFactory, swissTimingReplayServiceFactory.createSwissTimingReplayService(domainFactory, raceLogResolver));
|
||||
domainFactory, swissTimingReplayServiceFactory.createSwissTimingReplayService(domainFactory, raceLogResolver),
|
||||
securityService);
|
||||
properties.put(TypeBasedServiceFinder.TYPE, SwissTimingReplayConnectivityParameters.TYPE);
|
||||
context.registerService(RaceTrackingConnectivityParametersHandler.class, paramsHandler, properties);
|
||||
} catch (Exception e) {
|
||||
|
||||
+8
-2
@@ -32,6 +32,7 @@ public class SwissTimingReplayConnectivityParameters extends AbstractRaceTrackin
|
||||
private final String raceName;
|
||||
private final String raceID;
|
||||
private final String link;
|
||||
private final String swissTimingUrl;
|
||||
private final transient SwissTimingReplayService replayService;
|
||||
|
||||
class SwissTimingReplayRaceTracker extends AbstractRaceTrackerImpl {
|
||||
@@ -120,11 +121,12 @@ public class SwissTimingReplayConnectivityParameters extends AbstractRaceTrackin
|
||||
}
|
||||
}
|
||||
|
||||
public SwissTimingReplayConnectivityParameters(String link, String raceName, String raceID, String boatClassName,
|
||||
boolean useInternalMarkPassingAlgorithm, DomainFactory domainFactory,
|
||||
public SwissTimingReplayConnectivityParameters(String link, String swissTimingUrl, String raceName, String raceID,
|
||||
String boatClassName, boolean useInternalMarkPassingAlgorithm, DomainFactory domainFactory,
|
||||
SwissTimingReplayService replayService, RaceLogStore raceLogStore, RegattaLogStore regattaLogStore) {
|
||||
super(/* trackWind: never track live wind with a SwissTiming Replay race */ false, /* correctWindDirectionByMagneticDeclination */ false);
|
||||
this.link = link;
|
||||
this.swissTimingUrl = swissTimingUrl;
|
||||
this.raceName = raceName;
|
||||
this.raceID = raceID;
|
||||
this.boatClassName = boatClassName;
|
||||
@@ -199,6 +201,10 @@ public class SwissTimingReplayConnectivityParameters extends AbstractRaceTrackin
|
||||
return link;
|
||||
}
|
||||
|
||||
public String getSwissTimingUrl() {
|
||||
return swissTimingUrl;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getClass().getSimpleName()+" for "+raceName+"/"+raceID+", link: "+link+", boatClassName: "+boatClassName;
|
||||
|
||||
+24
-8
@@ -8,10 +8,15 @@ import java.util.Map;
|
||||
import com.sap.sailing.domain.racelog.RaceLogStore;
|
||||
import com.sap.sailing.domain.regattalog.RegattaLogStore;
|
||||
import com.sap.sailing.domain.swisstimingadapter.DomainFactory;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingArchiveConfiguration;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
|
||||
import com.sap.sailing.domain.swisstimingadapter.persistence.SwissTimingAdapterPersistence;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayService;
|
||||
import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters;
|
||||
import com.sap.sailing.domain.tracking.impl.AbstractRaceTrackingConnectivityParametersHandler;
|
||||
import com.sap.sse.common.TypeBasedServiceFinder;
|
||||
import com.sap.sse.security.SecurityService;
|
||||
import com.sap.sse.security.SessionUtils;
|
||||
|
||||
/**
|
||||
* Handles mapping TracTrac connectivity parameters from and to a map with {@link String} keys. The
|
||||
@@ -28,20 +33,23 @@ public class SwissTimingReplayConnectivityParamsHandler extends AbstractRaceTrac
|
||||
private static final String RACE_ID = "raceId";
|
||||
private static final String RACE_NAME = "raceName";
|
||||
private static final String LINK = "link";
|
||||
private static final String SWISS_TIMING_URL = "swissTimingUrl";
|
||||
private static final String USE_INTERNAL_MARK_PASSING_ALGORITHM = "useInternalMarkPassingAlgorithm";
|
||||
private static final String DELAY_TO_LIVE_IN_MILLIS = "delayToLiveInMillis";
|
||||
private final RaceLogStore raceLogStore;
|
||||
private final RegattaLogStore regattaLogStore;
|
||||
private final DomainFactory domainFactory;
|
||||
private final SwissTimingReplayService replayService;
|
||||
private final SecurityService securityService;
|
||||
|
||||
public SwissTimingReplayConnectivityParamsHandler(RaceLogStore raceLogStore, RegattaLogStore regattaLogStore,
|
||||
DomainFactory domainFactory, SwissTimingReplayService replayService) {
|
||||
DomainFactory domainFactory, SwissTimingReplayService replayService, SecurityService securityService) {
|
||||
super();
|
||||
this.raceLogStore = raceLogStore;
|
||||
this.regattaLogStore = regattaLogStore;
|
||||
this.domainFactory = domainFactory;
|
||||
this.replayService = replayService;
|
||||
this.securityService = securityService;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -49,6 +57,7 @@ public class SwissTimingReplayConnectivityParamsHandler extends AbstractRaceTrac
|
||||
assert params instanceof SwissTimingReplayConnectivityParameters;
|
||||
final SwissTimingReplayConnectivityParameters stParams = (SwissTimingReplayConnectivityParameters) params;
|
||||
final Map<String, Object> result = getKey(params);
|
||||
result.put(SWISS_TIMING_URL, stParams.getSwissTimingUrl());
|
||||
result.put(DELAY_TO_LIVE_IN_MILLIS, stParams.getDelayToLiveInMillis());
|
||||
result.put(USE_INTERNAL_MARK_PASSING_ALGORITHM, stParams.isUseInternalMarkPassingAlgorithm());
|
||||
result.put(RACE_NAME, stParams.getRaceName());
|
||||
@@ -60,10 +69,10 @@ public class SwissTimingReplayConnectivityParamsHandler extends AbstractRaceTrac
|
||||
|
||||
@Override
|
||||
public RaceTrackingConnectivityParameters mapTo(Map<String, Object> map) throws MalformedURLException, URISyntaxException {
|
||||
return new SwissTimingReplayConnectivityParameters((String) map.get(LINK), (String) map.get(RACE_NAME),
|
||||
(String) map.get(RACE_ID), (String) map.get(BOAT_CLASS_NAME),
|
||||
(boolean) map.get(USE_INTERNAL_MARK_PASSING_ALGORITHM), domainFactory, replayService, raceLogStore,
|
||||
regattaLogStore);
|
||||
return new SwissTimingReplayConnectivityParameters((String) map.get(LINK), (String) map.get(SWISS_TIMING_URL),
|
||||
(String) map.get(RACE_NAME), (String) map.get(RACE_ID),
|
||||
(String) map.get(BOAT_CLASS_NAME), (boolean) map.get(USE_INTERNAL_MARK_PASSING_ALGORITHM), domainFactory, replayService,
|
||||
raceLogStore, regattaLogStore);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -81,9 +90,16 @@ public class SwissTimingReplayConnectivityParamsHandler extends AbstractRaceTrac
|
||||
assert params instanceof SwissTimingReplayConnectivityParameters;
|
||||
final SwissTimingReplayConnectivityParameters stParams = (SwissTimingReplayConnectivityParameters) params;
|
||||
SwissTimingReplayConnectivityParameters result = new SwissTimingReplayConnectivityParameters(stParams.getLink(),
|
||||
stParams.getRaceName(), stParams.getRaceID(), stParams.getBoatClassName(),
|
||||
stParams.isUseInternalMarkPassingAlgorithm(), domainFactory, replayService, raceLogStore,
|
||||
regattaLogStore);
|
||||
stParams.getSwissTimingUrl(), stParams.getRaceName(), stParams.getRaceID(),
|
||||
stParams.getBoatClassName(), stParams.isUseInternalMarkPassingAlgorithm(), domainFactory, replayService,
|
||||
raceLogStore, regattaLogStore);
|
||||
final String creatorName = SessionUtils.getPrincipal().toString();
|
||||
if (result.getSwissTimingUrl() != null) { // legacy records won't have this URL stored in their connectivity params
|
||||
final SwissTimingArchiveConfiguration swissTimingArchiveConfiguration = SwissTimingFactory.INSTANCE
|
||||
.createSwissTimingArchiveConfiguration(result.getSwissTimingUrl(), creatorName);
|
||||
SwissTimingAdapterPersistence.INSTANCE.updateSwissTimingArchiveConfiguration(swissTimingArchiveConfiguration);
|
||||
securityService.setDefaultOwnershipIfNotSet(swissTimingArchiveConfiguration.getIdentifier());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
+7
-5
@@ -149,11 +149,13 @@ public class SwissTimingReplayServiceImpl implements SwissTimingReplayService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadRaceData(RegattaIdentifier regattaToAddTo, String link, String raceName, String raceID,
|
||||
String boatClassName, TrackerManager trackerManager, TrackedRegattaRegistry trackedRegattaRegistry,
|
||||
boolean useInternalMarkPassingAlgorithm, RaceLogStore raceLogStore, RegattaLogStore regattaLogStore)
|
||||
public void loadRaceData(RegattaIdentifier regattaToAddTo, String link, String swissTimingUrl, String raceName,
|
||||
String raceID, String boatClassName, TrackerManager trackerManager,
|
||||
TrackedRegattaRegistry trackedRegattaRegistry, boolean useInternalMarkPassingAlgorithm,
|
||||
RaceLogStore raceLogStore, RegattaLogStore regattaLogStore)
|
||||
throws MalformedURLException, FileNotFoundException, URISyntaxException, Exception {
|
||||
trackerManager.addRace(regattaToAddTo, new SwissTimingReplayConnectivityParameters(link, raceName, raceID,
|
||||
boatClassName, useInternalMarkPassingAlgorithm, domainFactory, this, raceLogStore, regattaLogStore), /* timeout */ -1);
|
||||
trackerManager
|
||||
.addRace(regattaToAddTo, new SwissTimingReplayConnectivityParameters(link, swissTimingUrl, raceName,
|
||||
raceID, boatClassName, useInternalMarkPassingAlgorithm, domainFactory, this, raceLogStore, regattaLogStore), /* timeout */ -1);
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,10 @@ Require-Bundle: com.sap.sse.mongodb,
|
||||
com.sap.sse,
|
||||
org.mongodb.mongo-java-driver;bundle-version="3.6.4",
|
||||
com.sap.sse.security.common,
|
||||
com.sap.sse.replication.interfaces
|
||||
com.sap.sse.replication.interfaces,
|
||||
com.tractrac.clientmodule;bundle-version="3.13.1",
|
||||
org.json.simple,
|
||||
com.sap.sse.security
|
||||
Export-Package: com.sap.sailing.domain.tractracadapter.persistence,
|
||||
com.sap.sailing.domain.tractracadapter.persistence.impl;x-friends:="com.sap.sailing.mongodb.test"
|
||||
Import-Package: com.sap.sse.security,
|
||||
|
||||
+6
-8
@@ -59,22 +59,20 @@ public class Activator implements BundleActivator {
|
||||
final com.sap.sailing.domain.tractracadapter.DomainFactory domainFactory = tractracAdapterFactory
|
||||
.getOrCreateTracTracAdapter(domainObjectFactory.getBaseDomainFactory())
|
||||
.getTracTracDomainFactory();
|
||||
final TracTracConnectivityParamsHandler paramsHandler = new TracTracConnectivityParamsHandler(
|
||||
MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(mongoObjectFactory, domainObjectFactory),
|
||||
MongoRegattaLogStoreFactory.INSTANCE.getMongoRegattaLogStore(mongoObjectFactory,
|
||||
domainObjectFactory),
|
||||
domainFactory);
|
||||
|
||||
com.sap.sailing.domain.tractracadapter.persistence.DomainObjectFactory tractracDomainObjectFactory = com.sap.sailing.domain.tractracadapter.persistence.PersistenceFactory.INSTANCE
|
||||
.createDomainObjectFactory(mongoObjectFactory.getDatabase(), domainFactory);
|
||||
com.sap.sailing.domain.tractracadapter.persistence.MongoObjectFactory tractracMongoObjectFactory = com.sap.sailing.domain.tractracadapter.persistence.PersistenceFactory.INSTANCE
|
||||
.createMongoObjectFactory(mongoObjectFactory.getDatabase());
|
||||
final TracTracConnectivityParamsHandler paramsHandler = new TracTracConnectivityParamsHandler(
|
||||
MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(mongoObjectFactory, domainObjectFactory),
|
||||
MongoRegattaLogStoreFactory.INSTANCE.getMongoRegattaLogStore(mongoObjectFactory,
|
||||
domainObjectFactory),
|
||||
domainFactory, tractracMongoObjectFactory, securityService);
|
||||
for (TracTracConfiguration trackTrackConfig : tractracDomainObjectFactory.getTracTracConfigurations()) {
|
||||
securityService.migrateOwnership(trackTrackConfig);
|
||||
}
|
||||
// we do not necessarily have tractrac configs, so ensure that migration is marked as done
|
||||
// we do not necessarily have TracTrac configurations, so ensure that migration is marked as done
|
||||
securityService.assumeOwnershipMigrated(SecuredDomainType.TRACTRAC_ACCOUNT.getName());
|
||||
|
||||
properties.put(TypeBasedServiceFinder.TYPE, RaceTrackingConnectivityParametersImpl.TYPE);
|
||||
context.registerService(RaceTrackingConnectivityParametersHandler.class, paramsHandler, properties);
|
||||
context.registerService(ClearStateTestSupport.class.getName(), new ClearStateTestSupport() {
|
||||
|
||||
+38
-2
@@ -1,11 +1,18 @@
|
||||
package com.sap.sailing.domain.tractracadapter.persistence.impl;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.json.simple.parser.ParseException;
|
||||
|
||||
import com.sap.sailing.domain.racelog.RaceLogStore;
|
||||
import com.sap.sailing.domain.regattalog.RegattaLogStore;
|
||||
import com.sap.sailing.domain.tracking.RaceTracker;
|
||||
@@ -13,10 +20,15 @@ import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters;
|
||||
import com.sap.sailing.domain.tracking.impl.AbstractRaceTrackingConnectivityParametersHandler;
|
||||
import com.sap.sailing.domain.tractracadapter.DomainFactory;
|
||||
import com.sap.sailing.domain.tractracadapter.impl.RaceTrackingConnectivityParametersImpl;
|
||||
import com.sap.sailing.domain.tractracadapter.impl.TracTracConfigurationImpl;
|
||||
import com.sap.sailing.domain.tractracadapter.impl.TracTracRaceTrackerImpl;
|
||||
import com.sap.sailing.domain.tractracadapter.persistence.MongoObjectFactory;
|
||||
import com.sap.sse.common.TypeBasedServiceFinder;
|
||||
import com.sap.sse.common.impl.MillisecondsDurationImpl;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sse.security.SecurityService;
|
||||
import com.sap.sse.security.SessionUtils;
|
||||
import com.sap.sse.util.HttpUrlConnectionHelper;
|
||||
|
||||
/**
|
||||
* Handles mapping TracTrac connectivity parameters from and to a map with {@link String} keys. The
|
||||
@@ -46,12 +58,18 @@ public class TracTracConnectivityParamsHandler extends AbstractRaceTrackingConne
|
||||
private final RaceLogStore raceLogStore;
|
||||
private final RegattaLogStore regattaLogStore;
|
||||
private final DomainFactory domainFactory;
|
||||
private final MongoObjectFactory tractracMongoObjectFactory;
|
||||
private final SecurityService securityService;
|
||||
|
||||
public TracTracConnectivityParamsHandler(RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, DomainFactory domainFactory) {
|
||||
public TracTracConnectivityParamsHandler(RaceLogStore raceLogStore, RegattaLogStore regattaLogStore,
|
||||
DomainFactory domainFactory, MongoObjectFactory tractracMongoObjectFactory,
|
||||
SecurityService securityService) {
|
||||
super();
|
||||
this.raceLogStore = raceLogStore;
|
||||
this.regattaLogStore = regattaLogStore;
|
||||
this.domainFactory = domainFactory;
|
||||
this.tractracMongoObjectFactory = tractracMongoObjectFactory;
|
||||
this.securityService = securityService;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -121,6 +139,24 @@ public class TracTracConnectivityParamsHandler extends AbstractRaceTrackingConne
|
||||
ttParams.getRaceVisibility(), ttParams.isTrackWind(),
|
||||
ttParams.isCorrectWindDirectionByMagneticDeclination(), ttParams.isPreferReplayIfAvailable(),
|
||||
ttParams.getTimeoutInMillis(), ttParams.isUseOfficialEventsToUpdateRaceLog());
|
||||
return result;
|
||||
updatePersistentTracTracConfiguration(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void updatePersistentTracTracConfiguration(RaceTrackingConnectivityParametersImpl params)
|
||||
throws MalformedURLException, IOException, ParseException {
|
||||
final String EVENT_MANAGER_HOSTNAME_PREFIX = "em.";
|
||||
final URL paramsJsonUrl = new URL(params.getParamURL().getProtocol(),
|
||||
params.getParamURL().getHost().startsWith(EVENT_MANAGER_HOSTNAME_PREFIX) ? params.getParamURL().getHost() : EVENT_MANAGER_HOSTNAME_PREFIX+params.getParamURL().getHost(),
|
||||
"/events/"+params.getTractracRace().getEvent().getId().toString()+"/races/"+params.getTractracRace().getId().toString()+".json");
|
||||
final URLConnection conn = HttpUrlConnectionHelper.redirectConnection(paramsJsonUrl);
|
||||
final JSONObject paramsJson = (JSONObject) new JSONParser().parse(new InputStreamReader(conn.getInputStream()));
|
||||
final String jsonURL = (String) paramsJson.get("eventJSON");
|
||||
final String creatorName = SessionUtils.getPrincipal().toString();
|
||||
final TracTracConfigurationImpl tracTracConfiguration = new TracTracConfigurationImpl(creatorName, params.getTractracRace().getEvent().getName(), jsonURL,
|
||||
/* live URI */ null, /* stored URI */ null, // we mainly want to enable the user to list the event's races again in case they are removed; live/stored stuff comes from the tracking params
|
||||
params.getCourseDesignUpdateURI()==null?null:params.getCourseDesignUpdateURI().toString(), params.getTracTracUsername(), params.getTracTracPassword());
|
||||
tractracMongoObjectFactory.updateTracTracConfiguration(tracTracConfiguration);
|
||||
securityService.setDefaultOwnershipIfNotSet(tracTracConfiguration.getIdentifier());
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -75,7 +75,7 @@ public class SailingServiceImplMock extends SailingServiceImpl {
|
||||
public RaceHandle addSwissTimingRace(TrackerManager trackerManager,
|
||||
RegattaIdentifier regattaToAddTo, String raceID, String raceName, String raceDescription,
|
||||
BoatClass boatClass, String hostname, int port, StartList startList, RaceLogStore logStore,
|
||||
RegattaLogStore regattaLogStore, long timeoutInMilliseconds, boolean useInternalMarkPassingAlgorithm, boolean trackWind, boolean correctWindDirectionByMagneticDeclination, String updateURL, String updateUsername, String updatePassword) throws InterruptedException,
|
||||
RegattaLogStore regattaLogStore, long timeoutInMilliseconds, boolean useInternalMarkPassingAlgorithm, boolean trackWind, boolean correctWindDirectionByMagneticDeclination, String updateURL, String updateUsername, String updatePassword, String eventName, String manage2SailEventUrl) throws InterruptedException,
|
||||
UnknownHostException, IOException, ParseException, Exception {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
|
||||
+14
-24
@@ -76,12 +76,9 @@ public class SwissTimingEventManagementPanel extends AbstractEventManagementPane
|
||||
VerticalPanel verticalPanel = new VerticalPanel();
|
||||
captionPanelConnections.setContentWidget(verticalPanel);
|
||||
captionPanelConnections.setStyleName("bold");
|
||||
|
||||
connectionsTable = new SwissTimingConnectionTableWrapper(userService, sailingService, stringConstants,
|
||||
errorReporter, true, tableResources, () -> {
|
||||
});
|
||||
errorReporter, true, tableResources, () -> {});
|
||||
connectionsTable.refreshSwissTimingConnectionList();
|
||||
|
||||
// Add button panel
|
||||
final AccessControlledButtonPanel buttonPanel = new AccessControlledButtonPanel(userService,
|
||||
SecuredDomainType.TRACKED_RACE);
|
||||
@@ -119,7 +116,6 @@ public class SwissTimingEventManagementPanel extends AbstractEventManagementPane
|
||||
public void cancel() {
|
||||
}
|
||||
}, userService, errorReporter).show());
|
||||
|
||||
// Remove SwissTiming Connection
|
||||
final Button removeButton = buttonPanel.addRemoveAction(stringMessages.remove(), () -> {
|
||||
sailingService.deleteSwissTimingConfiguration(connectionsTable.getSelectionModel().getSelectedObject(),
|
||||
@@ -136,7 +132,6 @@ public class SwissTimingEventManagementPanel extends AbstractEventManagementPane
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// List Races in SwissTiming Connection
|
||||
final Button listRacesButton = buttonPanel.addUnsecuredAction(stringMessages.listRaces(), () -> {
|
||||
fillRaces(sailingService);
|
||||
@@ -296,7 +291,6 @@ public class SwissTimingEventManagementPanel extends AbstractEventManagementPane
|
||||
raceTable.addColumn(regattaNameColumn, stringConstants.regatta());
|
||||
raceTable.addColumn(seriesNameColumn, stringConstants.series());
|
||||
raceTable.addColumn(raceNameColumn, stringConstants.name());
|
||||
//raceTable.addColumn(raceIdColumn, stringConstants.id());
|
||||
raceTable.addColumn(raceStatusColumn, stringConstants.status());
|
||||
raceTable.addColumn(boatClassColumn, stringConstants.boatClass());
|
||||
raceTable.addColumn(genderColumn, stringConstants.gender());
|
||||
@@ -323,14 +317,11 @@ public class SwissTimingEventManagementPanel extends AbstractEventManagementPane
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
private ListHandler<SwissTimingRaceRecordDTO> getRaceTableColumnSortHandler(List<SwissTimingRaceRecordDTO> raceRecords,
|
||||
Column<SwissTimingRaceRecordDTO, ?> regattaNameColumn, Column<SwissTimingRaceRecordDTO, ?> seriesNameColumn,
|
||||
Column<SwissTimingRaceRecordDTO, ?> nameColumn, Column<SwissTimingRaceRecordDTO, ?> trackingStartColumn,
|
||||
Column<SwissTimingRaceRecordDTO, ?> raceIdColumn, Column<SwissTimingRaceRecordDTO, ?> boatClassColumn,
|
||||
Column<SwissTimingRaceRecordDTO, ?> genderColumn, Column<SwissTimingRaceRecordDTO, ?> statusColumn) {
|
||||
|
||||
ListHandler<SwissTimingRaceRecordDTO> result = new ListHandler<SwissTimingRaceRecordDTO>(raceRecords);
|
||||
result.setComparator(regattaNameColumn, new Comparator<SwissTimingRaceRecordDTO>() {
|
||||
@Override
|
||||
@@ -449,21 +440,20 @@ public class SwissTimingEventManagementPanel extends AbstractEventManagementPane
|
||||
|
||||
// Check if the assigned regatta makes sense
|
||||
if (checkBoatClassOK(selectedRegatta, selectedRaces)) {
|
||||
sailingService.trackWithSwissTiming(
|
||||
/* regattaToAddTo */ regattaIdentifier,
|
||||
selectedRaces, hostname, port, trackWind, correctWindByDeclination,
|
||||
useInternalMarkPassingAlgorithm, updateURL, updateUsername, updatePassword, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to register races " + selectedRaces + " for tracking: "
|
||||
+ caught.getMessage());
|
||||
}
|
||||
sailingService.trackWithSwissTiming(/* regattaToAddTo */ regattaIdentifier, selectedRaces, hostname, port,
|
||||
trackWind, correctWindByDeclination, useInternalMarkPassingAlgorithm, updateURL, updateUsername,
|
||||
updatePassword, selectedObject.getName(), selectedObject.getJsonUrl(), new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to register races " + selectedRaces
|
||||
+ " for tracking: " + caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
regattaRefresher.fillRegattas();
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
regattaRefresher.fillRegattas();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
@@ -136,6 +136,7 @@ public class SwissTimingConnectionDialog extends DataEntryDialog<SwissTimingConf
|
||||
final String result = SwissTimingEventIdUrlUtil.getUrlFromEventId(eventIdText);
|
||||
if (result != null) {
|
||||
manage2SailEventUrlJsonTextBox.setValue(result, /* fire events */ false);
|
||||
validateAndUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -26,10 +26,10 @@ public class TracTracConnectionEditDialog extends TracTracConnectionDialog {
|
||||
private void setData(final TracTracConfigurationWithSecurityDTO dtotoEdit) {
|
||||
name = dtotoEdit.getName();
|
||||
creatorName = dtotoEdit.getCreatorName();
|
||||
storedURITextBox.setText(dtotoEdit.getStoredDataURI());
|
||||
liveURITextBox.setText(dtotoEdit.getLiveDataURI());
|
||||
storedURITextBox.setText(dtotoEdit.getStoredDataURI()==null?"":dtotoEdit.getStoredDataURI());
|
||||
liveURITextBox.setText(dtotoEdit.getLiveDataURI()==null?"":dtotoEdit.getLiveDataURI());
|
||||
jsonURLTextBox.setText(dtotoEdit.getJsonUrl());
|
||||
tracTracUpdateURITextBox.setText(dtotoEdit.getCourseDesignUpdateURI());
|
||||
tracTracUpdateURITextBox.setText(dtotoEdit.getCourseDesignUpdateURI()==null?"":dtotoEdit.getCourseDesignUpdateURI());
|
||||
tractracUsernameTextBox.setText(dtotoEdit.getTracTracUsername());
|
||||
tractracPasswordTextBox.setText(dtotoEdit.getTracTracPassword());
|
||||
super.getOkButton().setEnabled(!jsonURLTextBox.getText().isEmpty());
|
||||
|
||||
+3
-4
@@ -70,18 +70,17 @@ public class TracTracConnectionTableWrapper extends
|
||||
final TextColumn<TracTracConfigurationWithSecurityDTO> tracTracAccountNameColumn = new AbstractSortableTextColumn<TracTracConfigurationWithSecurityDTO>(
|
||||
dto -> dto.getName(), tracTracAccountColumnListHandler);
|
||||
final TextColumn<TracTracConfigurationWithSecurityDTO> tracTracAccountLiveUriColumn = new AbstractSortableTextColumn<TracTracConfigurationWithSecurityDTO>(
|
||||
dto -> dto.getLiveDataURI(), tracTracAccountColumnListHandler);
|
||||
dto -> dto.getLiveDataURI()==null?"":dto.getLiveDataURI(), tracTracAccountColumnListHandler);
|
||||
final TextColumn<TracTracConfigurationWithSecurityDTO> tracTracAccountStoredUriColumn = new AbstractSortableTextColumn<TracTracConfigurationWithSecurityDTO>(
|
||||
dto -> dto.getStoredDataURI(), tracTracAccountColumnListHandler);
|
||||
dto -> dto.getStoredDataURI()==null?"":dto.getStoredDataURI(), tracTracAccountColumnListHandler);
|
||||
final TextColumn<TracTracConfigurationWithSecurityDTO> tracTracAccountJsonUrlColumn = new AbstractSortableTextColumn<TracTracConfigurationWithSecurityDTO>(
|
||||
dto -> dto.getJsonUrl(), tracTracAccountColumnListHandler);
|
||||
final TextColumn<TracTracConfigurationWithSecurityDTO> tracTracAccountTracTracServerUpdateUriColumn = new AbstractSortableTextColumn<TracTracConfigurationWithSecurityDTO>(
|
||||
dto -> dto.getCourseDesignUpdateURI(), tracTracAccountColumnListHandler);
|
||||
dto -> dto.getCourseDesignUpdateURI()==null?"":dto.getCourseDesignUpdateURI(), tracTracAccountColumnListHandler);
|
||||
final TextColumn<TracTracConfigurationWithSecurityDTO> tracTracAccountUsernameColumn = new AbstractSortableTextColumn<TracTracConfigurationWithSecurityDTO>(
|
||||
dto -> dto.getTracTracUsername(), tracTracAccountColumnListHandler);
|
||||
final TextColumn<TracTracConfigurationWithSecurityDTO> tracTracAccountCreatorNameColumn = new AbstractSortableTextColumn<TracTracConfigurationWithSecurityDTO>(
|
||||
dto -> dto.getCreatorName(), tracTracAccountColumnListHandler);
|
||||
|
||||
final HasPermissions type = SecuredDomainType.TRACTRAC_ACCOUNT;
|
||||
final AccessControlledActionsColumn<TracTracConfigurationWithSecurityDTO, DefaultActionsImagesBarCell> actionColumn = create(
|
||||
new DefaultActionsImagesBarCell(stringMessages), userService);
|
||||
|
||||
+1
-1
@@ -190,7 +190,7 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS
|
||||
|
||||
void trackWithSwissTiming(RegattaIdentifier regattaToAddTo, Iterable<SwissTimingRaceRecordDTO> rrs, String hostname,
|
||||
int port, boolean trackWind, boolean correctWindByDeclination, boolean useInternalMarkPassingAlgorithm,
|
||||
String updateURL, String updateUsername, String updatePassword) throws UnauthorizedException, Exception;
|
||||
String updateURL, String updateUsername, String updatePassword, String eventName, String manage2SailEventUrl) throws UnauthorizedException, Exception;
|
||||
|
||||
void replaySwissTimingRace(RegattaIdentifier regattaIdentifier, Iterable<SwissTimingReplayRaceDTO> replayRaces,
|
||||
boolean trackWind, boolean correctWindByDeclination, boolean useInternalMarkPassingAlgorithm)
|
||||
|
||||
+4
-3
@@ -189,9 +189,10 @@ public interface SailingServiceAsync extends FileStorageManagementGwtServiceAsyn
|
||||
boolean useOfficialEventsToUpdateRaceLog, String tracTracUsername,
|
||||
String tracTracPassword, AsyncCallback<Void> callback);
|
||||
|
||||
void trackWithSwissTiming(RegattaIdentifier regattaToAddTo, Iterable<SwissTimingRaceRecordDTO> rrs,
|
||||
String hostname, int port, boolean trackWind, boolean correctWindByDeclination,
|
||||
boolean useInternalMarkPassingAlgorithm, String updateURL, String updateUsername, String updatePassword, AsyncCallback<Void> asyncCallback);
|
||||
void trackWithSwissTiming(RegattaIdentifier regattaToAddTo, Iterable<SwissTimingRaceRecordDTO> rrs, String hostname,
|
||||
int port, boolean trackWind, boolean correctWindByDeclination, boolean useInternalMarkPassingAlgorithm,
|
||||
String updateURL, String updateUsername, String updatePassword, String eventName,
|
||||
String manage2SailEventUrl, AsyncCallback<Void> asyncCallback);
|
||||
|
||||
void replaySwissTimingRace(RegattaIdentifier regattaIdentifier, Iterable<SwissTimingReplayRaceDTO> replayRaces,
|
||||
boolean trackWind, boolean correctWindByDeclination, boolean useInternalMarkPassingAlgorithm,
|
||||
|
||||
-2
@@ -398,8 +398,6 @@ public class MasterDataImportPanel extends VerticalPanel {
|
||||
exportTrackedRacesAndStartTrackingSwitch = new CheckBox(stringMessages.exportTrackedRacesAndStartTracking());
|
||||
exportTrackedRacesAndStartTrackingSwitch.setTitle(stringMessages.exportTrackedRacesAndStartTrackingTooltip());
|
||||
exportTrackedRacesAndStartTrackingSwitch.setValue(false);
|
||||
//TODO: Remove after bug5245 is fixed.
|
||||
exportTrackedRacesAndStartTrackingSwitch.setVisible(false);
|
||||
contentPanel.add(exportTrackedRacesAndStartTrackingSwitch);
|
||||
|
||||
importLeaderboardGroupsButton = new Button(stringMessages.importSelectedLeaderboardGroups());
|
||||
|
||||
+15
-11
@@ -1503,9 +1503,10 @@ public class SailingServiceImpl extends ResultCachingProxiedRemoteServiceServlet
|
||||
TracTracConfigurationWithSecurityDTO config = new TracTracConfigurationWithSecurityDTO(
|
||||
ttConfig.getName(),
|
||||
ttConfig.getJSONURL().toString(),
|
||||
ttConfig.getLiveDataURI().toString(), ttConfig.getStoredDataURI().toString(),
|
||||
ttConfig.getCourseDesignUpdateURI().toString(), ttConfig.getTracTracUsername().toString(),
|
||||
ttConfig.getTracTracPassword().toString(), ttConfig.getCreatorName());
|
||||
ttConfig.getLiveDataURI()==null?null:ttConfig.getLiveDataURI().toString(),
|
||||
ttConfig.getStoredDataURI()==null?null:ttConfig.getStoredDataURI().toString(),
|
||||
ttConfig.getCourseDesignUpdateURI()==null?null:ttConfig.getCourseDesignUpdateURI().toString(),
|
||||
ttConfig.getTracTracUsername(), ttConfig.getTracTracPassword(), ttConfig.getCreatorName());
|
||||
SecurityDTOUtil.addSecurityInformation(getSecurityService(), config, config.getIdentifier());
|
||||
return config;
|
||||
});
|
||||
@@ -3429,10 +3430,12 @@ public class SailingServiceImpl extends ResultCachingProxiedRemoteServiceServlet
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trackWithSwissTiming(RegattaIdentifier regattaToAddTo, Iterable<SwissTimingRaceRecordDTO> rrs, String hostname, int port,
|
||||
boolean trackWind, final boolean correctWindByDeclination, boolean useInternalMarkPassingAlgorithm,
|
||||
String updateURL, String updateUsername, String updatePassword) throws InterruptedException, ParseException, Exception {
|
||||
logger.info("tracWithSwissTiming for regatta " + regattaToAddTo + " for race records " + rrs
|
||||
public void trackWithSwissTiming(RegattaIdentifier regattaToAddTo, Iterable<SwissTimingRaceRecordDTO> rrs,
|
||||
String hostname, int port, boolean trackWind, final boolean correctWindByDeclination,
|
||||
boolean useInternalMarkPassingAlgorithm, String updateURL, String updateUsername, String updatePassword,
|
||||
String eventName, String manage2SailEventUrl) throws InterruptedException, ParseException, Exception {
|
||||
logger.info(
|
||||
"tracWithSwissTiming for regatta " + regattaToAddTo + " for race records " + rrs
|
||||
+ " with hostname " + hostname + " and port " + port);
|
||||
Map<String, RegattaResults> cachedRegattaEntriesLists = new HashMap<String, RegattaResults>();
|
||||
for (SwissTimingRaceRecordDTO rr : rrs) {
|
||||
@@ -3457,7 +3460,7 @@ public class SailingServiceImpl extends ResultCachingProxiedRemoteServiceServlet
|
||||
rr.raceId, rr.getName(), raceDescription, boatClass, hostname, port, startList,
|
||||
getRaceLogStore(), getRegattaLogStore(),
|
||||
RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, useInternalMarkPassingAlgorithm, trackWind,
|
||||
correctWindByDeclination, updateURL, updateUsername, updatePassword);
|
||||
correctWindByDeclination, updateURL, updateUsername, updatePassword, eventName, manage2SailEventUrl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3472,7 +3475,7 @@ public class SailingServiceImpl extends ResultCachingProxiedRemoteServiceServlet
|
||||
for (SwissTimingReplayRace replayRace : replayRaces) {
|
||||
result.add(new SwissTimingReplayRaceDTO(replayRace.getFlightNumber(), replayRace.getRaceId(),
|
||||
replayRace.getRsc(), replayRace.getName(), replayRace.getBoatClass(), replayRace.getStartTime(),
|
||||
replayRace.getLink(), hasRememberedRegatta(replayRace.getRaceId())));
|
||||
replayRace.getLink(), hasRememberedRegatta(replayRace.getRaceId()), swissTimingUrl));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -3497,8 +3500,9 @@ public class SailingServiceImpl extends ResultCachingProxiedRemoteServiceServlet
|
||||
} else {
|
||||
boatClassName = null;
|
||||
}
|
||||
getSwissTimingReplayService().loadRaceData(regattaIdentifier, replayRaceDTO.link, replayRaceDTO.getName(),
|
||||
replayRaceDTO.race_id, boatClassName, getService(), getService(), useInternalMarkPassingAlgorithm, getRaceLogStore(), getRegattaLogStore());
|
||||
getSwissTimingReplayService().loadRaceData(regattaIdentifier, replayRaceDTO.link,
|
||||
replayRaceDTO.swissTimingUrl, replayRaceDTO.getName(), replayRaceDTO.race_id, boatClassName, getService(),
|
||||
getService(), useInternalMarkPassingAlgorithm, getRaceLogStore(), getRegattaLogStore());
|
||||
} catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "Error trying to load SwissTimingReplay race " + replayRaceDTO, e);
|
||||
}
|
||||
|
||||
+4
-1
@@ -10,10 +10,12 @@ public class SwissTimingReplayRaceDTO extends AbstractRaceRecordDTO {
|
||||
public String boat_class;
|
||||
public Date startTime;
|
||||
public String link;
|
||||
public String swissTimingUrl;
|
||||
|
||||
public SwissTimingReplayRaceDTO() {}
|
||||
|
||||
public SwissTimingReplayRaceDTO(String flight_number, String race_id, String rsc, String name, String boat_class, Date startTime, String link, boolean hasRememberedRegatta) {
|
||||
public SwissTimingReplayRaceDTO(String flight_number, String race_id, String rsc, String name, String boat_class,
|
||||
Date startTime, String link, boolean hasRememberedRegatta, String swissTimingUrl) {
|
||||
super(name, hasRememberedRegatta);
|
||||
this.flight_number = flight_number;
|
||||
this.race_id = race_id;
|
||||
@@ -21,6 +23,7 @@ public class SwissTimingReplayRaceDTO extends AbstractRaceRecordDTO {
|
||||
this.boat_class = boat_class;
|
||||
this.startTime = startTime;
|
||||
this.link = link;
|
||||
this.swissTimingUrl = swissTimingUrl;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+8
-3
@@ -1,6 +1,7 @@
|
||||
package com.sap.sailing.mongodb.test;
|
||||
|
||||
import java.util.HashMap;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -21,6 +22,7 @@ import com.sap.sailing.domain.swisstimingreplayadapter.impl.SwissTimingReplayCon
|
||||
import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParametersHandler;
|
||||
import com.sap.sailing.domain.tractracadapter.TracTracAdapterFactory;
|
||||
import com.sap.sailing.domain.tractracadapter.impl.RaceTrackingConnectivityParametersImpl;
|
||||
import com.sap.sailing.domain.tractracadapter.persistence.impl.MongoObjectFactoryImpl;
|
||||
import com.sap.sailing.domain.tractracadapter.persistence.impl.TracTracConnectivityParamsHandler;
|
||||
import com.sap.sailing.server.impl.RacingEventServiceImpl;
|
||||
import com.sap.sailing.server.interfaces.RacingEventService;
|
||||
@@ -29,6 +31,7 @@ import com.sap.sailing.shared.persistence.device.impl.PlaceHolderDeviceIdentifie
|
||||
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
|
||||
import com.sap.sse.common.TypeBasedServiceFinder;
|
||||
import com.sap.sse.common.TypeBasedServiceFinderFactory;
|
||||
import com.sap.sse.security.SecurityService;
|
||||
|
||||
/**
|
||||
* A simplified implementation of the {@link TypeBasedServiceFinder} interface that, when the device type
|
||||
@@ -50,23 +53,25 @@ public class MockConnectivityParamsServiceFinderFactory implements TypeBasedServ
|
||||
final MongoObjectFactory mongoObjectFactory = racingEventService.getMongoObjectFactory();
|
||||
final DomainObjectFactory domainObjectFactory = racingEventService.getDomainObjectFactory();
|
||||
final DomainFactory swissTimingDomainFactory = new SwissTimingAdapterFactoryImpl().getOrCreateSwissTimingAdapter(domainObjectFactory.getBaseDomainFactory()).getSwissTimingDomainFactory();
|
||||
final SecurityService securityServiceMock = mock(SecurityService.class);
|
||||
switch (type) {
|
||||
case RaceTrackingConnectivityParametersImpl.TYPE:
|
||||
return new TracTracConnectivityParamsHandler(
|
||||
MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(mongoObjectFactory, domainObjectFactory),
|
||||
MongoRegattaLogStoreFactory.INSTANCE.getMongoRegattaLogStore(mongoObjectFactory, domainObjectFactory),
|
||||
TracTracAdapterFactory.INSTANCE.getOrCreateTracTracAdapter(domainObjectFactory.getBaseDomainFactory()).getTracTracDomainFactory());
|
||||
TracTracAdapterFactory.INSTANCE.getOrCreateTracTracAdapter(domainObjectFactory.getBaseDomainFactory()).getTracTracDomainFactory(),
|
||||
new MongoObjectFactoryImpl(mongoObjectFactory.getDatabase()), securityServiceMock);
|
||||
case SwissTimingTrackingConnectivityParameters.TYPE:
|
||||
return new com.sap.sailing.domain.swisstimingadapter.persistence.impl.SwissTimingConnectivityParamsHandler(
|
||||
MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(mongoObjectFactory, domainObjectFactory),
|
||||
MongoRegattaLogStoreFactory.INSTANCE.getMongoRegattaLogStore(mongoObjectFactory, domainObjectFactory),
|
||||
swissTimingDomainFactory);
|
||||
swissTimingDomainFactory, securityServiceMock);
|
||||
case SwissTimingReplayConnectivityParameters.TYPE:
|
||||
return new SwissTimingReplayConnectivityParamsHandler(
|
||||
MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(mongoObjectFactory, domainObjectFactory),
|
||||
MongoRegattaLogStoreFactory.INSTANCE.getMongoRegattaLogStore(mongoObjectFactory, domainObjectFactory),
|
||||
swissTimingDomainFactory,
|
||||
SwissTimingReplayServiceFactory.INSTANCE.createSwissTimingReplayService(swissTimingDomainFactory, racingEventService));
|
||||
SwissTimingReplayServiceFactory.INSTANCE.createSwissTimingReplayService(swissTimingDomainFactory, racingEventService), securityServiceMock);
|
||||
case RaceLogConnectivityParams.TYPE:
|
||||
return new com.sap.sailing.domain.racelogtracking.impl.RaceLogConnectivityParamsHandler(racingEventService);
|
||||
default:
|
||||
|
||||
+8
-2
@@ -40,6 +40,8 @@ public class SwissTimingConnectivityParamsLoadAndStoreTest extends AbstractConne
|
||||
final String raceID = "Race ID 123";
|
||||
final String raceName = "The Race";
|
||||
final String raceDescription = null;
|
||||
final String eventName = "World Cup Series | Enoshima, Japan";
|
||||
final String manage2SailEventUrl = "http://manage2sail.com/api/public/links/event/1ab2e511-333f-4dff-a347-21d30bfd0062?accesstoken=bDAv8CwsTM94ujZ&mediaType=json&includeRaces=true";
|
||||
final BoatClass boatClass = domainObjectFactory.getBaseDomainFactory().getOrCreateBoatClass("49er");
|
||||
final CrewMemberImpl c1c1 = new CrewMemberImpl("c1c1", "GER", "Helm");
|
||||
final CrewMemberImpl c1c2 = new CrewMemberImpl("c1c2", "POL", "Crew");
|
||||
@@ -54,7 +56,7 @@ public class SwissTimingConnectivityParamsLoadAndStoreTest extends AbstractConne
|
||||
hostname, port, raceID, raceName, raceDescription, boatClass, startList, delayToLiveInMillis,
|
||||
SwissTimingFactory.INSTANCE, new SwissTimingAdapterFactoryImpl().getOrCreateSwissTimingAdapter(domainObjectFactory.getBaseDomainFactory()).getSwissTimingDomainFactory(),
|
||||
/* raceLogStore */ null, /* regattaLogStore */ null, useInternalMarkPassingAlgorithm, trackWind, correctWindDirectionByMagneticDeclination,
|
||||
/* updateURL */ null, /* updateUsername */ null, /* updatePassword */ null);
|
||||
/* updateURL */ null, /* updateUsername */ null, /* updatePassword */ null, eventName, manage2SailEventUrl);
|
||||
// store
|
||||
mongoObjectFactory.addConnectivityParametersForRaceToRestore(stParams);
|
||||
// load
|
||||
@@ -78,6 +80,8 @@ public class SwissTimingConnectivityParamsLoadAndStoreTest extends AbstractConne
|
||||
assertEquals(stParams.getTrackerID(), stParamsReadFromDB.getTrackerID());
|
||||
assertEquals(stParams.isTrackWind(), stParamsReadFromDB.isTrackWind());
|
||||
assertEquals(stParams.isCorrectWindDirectionByMagneticDeclination(), stParamsReadFromDB.isCorrectWindDirectionByMagneticDeclination());
|
||||
assertEquals(stParams.getEventName(), stParamsReadFromDB.getEventName());
|
||||
assertEquals(stParams.getManage2SailEventUrl(), stParamsReadFromDB.getManage2SailEventUrl());
|
||||
// remove again
|
||||
mongoObjectFactory.removeConnectivityParametersForRaceToRestore(stParams);
|
||||
final Set<RaceTrackingConnectivityParameters> connectivityParametersForRacesToRestore2 = new HashSet<>();
|
||||
@@ -95,6 +99,8 @@ public class SwissTimingConnectivityParamsLoadAndStoreTest extends AbstractConne
|
||||
final String raceID = "Race ID 123";
|
||||
final String raceName = "The Race";
|
||||
final String raceDescription = null;
|
||||
final String eventName = "World Cup Series | Enoshima, Japan";
|
||||
final String manage2SailEventUrl = "http://manage2sail.com/api/public/links/event/1ab2e511-333f-4dff-a347-21d30bfd0062?accesstoken=bDAv8CwsTM94ujZ&mediaType=json&includeRaces=true";
|
||||
final BoatClass boatClass = domainObjectFactory.getBaseDomainFactory().getOrCreateBoatClass("49er");
|
||||
final CompetitorWithoutID c1 = new CompetitorWithoutID("b1", "GER", "C1");
|
||||
final CompetitorWithoutID c2 = new CompetitorWithoutID("b2", "GER", "21");
|
||||
@@ -105,7 +111,7 @@ public class SwissTimingConnectivityParamsLoadAndStoreTest extends AbstractConne
|
||||
hostname, port, raceID, raceName, raceDescription, boatClass, startList, delayToLiveInMillis,
|
||||
SwissTimingFactory.INSTANCE, new SwissTimingAdapterFactoryImpl().getOrCreateSwissTimingAdapter(domainObjectFactory.getBaseDomainFactory()).getSwissTimingDomainFactory(),
|
||||
/* raceLogStore */ null, /* regattaLogStore */ null, useInternalMarkPassingAlgorithm, trackWind, correctWindDirectionByMagneticDeclination,
|
||||
/* updateURL */ null, /* updateUsername */ null, /* updatePassword */ null);
|
||||
/* updateURL */ null, /* updateUsername */ null, /* updatePassword */ null, eventName, manage2SailEventUrl);
|
||||
// store
|
||||
mongoObjectFactory.addConnectivityParametersForRaceToRestore(stParams);
|
||||
// load
|
||||
|
||||
+5
-3
@@ -31,12 +31,13 @@ public class SwissTimingReplayConnectivityParamsLoadAndStoreTest extends Abstrac
|
||||
final String raceID = "Race ID 123";
|
||||
final String raceName = "The Race";
|
||||
final String boatClassName = "49er";
|
||||
final String swissTimingUrl = "https://static.sapsailing.com/OSG2016/OSG2016_static.json";
|
||||
final boolean useInternalMarkPassingAlgorithm = false;
|
||||
final SwissTimingAdapter swissTimingAdapter = new SwissTimingAdapterFactoryImpl().getOrCreateSwissTimingAdapter(domainObjectFactory.getBaseDomainFactory());
|
||||
final SwissTimingReplayConnectivityParameters stParams = new SwissTimingReplayConnectivityParameters(
|
||||
link, raceName, raceID, boatClassName, useInternalMarkPassingAlgorithm, swissTimingAdapter.getSwissTimingDomainFactory(),
|
||||
new SwissTimingReplayServiceFactoryImpl().createSwissTimingReplayService(swissTimingAdapter.getSwissTimingDomainFactory(), racingEventService),
|
||||
/* raceLogStore */ null, /* regattaLogStore */ null);
|
||||
link, swissTimingUrl, raceName, raceID, boatClassName, useInternalMarkPassingAlgorithm,
|
||||
swissTimingAdapter.getSwissTimingDomainFactory(),
|
||||
new SwissTimingReplayServiceFactoryImpl().createSwissTimingReplayService(swissTimingAdapter.getSwissTimingDomainFactory(), racingEventService), /* raceLogStore */ null, /* regattaLogStore */ null);
|
||||
// store
|
||||
mongoObjectFactory.addConnectivityParametersForRaceToRestore(stParams);
|
||||
// load
|
||||
@@ -49,6 +50,7 @@ public class SwissTimingReplayConnectivityParamsLoadAndStoreTest extends Abstrac
|
||||
assertTrue(paramsReadFromDB instanceof SwissTimingReplayConnectivityParameters);
|
||||
SwissTimingReplayConnectivityParameters stParamsReadFromDB = (SwissTimingReplayConnectivityParameters) paramsReadFromDB;
|
||||
assertEquals(link, stParamsReadFromDB.getLink());
|
||||
assertEquals(swissTimingUrl, stParams.getSwissTimingUrl());
|
||||
assertEquals(boatClassName, stParamsReadFromDB.getBoatClassName());
|
||||
assertEquals(raceID, stParamsReadFromDB.getRaceID());
|
||||
assertEquals(raceName, stParamsReadFromDB.getRaceName());
|
||||
|
||||
+1
-1
@@ -582,7 +582,7 @@ public class ImportMasterDataOperation extends
|
||||
}
|
||||
|
||||
private void ensureOwnership(QualifiedObjectIdentifier identifier, SecurityService securityService) {
|
||||
logger.info("Trying to adopting " + identifier + " from Masterdataimport to " + user.getName() +
|
||||
logger.info("Trying to adopt " + identifier + " from Masterdataimport to " + user.getName() +
|
||||
" and group " + (tenant==null?"null":tenant.getName())+" if orphaned");
|
||||
securityService.setOwnershipIfNotSet(identifier, user, tenant);
|
||||
}
|
||||
|
||||
@@ -31,10 +31,187 @@
|
||||
<stringAttribute key="profilingTraceType-NETWORK_TRACE" value="KEY_APPLICATION_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_SESSION_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_ENABLEMENT%CTX_KEY%false%CTX_ENTRY%KEY_USER_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_REQUEST_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_RESOLVE_ALL_HOSTS%CTX_KEY%true%CTX_ENTRY%KEY_TENANT_FILTER%CTX_KEY%*%CTX_ENTRY%"/>
|
||||
<stringAttribute key="profilingTraceType-PERFORMANCE_HOTSPOT_TRACE" value="KEY_IGNORE_SLEEPING_THREADS%CTX_KEY%false%CTX_ENTRY%KEY_APPLICATION_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_SESSION_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_ENABLEMENT%CTX_KEY%true%CTX_ENTRY%KEY_USER_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_REQUEST_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_TENANT_FILTER%CTX_KEY%*%CTX_ENTRY%"/>
|
||||
<stringAttribute key="profilingTraceType-SYNCHRONIZATION_TRACE" value="KEY_APPLICATION_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_SESSION_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_ENABLEMENT%CTX_KEY%false%CTX_ENTRY%KEY_USER_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_REQUEST_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_TENANT_FILTER%CTX_KEY%*%CTX_ENTRY%"/>
|
||||
<setAttribute key="selected_target_bundles">
|
||||
<setEntry value="com.fasterxml.jackson.core.jackson-annotations@default:default"/>
|
||||
<setEntry value="com.fasterxml.jackson.core.jackson-core@default:default"/>
|
||||
<setEntry value="com.fasterxml.jackson.core.jackson-databind@default:default"/>
|
||||
<setEntry value="com.rabbitmq.client@default:default"/>
|
||||
<setEntry value="com.sun.activation.javax.activation@default:default"/>
|
||||
<setEntry value="com.sun.istack.commons-runtime@default:default"/>
|
||||
<setEntry value="com.sun.jersey.contribs.jersey-multipart@default:default"/>
|
||||
<setEntry value="com.sun.jersey@default:default"/>
|
||||
<setEntry value="com.sun.mail.javax.mail@default:default"/>
|
||||
<setEntry value="com.sun.xml.bind.jaxb-impl@default:default"/>
|
||||
<setEntry value="jackson-core-asl@default:default"/>
|
||||
<setEntry value="jackson-jaxrs@default:default"/>
|
||||
<setEntry value="jackson-mapper-asl@default:default"/>
|
||||
<setEntry value="javax.servlet@default:default"/>
|
||||
<setEntry value="javax.validation@default:default"/>
|
||||
<setEntry value="javax.ws.rs@default:default"/>
|
||||
<setEntry value="javax.xml.stream@default:default"/>
|
||||
<setEntry value="javax.xml.ws@default:default"/>
|
||||
<setEntry value="javax.xml@default:default"/>
|
||||
<setEntry value="jaxb-api@default:default"/>
|
||||
<setEntry value="jcl.over.slf4j@default:default"/>
|
||||
<setEntry value="lz4-java@default:default"/>
|
||||
<setEntry value="org.apache.commons.beanutils@default:default"/>
|
||||
<setEntry value="org.apache.commons.codec@default:default"/>
|
||||
<setEntry value="org.apache.commons.collections@default:default"/>
|
||||
<setEntry value="org.apache.commons.fileupload@default:default"/>
|
||||
<setEntry value="org.apache.commons.io@default:default"/>
|
||||
<setEntry value="org.apache.commons.lang@default:default"/>
|
||||
<setEntry value="org.apache.commons.math3@default:default"/>
|
||||
<setEntry value="org.apache.commons.math@default:default"/>
|
||||
<setEntry value="org.apache.felix.gogo.command@default:default"/>
|
||||
<setEntry value="org.apache.felix.gogo.runtime@default:default"/>
|
||||
<setEntry value="org.apache.felix.gogo.shell@default:default"/>
|
||||
<setEntry value="org.apache.felix.shell.remote@0:true"/>
|
||||
<setEntry value="org.apache.felix.shell@0:true"/>
|
||||
<setEntry value="org.apache.httpcomponents.httpclient@default:default"/>
|
||||
<setEntry value="org.apache.httpcomponents.httpcore@default:default"/>
|
||||
<setEntry value="org.apache.poi.ooxml.schemas@default:default"/>
|
||||
<setEntry value="org.apache.poi.ooxml@default:default"/>
|
||||
<setEntry value="org.apache.poi@default:default"/>
|
||||
<setEntry value="org.apache.servicemix.bundles.aws-java-sdk@default:default"/>
|
||||
<setEntry value="org.apache.servicemix.bundles.ehcache@default:default"/>
|
||||
<setEntry value="org.apache.servicemix.bundles.scribe@default:default"/>
|
||||
<setEntry value="org.apache.servicemix.bundles.zxing@default:default"/>
|
||||
<setEntry value="org.apache.shiro.core@default:default"/>
|
||||
<setEntry value="org.apache.shiro.ehcache@default:default"/>
|
||||
<setEntry value="org.apache.shiro.web@default:default"/>
|
||||
<setEntry value="org.apache.xmlbeans@default:default"/>
|
||||
<setEntry value="org.dom4j@default:default"/>
|
||||
<setEntry value="org.eclipse.equinox.cm@default:default"/>
|
||||
<setEntry value="org.eclipse.equinox.common@2:true"/>
|
||||
<setEntry value="org.eclipse.equinox.console@default:default"/>
|
||||
<setEntry value="org.eclipse.equinox.launcher@default:default"/>
|
||||
<setEntry value="org.eclipse.equinox.simpleconfigurator@2:true"/>
|
||||
<setEntry value="org.eclipse.jetty.client@default:default"/>
|
||||
<setEntry value="org.eclipse.jetty.deploy@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.http@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.io@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.jmx@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.osgi.boot@3:true"/>
|
||||
<setEntry value="org.eclipse.jetty.security@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.server@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.servlet@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.util@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.webapp@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.websocket.api@default:default"/>
|
||||
<setEntry value="org.eclipse.jetty.websocket.client@default:default"/>
|
||||
<setEntry value="org.eclipse.jetty.websocket.common@default:default"/>
|
||||
<setEntry value="org.eclipse.jetty.xml@4:true"/>
|
||||
<setEntry value="org.eclipse.osgi.services@default:default"/>
|
||||
<setEntry value="org.eclipse.osgi.util@default:default"/>
|
||||
<setEntry value="org.eclipse.osgi@-1:true"/>
|
||||
<setEntry value="org.hyperic.sigar@default:default"/>
|
||||
<setEntry value="org.jdom@default:default"/>
|
||||
<setEntry value="org.jvnet.mimepull@default:default"/>
|
||||
<setEntry value="org.mongodb.mongo-java-driver@default:default"/>
|
||||
<setEntry value="org.objectweb.asm@default:default"/>
|
||||
<setEntry value="routeconverter@default:default"/>
|
||||
<setEntry value="slf4j.api@default:default"/>
|
||||
<setEntry value="slf4j.jdk14@default:false"/>
|
||||
</setAttribute>
|
||||
<setAttribute key="selected_workspace_bundles">
|
||||
<setEntry value="com.google.gwt.servlet@default:default"/>
|
||||
<setEntry value="com.googlecode.java-diff-utils@default:default"/>
|
||||
<setEntry value="com.sap.sailing.barbados.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.competitorimport@default:default"/>
|
||||
<setEntry value="com.sap.sailing.dashboards.gwt@6:true"/>
|
||||
<setEntry value="com.sap.sailing.datamining.provider@default:default"/>
|
||||
<setEntry value="com.sap.sailing.datamining.shared@default:default"/>
|
||||
<setEntry value="com.sap.sailing.datamining@5:true"/>
|
||||
<setEntry value="com.sap.sailing.declination@default:default"/>
|
||||
<setEntry value="com.sap.sailing.domain.bravoadapter@5:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.common@default:default"/>
|
||||
<setEntry value="com.sap.sailing.domain.deckmanadapter@5:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.expeditionadapter@5:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.igtimiadapter.gateway@5:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.igtimiadapter.persistence@default:default"/>
|
||||
<setEntry value="com.sap.sailing.domain.igtimiadapter@4:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.persistence@default:default"/>
|
||||
<setEntry value="com.sap.sailing.domain.racelogtrackingadapter@4:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.shared.android@default:default"/>
|
||||
<setEntry value="com.sap.sailing.domain.swisstimingadapter.persistence@4:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.swisstimingadapter@5:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.swisstimingreplayadapter@4:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.tractracadapter.persistence@4:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.tractracadapter@5:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.windfinderadapter@4:true"/>
|
||||
<setEntry value="com.sap.sailing.domain@default:default"/>
|
||||
<setEntry value="com.sap.sailing.ess40.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.expeditionconnector.common@default:default"/>
|
||||
<setEntry value="com.sap.sailing.expeditionconnector.persistence@4:true"/>
|
||||
<setEntry value="com.sap.sailing.expeditionconnector@default:default"/>
|
||||
<setEntry value="com.sap.sailing.freg.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.geocoding@default:default"/>
|
||||
<setEntry value="com.sap.sailing.grib@default:default"/>
|
||||
<setEntry value="com.sap.sailing.gwt.ui@6:true"/>
|
||||
<setEntry value="com.sap.sailing.kiworesultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.manage2sail.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.manage2sail@default:default"/>
|
||||
<setEntry value="com.sap.sailing.monitoring@7:true"/>
|
||||
<setEntry value="com.sap.sailing.news@4:true"/>
|
||||
<setEntry value="com.sap.sailing.nmeaconnector@default:default"/>
|
||||
<setEntry value="com.sap.sailing.polars.datamining.shared@default:default"/>
|
||||
<setEntry value="com.sap.sailing.polars.datamining@5:true"/>
|
||||
<setEntry value="com.sap.sailing.polars@5:true"/>
|
||||
<setEntry value="com.sap.sailing.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.routeconverterjava11extension@default:false"/>
|
||||
<setEntry value="com.sap.sailing.sailwave.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.server.gateway.serialization.shared.android@default:default"/>
|
||||
<setEntry value="com.sap.sailing.server.gateway.serialization@default:default"/>
|
||||
<setEntry value="com.sap.sailing.server.gateway@5:true"/>
|
||||
<setEntry value="com.sap.sailing.server.interface@default:default"/>
|
||||
<setEntry value="com.sap.sailing.server.trackfiles@default:default"/>
|
||||
<setEntry value="com.sap.sailing.server@5:true"/>
|
||||
<setEntry value="com.sap.sailing.shared.persistence@default:default"/>
|
||||
<setEntry value="com.sap.sailing.shared.server.gateway@5:true"/>
|
||||
<setEntry value="com.sap.sailing.shared.server@5:true"/>
|
||||
<setEntry value="com.sap.sailing.simulator@default:default"/>
|
||||
<setEntry value="com.sap.sailing.udpconnector@default:default"/>
|
||||
<setEntry value="com.sap.sailing.velum.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.windestimation@5:true"/>
|
||||
<setEntry value="com.sap.sailing.www@5:true"/>
|
||||
<setEntry value="com.sap.sailing.xmlexport@5:true"/>
|
||||
<setEntry value="com.sap.sailing.xrr.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.xrr.schema@default:default"/>
|
||||
<setEntry value="com.sap.sailing.xrr.structureimport@default:default"/>
|
||||
<setEntry value="com.sap.sailing.yachtscoring.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sse.common@default:default"/>
|
||||
<setEntry value="com.sap.sse.datamining.annotations@default:default"/>
|
||||
<setEntry value="com.sap.sse.datamining.shared@default:default"/>
|
||||
<setEntry value="com.sap.sse.datamining.ui@default:default"/>
|
||||
<setEntry value="com.sap.sse.datamining@default:default"/>
|
||||
<setEntry value="com.sap.sse.filestorage@4:true"/>
|
||||
<setEntry value="com.sap.sse.gwt.adminconsole@default:default"/>
|
||||
<setEntry value="com.sap.sse.gwt@default:default"/>
|
||||
<setEntry value="com.sap.sse.jersey.jaxbdependencyfragment@default:false"/>
|
||||
<setEntry value="com.sap.sse.jettyextensions@default:false"/>
|
||||
<setEntry value="com.sap.sse.mail@5:true"/>
|
||||
<setEntry value="com.sap.sse.mongodb@default:default"/>
|
||||
<setEntry value="com.sap.sse.operationaltransformation@default:default"/>
|
||||
<setEntry value="com.sap.sse.replication.interfaces@default:default"/>
|
||||
<setEntry value="com.sap.sse.replication.persistence@default:default"/>
|
||||
<setEntry value="com.sap.sse.replication@6:true"/>
|
||||
<setEntry value="com.sap.sse.security.common@default:default"/>
|
||||
<setEntry value="com.sap.sse.security.interface@default:default"/>
|
||||
<setEntry value="com.sap.sse.security.persistence@default:default"/>
|
||||
<setEntry value="com.sap.sse.security.ui@6:true"/>
|
||||
<setEntry value="com.sap.sse.security.userstore.mongodb@4:true"/>
|
||||
<setEntry value="com.sap.sse.security@default:default"/>
|
||||
<setEntry value="com.sap.sse.shared.android@default:default"/>
|
||||
<setEntry value="com.sap.sse.threadmanager@default:default"/>
|
||||
<setEntry value="com.sap.sse@default:default"/>
|
||||
<setEntry value="com.tractrac.clientmodule@default:default"/>
|
||||
<setEntry value="net.sf.marineapi@default:default"/>
|
||||
<setEntry value="org.json.simple@default:default"/>
|
||||
<setEntry value="org.moxieapps.gwt.highcharts@default:default"/>
|
||||
<setEntry value="org.mp4parser.isoparser@default:default"/>
|
||||
</setAttribute>
|
||||
<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"/>
|
||||
</launchConfiguration>
|
||||
@@ -10,6 +10,7 @@
|
||||
<booleanAttribute key="default" value="true"/>
|
||||
<booleanAttribute key="default_auto_start" value="true"/>
|
||||
<intAttribute key="default_start_level" value="4"/>
|
||||
<setAttribute key="deselected_workspace_bundles"/>
|
||||
<booleanAttribute key="includeOptional" value="true"/>
|
||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||
@@ -22,11 +23,188 @@
|
||||
<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=replica"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc}"/>
|
||||
<stringAttribute key="pde.version" value="3.3"/>
|
||||
<setAttribute key="selected_target_bundles">
|
||||
<setEntry value="com.fasterxml.jackson.core.jackson-annotations@default:default"/>
|
||||
<setEntry value="com.fasterxml.jackson.core.jackson-core@default:default"/>
|
||||
<setEntry value="com.fasterxml.jackson.core.jackson-databind@default:default"/>
|
||||
<setEntry value="com.rabbitmq.client@default:default"/>
|
||||
<setEntry value="com.sun.activation.javax.activation@default:default"/>
|
||||
<setEntry value="com.sun.istack.commons-runtime@default:default"/>
|
||||
<setEntry value="com.sun.jersey.contribs.jersey-multipart@default:default"/>
|
||||
<setEntry value="com.sun.jersey@default:default"/>
|
||||
<setEntry value="com.sun.mail.javax.mail@default:default"/>
|
||||
<setEntry value="com.sun.xml.bind.jaxb-impl@default:default"/>
|
||||
<setEntry value="jackson-core-asl@default:default"/>
|
||||
<setEntry value="jackson-jaxrs@default:default"/>
|
||||
<setEntry value="jackson-mapper-asl@default:default"/>
|
||||
<setEntry value="javax.servlet@default:default"/>
|
||||
<setEntry value="javax.validation@default:default"/>
|
||||
<setEntry value="javax.ws.rs@default:default"/>
|
||||
<setEntry value="javax.xml.stream@default:default"/>
|
||||
<setEntry value="javax.xml.ws@default:default"/>
|
||||
<setEntry value="javax.xml@default:default"/>
|
||||
<setEntry value="jaxb-api@default:default"/>
|
||||
<setEntry value="jcl.over.slf4j@default:default"/>
|
||||
<setEntry value="lz4-java@default:default"/>
|
||||
<setEntry value="org.apache.commons.beanutils@default:default"/>
|
||||
<setEntry value="org.apache.commons.codec@default:default"/>
|
||||
<setEntry value="org.apache.commons.collections@default:default"/>
|
||||
<setEntry value="org.apache.commons.fileupload@default:default"/>
|
||||
<setEntry value="org.apache.commons.io@default:default"/>
|
||||
<setEntry value="org.apache.commons.lang@default:default"/>
|
||||
<setEntry value="org.apache.commons.math3@default:default"/>
|
||||
<setEntry value="org.apache.commons.math@default:default"/>
|
||||
<setEntry value="org.apache.felix.gogo.command@default:default"/>
|
||||
<setEntry value="org.apache.felix.gogo.runtime@default:default"/>
|
||||
<setEntry value="org.apache.felix.gogo.shell@default:default"/>
|
||||
<setEntry value="org.apache.felix.shell.remote@0:true"/>
|
||||
<setEntry value="org.apache.felix.shell@0:true"/>
|
||||
<setEntry value="org.apache.httpcomponents.httpclient@default:default"/>
|
||||
<setEntry value="org.apache.httpcomponents.httpcore@default:default"/>
|
||||
<setEntry value="org.apache.poi.ooxml.schemas@default:default"/>
|
||||
<setEntry value="org.apache.poi.ooxml@default:default"/>
|
||||
<setEntry value="org.apache.poi@default:default"/>
|
||||
<setEntry value="org.apache.servicemix.bundles.aws-java-sdk@default:default"/>
|
||||
<setEntry value="org.apache.servicemix.bundles.ehcache@default:default"/>
|
||||
<setEntry value="org.apache.servicemix.bundles.scribe@default:default"/>
|
||||
<setEntry value="org.apache.servicemix.bundles.zxing@default:default"/>
|
||||
<setEntry value="org.apache.shiro.core@default:default"/>
|
||||
<setEntry value="org.apache.shiro.ehcache@default:default"/>
|
||||
<setEntry value="org.apache.shiro.web@default:default"/>
|
||||
<setEntry value="org.apache.xmlbeans@default:default"/>
|
||||
<setEntry value="org.dom4j@default:default"/>
|
||||
<setEntry value="org.eclipse.equinox.cm@default:default"/>
|
||||
<setEntry value="org.eclipse.equinox.common@2:true"/>
|
||||
<setEntry value="org.eclipse.equinox.console@default:default"/>
|
||||
<setEntry value="org.eclipse.equinox.launcher@default:default"/>
|
||||
<setEntry value="org.eclipse.equinox.simpleconfigurator@2:true"/>
|
||||
<setEntry value="org.eclipse.jetty.client@default:default"/>
|
||||
<setEntry value="org.eclipse.jetty.deploy@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.http@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.io@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.jmx@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.osgi.boot@3:true"/>
|
||||
<setEntry value="org.eclipse.jetty.security@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.server@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.servlet@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.util@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.webapp@4:true"/>
|
||||
<setEntry value="org.eclipse.jetty.websocket.api@default:default"/>
|
||||
<setEntry value="org.eclipse.jetty.websocket.client@default:default"/>
|
||||
<setEntry value="org.eclipse.jetty.websocket.common@default:default"/>
|
||||
<setEntry value="org.eclipse.jetty.xml@4:true"/>
|
||||
<setEntry value="org.eclipse.osgi.services@default:default"/>
|
||||
<setEntry value="org.eclipse.osgi.util@default:default"/>
|
||||
<setEntry value="org.eclipse.osgi@-1:true"/>
|
||||
<setEntry value="org.hyperic.sigar@default:default"/>
|
||||
<setEntry value="org.jdom@default:default"/>
|
||||
<setEntry value="org.jvnet.mimepull@default:default"/>
|
||||
<setEntry value="org.mongodb.mongo-java-driver@default:default"/>
|
||||
<setEntry value="org.objectweb.asm@default:default"/>
|
||||
<setEntry value="routeconverter@default:default"/>
|
||||
<setEntry value="slf4j.api@default:default"/>
|
||||
<setEntry value="slf4j.jdk14@default:false"/>
|
||||
</setAttribute>
|
||||
<setAttribute key="selected_workspace_bundles">
|
||||
<setEntry value="com.google.gwt.servlet@default:default"/>
|
||||
<setEntry value="com.googlecode.java-diff-utils@default:default"/>
|
||||
<setEntry value="com.sap.sailing.barbados.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.competitorimport@default:default"/>
|
||||
<setEntry value="com.sap.sailing.dashboards.gwt@6:true"/>
|
||||
<setEntry value="com.sap.sailing.datamining.provider@default:default"/>
|
||||
<setEntry value="com.sap.sailing.datamining.shared@default:default"/>
|
||||
<setEntry value="com.sap.sailing.datamining@5:true"/>
|
||||
<setEntry value="com.sap.sailing.declination@default:default"/>
|
||||
<setEntry value="com.sap.sailing.domain.bravoadapter@5:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.common@default:default"/>
|
||||
<setEntry value="com.sap.sailing.domain.deckmanadapter@5:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.expeditionadapter@5:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.igtimiadapter.gateway@5:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.igtimiadapter.persistence@default:default"/>
|
||||
<setEntry value="com.sap.sailing.domain.igtimiadapter@4:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.persistence@default:default"/>
|
||||
<setEntry value="com.sap.sailing.domain.racelogtrackingadapter@4:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.shared.android@default:default"/>
|
||||
<setEntry value="com.sap.sailing.domain.swisstimingadapter.persistence@4:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.swisstimingadapter@5:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.swisstimingreplayadapter@4:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.tractracadapter.persistence@4:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.tractracadapter@5:true"/>
|
||||
<setEntry value="com.sap.sailing.domain.windfinderadapter@4:true"/>
|
||||
<setEntry value="com.sap.sailing.domain@default:default"/>
|
||||
<setEntry value="com.sap.sailing.ess40.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.expeditionconnector.common@default:default"/>
|
||||
<setEntry value="com.sap.sailing.expeditionconnector.persistence@4:true"/>
|
||||
<setEntry value="com.sap.sailing.expeditionconnector@default:default"/>
|
||||
<setEntry value="com.sap.sailing.freg.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.geocoding@default:default"/>
|
||||
<setEntry value="com.sap.sailing.grib@default:default"/>
|
||||
<setEntry value="com.sap.sailing.gwt.ui@6:true"/>
|
||||
<setEntry value="com.sap.sailing.kiworesultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.manage2sail.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.manage2sail@default:default"/>
|
||||
<setEntry value="com.sap.sailing.monitoring@7:true"/>
|
||||
<setEntry value="com.sap.sailing.news@4:true"/>
|
||||
<setEntry value="com.sap.sailing.nmeaconnector@default:default"/>
|
||||
<setEntry value="com.sap.sailing.polars.datamining.shared@default:default"/>
|
||||
<setEntry value="com.sap.sailing.polars.datamining@5:true"/>
|
||||
<setEntry value="com.sap.sailing.polars@5:true"/>
|
||||
<setEntry value="com.sap.sailing.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.routeconverterjava11extension@default:false"/>
|
||||
<setEntry value="com.sap.sailing.sailwave.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.server.gateway.serialization.shared.android@default:default"/>
|
||||
<setEntry value="com.sap.sailing.server.gateway.serialization@default:default"/>
|
||||
<setEntry value="com.sap.sailing.server.gateway@5:true"/>
|
||||
<setEntry value="com.sap.sailing.server.interface@default:default"/>
|
||||
<setEntry value="com.sap.sailing.server.trackfiles@default:default"/>
|
||||
<setEntry value="com.sap.sailing.server@5:true"/>
|
||||
<setEntry value="com.sap.sailing.shared.persistence@default:default"/>
|
||||
<setEntry value="com.sap.sailing.shared.server.gateway@5:true"/>
|
||||
<setEntry value="com.sap.sailing.shared.server@5:true"/>
|
||||
<setEntry value="com.sap.sailing.simulator@default:default"/>
|
||||
<setEntry value="com.sap.sailing.udpconnector@default:default"/>
|
||||
<setEntry value="com.sap.sailing.velum.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.windestimation@5:true"/>
|
||||
<setEntry value="com.sap.sailing.www@5:true"/>
|
||||
<setEntry value="com.sap.sailing.xmlexport@5:true"/>
|
||||
<setEntry value="com.sap.sailing.xrr.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sailing.xrr.schema@default:default"/>
|
||||
<setEntry value="com.sap.sailing.xrr.structureimport@default:default"/>
|
||||
<setEntry value="com.sap.sailing.yachtscoring.resultimport@4:true"/>
|
||||
<setEntry value="com.sap.sse.common@default:default"/>
|
||||
<setEntry value="com.sap.sse.datamining.annotations@default:default"/>
|
||||
<setEntry value="com.sap.sse.datamining.shared@default:default"/>
|
||||
<setEntry value="com.sap.sse.datamining.ui@default:default"/>
|
||||
<setEntry value="com.sap.sse.datamining@default:default"/>
|
||||
<setEntry value="com.sap.sse.filestorage@4:true"/>
|
||||
<setEntry value="com.sap.sse.gwt.adminconsole@default:default"/>
|
||||
<setEntry value="com.sap.sse.gwt@default:default"/>
|
||||
<setEntry value="com.sap.sse.jersey.jaxbdependencyfragment@default:false"/>
|
||||
<setEntry value="com.sap.sse.jettyextensions@default:false"/>
|
||||
<setEntry value="com.sap.sse.mail@5:true"/>
|
||||
<setEntry value="com.sap.sse.mongodb@default:default"/>
|
||||
<setEntry value="com.sap.sse.operationaltransformation@default:default"/>
|
||||
<setEntry value="com.sap.sse.replication.interfaces@default:default"/>
|
||||
<setEntry value="com.sap.sse.replication.persistence@default:default"/>
|
||||
<setEntry value="com.sap.sse.replication@6:true"/>
|
||||
<setEntry value="com.sap.sse.security.common@default:default"/>
|
||||
<setEntry value="com.sap.sse.security.interface@default:default"/>
|
||||
<setEntry value="com.sap.sse.security.persistence@default:default"/>
|
||||
<setEntry value="com.sap.sse.security.ui@6:true"/>
|
||||
<setEntry value="com.sap.sse.security.userstore.mongodb@4:true"/>
|
||||
<setEntry value="com.sap.sse.security@default:default"/>
|
||||
<setEntry value="com.sap.sse.shared.android@default:default"/>
|
||||
<setEntry value="com.sap.sse.threadmanager@default:default"/>
|
||||
<setEntry value="com.sap.sse@default:default"/>
|
||||
<setEntry value="com.tractrac.clientmodule@default:default"/>
|
||||
<setEntry value="net.sf.marineapi@default:default"/>
|
||||
<setEntry value="org.json.simple@default:default"/>
|
||||
<setEntry value="org.moxieapps.gwt.highcharts@default:default"/>
|
||||
<setEntry value="org.mp4parser.isoparser@default:default"/>
|
||||
</setAttribute>
|
||||
<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>
|
||||
@@ -34,6 +34,13 @@
|
||||
user name and password fields. See detailed explanation in the Master Data Import tab in
|
||||
the Advanced section.
|
||||
</li>
|
||||
<li>The master data import (MDI) can now optionally also import the connectivity information needed
|
||||
to restore the tracked races attached to the structures imported. If this checkbox is selected,
|
||||
connection records will be added to the respective connector's tab, and the tracking of the
|
||||
races will be started automatically upon completing the data import. With the connection records
|
||||
added it will also be possible to load those races again on the importing side even if they
|
||||
are temporarily removed again or should fail to load.
|
||||
</li>
|
||||
</ul>
|
||||
<h2 class="articleSubheadline">March 2020</h2>
|
||||
<ul class="bulletList">
|
||||
|
||||
@@ -513,9 +513,20 @@ public interface SecurityService extends ReplicableWithObjectInputStream<Replica
|
||||
*/
|
||||
void assumeOwnershipMigrated(String typeName);
|
||||
|
||||
void migrateOwnership(WithQualifiedObjectIdentifier object);
|
||||
/**
|
||||
*
|
||||
* @param object
|
||||
* @return {@code true} if the object required ownership migration
|
||||
*/
|
||||
boolean migrateOwnership(WithQualifiedObjectIdentifier object);
|
||||
|
||||
void migrateOwnership(QualifiedObjectIdentifier object, String displayName);
|
||||
/**
|
||||
*
|
||||
* @param object
|
||||
* @param displayName
|
||||
* @return {@code true} if the object required ownership migration
|
||||
*/
|
||||
boolean migrateOwnership(QualifiedObjectIdentifier object, String displayName);
|
||||
|
||||
void migrateUser(User user);
|
||||
|
||||
|
||||
@@ -1819,7 +1819,8 @@ public class SecurityServiceImpl implements ReplicableSecurityService, ClearStat
|
||||
@Override
|
||||
public void setDefaultOwnershipIfNotSet(QualifiedObjectIdentifier identifier) {
|
||||
final OwnershipAnnotation preexistingOwnership = getOwnership(identifier);
|
||||
if (preexistingOwnership == null) {
|
||||
if (preexistingOwnership == null || (preexistingOwnership.getAnnotation() == null ||
|
||||
(preexistingOwnership.getAnnotation().getTenantOwner() == null && preexistingOwnership.getAnnotation().getUserOwner() == null))) {
|
||||
setDefaultOwnership(identifier, identifier.toString());
|
||||
}
|
||||
}
|
||||
@@ -1849,7 +1850,8 @@ public class SecurityServiceImpl implements ReplicableSecurityService, ClearStat
|
||||
@Override
|
||||
public void setOwnershipIfNotSet(QualifiedObjectIdentifier identifier, User user, UserGroup tenantOwner) {
|
||||
final OwnershipAnnotation preexistingOwnership = getOwnership(identifier);
|
||||
if (preexistingOwnership == null) {
|
||||
if (preexistingOwnership == null || (preexistingOwnership.getAnnotation() == null ||
|
||||
(preexistingOwnership.getAnnotation().getTenantOwner() == null && preexistingOwnership.getAnnotation().getUserOwner() == null))) {
|
||||
setOwnership(identifier, user, tenantOwner, identifier.toString());
|
||||
}
|
||||
}
|
||||
@@ -2247,13 +2249,13 @@ public class SecurityServiceImpl implements ReplicableSecurityService, ClearStat
|
||||
}
|
||||
|
||||
@Override
|
||||
public void migrateOwnership(WithQualifiedObjectIdentifier identifier) {
|
||||
migrateOwnership(identifier.getIdentifier(), identifier.getName());
|
||||
public boolean migrateOwnership(WithQualifiedObjectIdentifier identifier) {
|
||||
return migrateOwnership(identifier.getIdentifier(), identifier.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void migrateOwnership(final QualifiedObjectIdentifier identifier, final String displayName) {
|
||||
this.migrateOwnership(identifier, null, /* setServerGroupAsOwner */ true, displayName);
|
||||
public boolean migrateOwnership(final QualifiedObjectIdentifier identifier, final String displayName) {
|
||||
return this.migrateOwnership(identifier, null, /* setServerGroupAsOwner */ true, displayName);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in new issue
Block a user