Merge branch 'master' into bug2080

Conflicts:
	java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/FleetDeserializer.java
This commit is contained in:
Axel Uhl committed 2014-08-29 13:11:24 +02:00
commit 62eb430b7c
681 files changed
+17800 -5132

No files matched your search

@@ -19,7 +19,7 @@
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console -clean"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dexpedition.udp.port=2010 -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 -Dkiwo.results=${project_loc:com.sap.sailing.kiworesultimport.test}/resources -Dpersistentcompetitors.clear=false -XX:+UseMembar -Digtimi.client.id=7fcdd217e0aa16090edb4ad55b09ec43b2021090e209541fc9b7003c2a2b70c6 -Digtimi.client.secret=aa569cf4909bdc7b0e04b11873f3c4ea20687421e010fcc25b771cca9e6f3f9a -Digtimi.client.redirecturi=http://127.0.0.1:8888/igtimi/oauth/v1/authorizationcallback -DspatialWind=true"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dfile.encoding=cp1252 -Dexpedition.udp.port=2010 -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 -Dkiwo.results=${project_loc:com.sap.sailing.kiworesultimport.test}/resources -Dpersistentcompetitors.clear=false -XX:+UseMembar -Digtimi.client.id=7fcdd217e0aa16090edb4ad55b09ec43b2021090e209541fc9b7003c2a2b70c6 -Digtimi.client.secret=aa569cf4909bdc7b0e04b11873f3c4ea20687421e010fcc25b771cca9e6f3f9a -Digtimi.client.redirecturi=http://127.0.0.1:8888/igtimi/oauth/v1/authorizationcallback -DspatialWind=true"/>
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc}"/>
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="profilingTraceType-ALLOCATION_TRACE" value="KEY_APPLICATION_FILTER%CTX_KEY%*%CTX_ENTRY%INCREASE_COUNT%CTX_KEY%8192%CTX_ENTRY%KEY_MIN_SIZE%CTX_KEY%32%CTX_ENTRY%KEY_MAX_SIZE%CTX_KEY%65536%CTX_ENTRY%KEY_INC_LINE_NRS%CTX_KEY%true%CTX_ENTRY%KEY_SESSION_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_ENABLEMENT%CTX_KEY%false%CTX_ENTRY%CLASS_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_USER_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_REQUEST_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_ADAPTIVE%CTX_KEY%false%CTX_ENTRY%"/>
@@ -236,15 +236,15 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch
* The name of the new group
* @param description
* The description of the new group
* @param displayName TODO
* @param displayGroupsInReverseOrder TODO
* @param leaderboardNames
* The names of the leaderboards, which should be contained by the new group.<br />
* If there isn't a leaderboard with one of these names an {@link IllegalArgumentException} is thrown.
*
* @return The new leaderboard group
*/
LeaderboardGroup addLeaderboardGroup(UUID id, String groupName, String description,
boolean displayGroupsInReverseOrder, List<String> leaderboardNames, int[] overallLeaderboardDiscardThresholds, ScoringSchemeType overallLeaderboardScoringSchemeType);
String displayName, boolean displayGroupsInReverseOrder, List<String> leaderboardNames, int[] overallLeaderboardDiscardThresholds, ScoringSchemeType overallLeaderboardScoringSchemeType);
/**
* Removes the group with the name <code>groupName</code> from the service and the database.
@@ -289,8 +289,8 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch
*/
void addRace(RegattaIdentifier addToRegatta, RaceDefinition raceDefinition);
void updateLeaderboardGroup(String oldName, String newName, String description, List<String> leaderboardNames,
int[] overallLeaderboardDiscardThresholds, ScoringSchemeType overallLeaderboardScoringSchemeType);
void updateLeaderboardGroup(String oldName, String newName, String description, String displayName,
List<String> leaderboardNames, int[] overallLeaderboardDiscardThresholds, ScoringSchemeType overallLeaderboardScoringSchemeType);
/**
* Executes an operation whose effects need to be replicated to any replica of this service known and
@@ -340,6 +340,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch
*
* @param eventName
* The name of the new event
* @param eventDescription TODO
* @param startDate
* The start date of the event
* @param endDate
@@ -352,7 +353,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch
* The name of the venue of the new event
* @return The new event
*/
Event addEvent(String eventName, TimePoint startDate, TimePoint endDate, String venueName, boolean isPublic, UUID id);
Event addEvent(String eventName, String eventDescription, TimePoint startDate, TimePoint endDate, String venueName, boolean isPublic, UUID id);
/**
* Updates a sailing event with the name <code>eventName</code>, the venue<code>venue</code> and the regattas with
@@ -459,8 +460,8 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch
*/
ConcurrentHashMap<String, Regatta> getPersistentRegattasForRaceIDs();
Event createEventWithoutReplication(String eventName, TimePoint startDate, TimePoint endDate, String venue, boolean isPublic,
UUID id, Iterable<URL> imageURLs, Iterable<URL> videoURLs);
Event createEventWithoutReplication(String eventName, String eventDescription, TimePoint startDate, TimePoint endDate, String venue,
boolean isPublic, UUID id, Iterable<URL> imageURLs, Iterable<URL> videoURLs, Iterable<URL> sponsorImageURLs, URL logoImageURL, URL officialWebsiteURL);
void setRegattaForRace(Regatta regatta, String raceIdAsString);
@@ -1892,8 +1892,8 @@ public class RacingEventServiceImpl implements RacingEventServiceWithTestSupport
@Override
public LeaderboardGroup addLeaderboardGroup(UUID id, String groupName,
String description, boolean displayGroupsInReverseOrder,
List<String> leaderboardNames, int[] overallLeaderboardDiscardThresholds, ScoringSchemeType overallLeaderboardScoringSchemeType) {
String description, String displayName,
boolean displayGroupsInReverseOrder, List<String> leaderboardNames, int[] overallLeaderboardDiscardThresholds, ScoringSchemeType overallLeaderboardScoringSchemeType) {
ArrayList<Leaderboard> leaderboards = new ArrayList<>();
for (String leaderboardName : leaderboardNames) {
Leaderboard leaderboard = leaderboardsByName.get(leaderboardName);
@@ -1903,8 +1903,8 @@ public class RacingEventServiceImpl implements RacingEventServiceWithTestSupport
leaderboards.add(leaderboard);
}
}
LeaderboardGroup result = new LeaderboardGroupImpl(id, groupName, description, displayGroupsInReverseOrder,
leaderboards);
LeaderboardGroup result = new LeaderboardGroupImpl(id, groupName, description, displayName,
displayGroupsInReverseOrder, leaderboards);
if (overallLeaderboardScoringSchemeType != null) {
// create overall leaderboard and its discards settings
addOverallLeaderboardToLeaderboardGroup(result,
@@ -1984,8 +1984,8 @@ public class RacingEventServiceImpl implements RacingEventServiceWithTestSupport
@Override
public void updateLeaderboardGroup(String oldName, String newName, String description,
List<String> leaderboardNames, int[] overallLeaderboardDiscardThresholds,
ScoringSchemeType overallLeaderboardScoringSchemeType) {
String displayName, List<String> leaderboardNames,
int[] overallLeaderboardDiscardThresholds, ScoringSchemeType overallLeaderboardScoringSchemeType) {
if (!oldName.equals(newName)) {
renameLeaderboardGroup(oldName, newName);
}
@@ -1993,6 +1993,9 @@ public class RacingEventServiceImpl implements RacingEventServiceWithTestSupport
if (!description.equals(group.getDescription())) {
group.setDescriptiom(description);
}
if (!Util.equalsWithNull(displayName, group.getDisplayName())) {
group.setDisplayName(displayName);
}
group.clearLeaderboards();
for (String leaderboardName : leaderboardNames) {
Leaderboard leaderboard = getLeaderboardByName(leaderboardName);
@@ -2291,11 +2294,14 @@ public class RacingEventServiceImpl implements RacingEventServiceWithTestSupport
// Used for TESTING only
@Override
public Event addEvent(String eventName, TimePoint startDate, TimePoint endDate, String venue, boolean isPublic, UUID id) {
Event result = createEventWithoutReplication(eventName, startDate, endDate, venue, isPublic, id,
/* imageURLs */ Collections.<URL>emptyList(), /* videoURLs */ Collections.<URL>emptyList());
replicate(new CreateEvent(eventName, startDate, endDate, venue, isPublic, id, /* imageURLs */
Collections.<URL> emptyList(), /* videoURLs */Collections.<URL> emptyList()));
public Event addEvent(String eventName, String eventDescription, TimePoint startDate, TimePoint endDate, String venue, boolean isPublic, UUID id) {
Event result = createEventWithoutReplication(eventName, eventDescription, startDate, endDate, venue, isPublic,
id, /* imageURLs */ Collections.<URL>emptyList(),
/* videoURLs */ Collections.<URL>emptyList(), /* sponsorImageURLs */ Collections.<URL>emptyList(), /* logoImageURL */ null, /* officialWebsiteURL */ null);
replicate(new CreateEvent(eventName, eventDescription, startDate, endDate, venue, isPublic, /* imageURLs */
id, Collections.<URL> emptyList(),
/* videoURLs */Collections.<URL> emptyList(), /* sponsorImageURLs */ Collections.<URL> emptyList(),
/* logoimageURL */ null, /* officialWebsiteURLAsString */ null));
return result;
}
@@ -2305,12 +2311,17 @@ public class RacingEventServiceImpl implements RacingEventServiceWithTestSupport
}
@Override
public Event createEventWithoutReplication(String eventName, TimePoint startDate, TimePoint endDate, String venue,
boolean isPublic, UUID id, Iterable<URL> imageURLs, Iterable<URL> videoURLs) {
public Event createEventWithoutReplication(String eventName, String eventDescription, TimePoint startDate, TimePoint endDate,
String venue, boolean isPublic, UUID id, Iterable<URL> imageURLs,
Iterable<URL> videoURLs, Iterable<URL> sponsorImageURLs, URL logoImageURL, URL officialWebsiteURL) {
Event result = new EventImpl(eventName, startDate, endDate, venue, isPublic, id);
addEvent(result);
result.setDescription(eventDescription);
result.setImageURLs(imageURLs);
result.setVideoURLs(videoURLs);
result.setSponsorImageURLs(sponsorImageURLs);
result.setLogoImageURL(logoImageURL);
result.setOfficialWebsiteURL(officialWebsiteURL);
return result;
}
@@ -103,7 +103,7 @@ public class RemoteSailingServerSet {
logger.fine("Updating events for remote server "+ref+" from URL "+eventsURL);
URLConnection urlConnection = eventsURL.openConnection();
urlConnection.connect();
bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));
JSONParser parser = new JSONParser();
Object eventsAsObject = parser.parse(bufferedReader);
EventBaseJsonDeserializer deserializer = new EventBaseJsonDeserializer(new VenueJsonDeserializer(
@@ -55,20 +55,25 @@ public class DummyTrackedRace extends TrackedRaceWithWindEssentials {
private static final long serialVersionUID = -11522605089325440L;
private Regatta regatta;
public DummyTrackedRace(final Iterable<? extends Competitor> competitors, final Regatta regatta, final TrackedRegatta trackedRegatta) {
public DummyTrackedRace(final Serializable raceId, final Iterable<? extends Competitor> competitors, final Regatta regatta, final TrackedRegatta trackedRegatta, final WindStore windStore) {
this(competitors, regatta, trackedRegatta, new RaceDefinitionImpl("DummyRace", new CourseImpl("Dummy Course", Collections.<Waypoint>emptyList()),
regatta.getBoatClass(), competitors));
regatta.getBoatClass(), competitors, raceId), windStore);
}
public DummyTrackedRace(final Iterable<? extends Competitor> competitors, final Regatta regatta, final TrackedRegatta trackedRegatta,
RaceDefinition race) {
super(race, trackedRegatta, EmptyWindStore.INSTANCE, -1);
RaceDefinition race, WindStore windStore) {
super(race, trackedRegatta, windStore, -1);
this.regatta = regatta;
}
public DummyTrackedRace(final Iterable<? extends Competitor> competitors, final Regatta regatta, final TrackedRegatta trackedRegatta,
RaceDefinition race) {
this(competitors, regatta, trackedRegatta, race, EmptyWindStore.INSTANCE);
}
public DummyTrackedRace(final String raceName, final Serializable raceId) {
super(new RaceDefinitionImpl(raceName, new CourseImpl("Dummy Course", Collections.<Waypoint> emptyList()),
/* boatClass */ null, new HashSet<Competitor>()), null, EmptyWindStore.INSTANCE, -1);
/* boatClass */ null, new HashSet<Competitor>(), raceId), null, EmptyWindStore.INSTANCE, -1);
}
@Override
@@ -22,19 +22,27 @@ public class CreateEvent extends AbstractEventOperation<Event> {
private final TimePoint endDate;
private final boolean isPublic;
private final String eventName;
private final String eventDescription;
private final Iterable<URL> videoURLs;
private final Iterable<URL> imageURLs;
private final Iterable<URL> sponsorImageURLs;
private final URL logoImageURL;
private final URL officialWebsiteURL;
public CreateEvent(String eventName, TimePoint startDate, TimePoint endDate, String venue, boolean isPublic,
UUID id, Iterable<URL> imageURLs, Iterable<URL> videoURLs) {
public CreateEvent(String eventName, String eventDescription, TimePoint startDate, TimePoint endDate, String venue,
boolean isPublic, UUID id, Iterable<URL> imageURLs, Iterable<URL> videoURLs, Iterable<URL> sponsorImageURLs, URL logoImageURL, URL officialWebsiteURL) {
super(id);
this.eventName = eventName;
this.eventDescription = eventDescription;
this.startDate = startDate;
this.endDate = endDate;
this.venue = venue;
this.isPublic = isPublic;
this.imageURLs = imageURLs;
this.videoURLs = videoURLs;
this.sponsorImageURLs = sponsorImageURLs;
this.logoImageURL = logoImageURL;
this.officialWebsiteURL = officialWebsiteURL;
}
@Override
@@ -55,7 +63,8 @@ public class CreateEvent extends AbstractEventOperation<Event> {
@Override
public Event internalApplyTo(RacingEventService toState) {
return toState.createEventWithoutReplication(getEventName(), startDate, endDate, venue, isPublic, getId(), imageURLs, videoURLs);
return toState.createEventWithoutReplication(getEventName(), eventDescription, startDate, endDate, venue, isPublic,
getId(), imageURLs, videoURLs, sponsorImageURLs, logoImageURL, officialWebsiteURL);
}
}
@@ -12,16 +12,18 @@ public class CreateLeaderboardGroup extends AbstractLeaderboardGroupOperation<Le
private static final long serialVersionUID = -5028997286564650805L;
private final UUID id;
private final String description;
private final String displayName;
private final boolean displayGroupsInReverseOrder;
private final List<String> leaderboardNames;
private final int[] overallLeaderboardDiscardThresholds;
private final ScoringSchemeType overallLeaderboardScoringSchemeType;
public CreateLeaderboardGroup(String leaderboardGroupName, String description, boolean displayGroupsInReverseOrder, List<String> leaderboardNames,
int[] overallLeaderboardDiscardThresholds, ScoringSchemeType overallLeaderboardScoringSchemeType) {
public CreateLeaderboardGroup(String leaderboardGroupName, String description, String displayName, boolean displayGroupsInReverseOrder,
List<String> leaderboardNames, int[] overallLeaderboardDiscardThresholds, ScoringSchemeType overallLeaderboardScoringSchemeType) {
super(leaderboardGroupName);
this.id = UUID.randomUUID();
this.description = description;
this.displayName = displayName;
this.displayGroupsInReverseOrder = displayGroupsInReverseOrder;
this.leaderboardNames = leaderboardNames;
this.overallLeaderboardDiscardThresholds = overallLeaderboardDiscardThresholds;
@@ -43,8 +45,8 @@ public class CreateLeaderboardGroup extends AbstractLeaderboardGroupOperation<Le
@Override
public LeaderboardGroup internalApplyTo(RacingEventService toState) {
// TODO see bug 729: try to move addLeaderboardGroup implementation here and synthesize and apply this operation there
return toState.addLeaderboardGroup(id, getLeaderboardGroupName(), description, displayGroupsInReverseOrder,
leaderboardNames, overallLeaderboardDiscardThresholds, overallLeaderboardScoringSchemeType);
return toState.addLeaderboardGroup(id, getLeaderboardGroupName(), description, displayName,
displayGroupsInReverseOrder, leaderboardNames, overallLeaderboardDiscardThresholds, overallLeaderboardScoringSchemeType);
}
}
@@ -38,6 +38,7 @@ import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.domain.tracking.TrackedRegatta;
import com.sap.sailing.domain.tracking.Wind;
import com.sap.sailing.domain.tracking.WindTrack;
import com.sap.sailing.domain.tracking.impl.EmptyWindStore;
import com.sap.sailing.server.RacingEventService;
import com.sap.sailing.server.RacingEventServiceOperation;
import com.sap.sailing.server.masterdata.DummyTrackedRace;
@@ -280,7 +281,7 @@ public class ImportMasterDataOperation extends
Iterator<? extends Fleet> fleetIterator = fleets.iterator();
if (fleetIterator.hasNext()) {
fleet = fleetIterator.next();
DummyTrackedRace dummy = new DummyTrackedRace(leaderboard.getAllCompetitors(), regatta, null);
DummyTrackedRace dummy = new DummyTrackedRace(UUID.randomUUID(), leaderboard.getAllCompetitors(), regatta, null, EmptyWindStore.INSTANCE);
raceColumn.setTrackedRace(fleet, dummy);
}
}
@@ -10,15 +10,17 @@ public class UpdateLeaderboardGroup extends AbstractLeaderboardGroupOperation<Vo
private static final long serialVersionUID = -1822477339916802467L;
private final String newName;
private final String newDescription;
private final String newDisplayName;
private final List<String> leaderboardNames;
private final int[] overallLeaderboardDiscardThresholds;
private final ScoringSchemeType overallLeaderboardScoringSchemeType;
public UpdateLeaderboardGroup(String leaderboardGroupName, String newName, String newDescription,
List<String> leaderboardNames, int[] overallLeaderboardDiscardThresholds, ScoringSchemeType overallLeaderboardScoringSchemeType) {
String newDisplayName, List<String> leaderboardNames, int[] overallLeaderboardDiscardThresholds, ScoringSchemeType overallLeaderboardScoringSchemeType) {
super(leaderboardGroupName);
this.newName = newName;
this.newDescription = newDescription;
this.newDisplayName = newDisplayName;
this.leaderboardNames = leaderboardNames;
this.overallLeaderboardDiscardThresholds = overallLeaderboardDiscardThresholds;
this.overallLeaderboardScoringSchemeType = overallLeaderboardScoringSchemeType;
@@ -38,8 +40,8 @@ public class UpdateLeaderboardGroup extends AbstractLeaderboardGroupOperation<Vo
@Override
public Void internalApplyTo(RacingEventService toState) {
toState.updateLeaderboardGroup(getLeaderboardGroupName(), newName, newDescription, leaderboardNames,
overallLeaderboardDiscardThresholds, overallLeaderboardScoringSchemeType);
toState.updateLeaderboardGroup(getLeaderboardGroupName(), newName, newDescription, newDisplayName,
leaderboardNames, overallLeaderboardDiscardThresholds, overallLeaderboardScoringSchemeType);
return null;
}