Merge remote-tracking branch 'server/translation' into translation

This commit is contained in:
Axel Uhl committed 2016-04-27 17:49:45 +02:00
commit 726091f2df
15 files changed
+185 -42

No files matched your search

@@ -11,6 +11,7 @@ Export-Package: com.sap.sailing.domain.common,
com.sap.sailing.domain.common.confidence,
com.sap.sailing.domain.common.confidence.impl,
com.sap.sailing.domain.common.dto,
com.sap.sailing.domain.common.i18n,
com.sap.sailing.domain.common.impl,
com.sap.sailing.domain.common.media,
com.sap.sailing.domain.common.quadtree,
@@ -4,14 +4,40 @@ import java.io.Serializable;
import java.util.UUID;
public interface DataImportProgress extends Serializable {
/**
* Helper for i18n of import sub progresses messages. A method according to the messageKey is required
* in com.sap.sailing.gwt.ui.masterdataimport.MasterDataImportSubProgressMessages interface.
*/
enum SubProgress {
CONNECTION_SETUP("connectionSetup"),
CONNECTION_ESTABLISH("connectionEstablish"),
TRANSFER_STARTED("transferStarted"),
TRANSFER_COMPLETED("transferCompleted"),
IMPORT_INIT("importInit"),
IMPORT_WAIT("importWait"),
IMPORT_LEADERBOARD_GROUPS("importLeaderboardGroups"),
IMPORT_WIND_TRACKS("importWindTracks"),
UPDATE_EVENT_LEADERBOARD_GROUP_LINKS("updateEventLeaderboardGroupLinks");
private final String messageKey;
private SubProgress(String messageKey) {
this.messageKey = messageKey;
}
public String getMessageKey() {
return messageKey;
}
}
double getOverallProgressPct();
void setOverAllProgressPct(double pct);
String getNameOfCurrentSubProgress();
void setNameOfCurrentSubProgress(String name);
DataImportSubProgress getCurrentSubProgress();
void setCurrentSubProgress(DataImportSubProgress subProgress);
double getCurrentSubProgressPct();
@@ -0,0 +1,70 @@
package com.sap.sailing.domain.common;
import com.sap.sailing.domain.common.i18n.CommonStringMessages;
public enum DataImportSubProgress {
INIT {
@Override
public String getMessage(CommonStringMessages messages) {
return messages.init();
}
},
CONNECTION_SETUP {
@Override
public String getMessage(CommonStringMessages messages) {
return messages.connectionSetup();
}
},
CONNECTION_ESTABLISH {
@Override
public String getMessage(CommonStringMessages messages) {
return messages.connectionEstablish();
}
},
TRANSFER_STARTED {
@Override
public String getMessage(CommonStringMessages messages) {
return messages.transferStarted();
}
},
TRANSFER_COMPLETED {
@Override
public String getMessage(CommonStringMessages messages) {
return messages.transferCompleted();
}
},
IMPORT_INIT {
@Override
public String getMessage(CommonStringMessages messages) {
return messages.importInit();
}
},
IMPORT_WAIT {
@Override
public String getMessage(CommonStringMessages messages) {
return messages.importWait();
}
},
IMPORT_LEADERBOARD_GROUPS {
@Override
public String getMessage(CommonStringMessages messages) {
return messages.importLeaderboardGroups();
}
},
IMPORT_WIND_TRACKS {
@Override
public String getMessage(CommonStringMessages messages) {
return messages.importWindTracks();
}
},
UPDATE_EVENT_LEADERBOARD_GROUP_LINKS {
@Override
public String getMessage(CommonStringMessages messages) {
return messages.updateEventLeaderboardGroupLinks();
}
};
public abstract String getMessage(CommonStringMessages messages);
}
@@ -0,0 +1,17 @@
package com.sap.sailing.domain.common.i18n;
public interface CommonStringMessages {
/* Master data import sub progress messages */
String init();
String connectionSetup();
String connectionEstablish();
String transferStarted();
String transferCompleted();
String importInit();
String importWait();
String importLeaderboardGroups();
String importWindTracks();
String updateEventLeaderboardGroupLinks();
}
@@ -3,6 +3,7 @@ package com.sap.sailing.domain.common.impl;
import java.util.UUID;
import com.sap.sailing.domain.common.DataImportProgress;
import com.sap.sailing.domain.common.DataImportSubProgress;
import com.sap.sailing.domain.common.MasterDataImportObjectCreationCount;
public class DataImportProgressImpl implements DataImportProgress {
@@ -11,7 +12,7 @@ public class DataImportProgressImpl implements DataImportProgress {
private UUID currentImportOperationId;
private MasterDataImportObjectCreationCount result = null;
private double overallProgressPct = 0;
private String currentSubProgressName = "Initializing Import";
private DataImportSubProgress currentSubProgress = DataImportSubProgress.IMPORT_INIT;
private double currentSubProgressPct = 0;
private boolean failed = false;
private String errorMessage;
@@ -21,17 +22,16 @@ public class DataImportProgressImpl implements DataImportProgress {
public DataImportProgressImpl(final UUID currentImportOperationId) {
this.currentImportOperationId = currentImportOperationId;
}
@Override
public double getOverallProgressPct() {
return overallProgressPct;
}
@Override
public String getNameOfCurrentSubProgress() {
return currentSubProgressName;
public DataImportSubProgress getCurrentSubProgress() {
return currentSubProgress;
}
@Override
@@ -48,10 +48,10 @@ public class DataImportProgressImpl implements DataImportProgress {
public void setOverAllProgressPct(double pct) {
overallProgressPct = pct;
}
@Override
public void setNameOfCurrentSubProgress(String name) {
currentSubProgressName = name;
public void setCurrentSubProgress(DataImportSubProgress subProgress) {
currentSubProgress = subProgress;
}
@Override
@@ -3,12 +3,14 @@ package com.sap.sailing.gwt.ui.client;
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.LocalizableResource.DefaultLocale;
import com.google.gwt.json.client.JSONValue;
import com.sap.sailing.domain.common.i18n.CommonStringMessages;
import com.sap.sse.gwt.client.DefaultRule_0_1_2_n;
import com.sap.sse.gwt.client.DefaultRule_0_1_n;
import com.sap.sse.gwt.client.DefaultRule_1_0n;
@DefaultLocale("en")
public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, com.sap.sse.gwt.adminconsole.StringMessages {
public interface StringMessages extends com.sap.sse.gwt.client.StringMessages,
com.sap.sse.gwt.adminconsole.StringMessages, CommonStringMessages {
public static final StringMessages INSTANCE = GWT.create(StringMessages.class);
String manage2Sail();
@@ -1516,4 +1516,14 @@ info=Info
windFixes=Wind fixes
twoXMark=2x Mark
pagerStateInfo={0,number,#,###}-{1,number,#,###} of {2,number,#,###}
pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} of over {2,number,#,###}
pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} of over {2,number,#,###}
init=Initializing...
connectionSetup=Setting up connection
connectionEstablish=Connecting...
transferStarted=Reading data
transferCompleted=Data-Transfer Complete, Initializing Import Operation
importInit=Initializing Import
importWait=Waiting for other data import operations to finish
importLeaderboardGroups=Importing leaderboard groups
importWindTracks=Importing wind tracks
updateEventLeaderboardGroupLinks=Updating Event-LeaderboardGroup links
@@ -1501,4 +1501,14 @@ info=Info
windFixes=Windwerte
twoXMark=2x Tonne
pagerStateInfo={0,number,#,###}-{1,number,#,###} von {2,number,#,###}
pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} von über {2,number,#,###}
pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} von über {2,number,#,###}
init=Initialisierung...
connectionSetup=Verbindungsaufbau
connectionEstablish=Verbinde...
transferStarted=Daten werden gelesen
transferCompleted=Daten-Übertragung abgeschlossen, Import wird initialisiert
importInit=Import wird initialisiert
importWait=Warten, bis andere Datenimport-Vorgänge angeschlossen sind
importLeaderboardGroups=Ranglisten-Gruppen werden importiert
importWindTracks=Windmessungen werden importiert
updateEventLeaderboardGroupLinks=Verbindungen zwischen Veranstaltungen und Ranglisten-Gruppen werden aktualisiert
@@ -180,7 +180,8 @@ public class MasterDataImportPanel extends VerticalPanel {
} else {
overallProgressBar.setPercent((int) (result
.getOverallProgressPct() * 100));
subProgressName.setText(result.getNameOfCurrentSubProgress());
subProgressName.setText(result.getCurrentSubProgress()
.getMessage(stringMessages));
subProgressBar.setPercent((int) (result
.getCurrentSubProgressPct() * 100));
}
@@ -146,6 +146,7 @@ import com.sap.sailing.domain.base.impl.TeamImpl;
import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.common.CourseDesignerMode;
import com.sap.sailing.domain.common.DataImportProgress;
import com.sap.sailing.domain.common.DataImportSubProgress;
import com.sap.sailing.domain.common.DetailType;
import com.sap.sailing.domain.common.Distance;
import com.sap.sailing.domain.common.LeaderboardNameConstants;
@@ -4596,7 +4597,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
public UUID importMasterData(final String urlAsString, final String[] groupNames, final boolean override,
final boolean compress, final boolean exportWind, final boolean exportDeviceConfigurations) {
final UUID importOperationId = UUID.randomUUID();
getService().createOrUpdateDataImportProgressWithReplication(importOperationId, 0.0, "Initializing", 0.0);
getService().createOrUpdateDataImportProgressWithReplication(importOperationId, 0.0, DataImportSubProgress.INIT, 0.0);
// Create a progress indicator for as long as the server gets data from the other server.
// As soon as the server starts the import operation, a progress object will be built on every server
Runnable masterDataImportTask = new Runnable() {
@@ -4604,7 +4605,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
public void run() {
long startTime = System.currentTimeMillis();
getService().createOrUpdateDataImportProgressWithReplication(importOperationId, 0.01,
"Setting up connection", 0.5);
DataImportSubProgress.CONNECTION_SETUP, 0.5);
String query;
try {
query = createLeaderboardQuery(groupNames, compress, exportWind, exportDeviceConfigurations);
@@ -4620,7 +4621,8 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
String path = "/sailingserver/spi/v1/masterdata/leaderboardgroups";
serverAddress = createUrl(base, path, query);
connection = HttpUrlConnectionHelper.redirectConnection(serverAddress);
getService().createOrUpdateDataImportProgressWithReplication(importOperationId, 0.02, "Connecting", 0.5);
getService().createOrUpdateDataImportProgressWithReplication(importOperationId, 0.02,
DataImportSubProgress.CONNECTION_ESTABLISH, 0.5);
if (compress) {
InputStream timeoutExtendingInputStream = new TimeoutExtendingInputStream(
connection.getInputStream(), connection);
@@ -18,6 +18,7 @@ import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.race.RaceLog;
import com.sap.sailing.domain.abstractlog.race.RaceLogStartTimeEvent;
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.RaceLogResolver;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.CompetitorStore;
import com.sap.sailing.domain.base.CourseArea;
@@ -40,6 +41,7 @@ import com.sap.sailing.domain.base.configuration.DeviceConfigurationIdentifier;
import com.sap.sailing.domain.base.configuration.DeviceConfigurationMatcher;
import com.sap.sailing.domain.base.configuration.RegattaConfiguration;
import com.sap.sailing.domain.common.DataImportProgress;
import com.sap.sailing.domain.common.DataImportSubProgress;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.RaceFetcher;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
@@ -548,12 +550,10 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch
DataImportLockWithProgress getDataImportLock();
DataImportProgress createOrUpdateDataImportProgressWithReplication(UUID importOperationId,
double overallProgressPct,
String subProgressName, double subProgressPct);
double overallProgressPct, DataImportSubProgress subProgress, double subProgressPct);
DataImportProgress createOrUpdateDataImportProgressWithoutReplication(UUID importOperationId,
double overallProgressPct,
String subProgressName, double subProgressPct);
double overallProgressPct, DataImportSubProgress subProgress, double subProgressPct);
void setDataImportFailedWithReplication(UUID importOperationId, String errorMessage);
@@ -91,6 +91,7 @@ import com.sap.sailing.domain.base.impl.EventImpl;
import com.sap.sailing.domain.base.impl.RegattaImpl;
import com.sap.sailing.domain.base.impl.RemoteSailingServerReferenceImpl;
import com.sap.sailing.domain.common.DataImportProgress;
import com.sap.sailing.domain.common.DataImportSubProgress;
import com.sap.sailing.domain.common.Distance;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
@@ -3034,19 +3035,19 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
@Override
public DataImportProgress createOrUpdateDataImportProgressWithReplication(UUID importOperationId,
double overallProgressPct, String subProgressName, double subProgressPct) {
double overallProgressPct, DataImportSubProgress subProgress, double subProgressPct) {
// Create/Update locally
DataImportProgress progress = createOrUpdateDataImportProgressWithoutReplication(importOperationId,
overallProgressPct, subProgressName, subProgressPct);
overallProgressPct, subProgress, subProgressPct);
// Create/Update on replicas
replicate(new CreateOrUpdateDataImportProgress(importOperationId, overallProgressPct, subProgressName,
replicate(new CreateOrUpdateDataImportProgress(importOperationId, overallProgressPct, subProgress,
subProgressPct));
return progress;
}
@Override
public DataImportProgress createOrUpdateDataImportProgressWithoutReplication(UUID importOperationId,
double overallProgressPct, String subProgressName, double subProgressPct) {
double overallProgressPct, DataImportSubProgress subProgress, double subProgressPct) {
DataImportProgress progress = dataImportLock.getProgress(importOperationId);
boolean newObject = false;
if (progress == null) {
@@ -3054,7 +3055,7 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
newObject = true;
}
progress.setOverAllProgressPct(overallProgressPct);
progress.setNameOfCurrentSubProgress(subProgressName);
progress.setCurrentSubProgress(subProgress);
progress.setCurrentSubProgressPct(subProgressPct);
if (newObject) {
dataImportLock.addProgress(importOperationId, progress);
@@ -12,6 +12,7 @@ import com.sap.sailing.domain.base.DomainFactory;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.base.impl.MasterDataImportInformation;
import com.sap.sailing.domain.base.impl.RegattaImpl;
import com.sap.sailing.domain.common.DataImportSubProgress;
import com.sap.sailing.domain.common.MasterDataImportObjectCreationCount;
import com.sap.sailing.domain.common.impl.MasterDataImportObjectCreationCountImpl;
import com.sap.sailing.domain.masterdataimport.TopLevelMasterData;
@@ -35,8 +36,8 @@ public class MasterDataImporter {
ClassNotFoundException {
ObjectInputStreamResolvingAgainstCache<DomainFactory> objectInputStream = racingEventService.getBaseDomainFactory()
.createObjectInputStreamResolvingAgainstThisFactory(inputStream);
racingEventService
.createOrUpdateDataImportProgressWithReplication(importOperationId, 0.03, "Reading Data", 0.5);
racingEventService.createOrUpdateDataImportProgressWithReplication(importOperationId, 0.03,
DataImportSubProgress.TRANSFER_STARTED, 0.5);
RaceLogStore raceLogStore = MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(
racingEventService.getMongoObjectFactory(), racingEventService.getDomainObjectFactory());
@@ -65,7 +66,7 @@ public class MasterDataImporter {
}
racingEventService.createOrUpdateDataImportProgressWithReplication(importOperationId, 0.3,
"Data-Transfer Complete, Initializing Import Operation", 0.5);
DataImportSubProgress.TRANSFER_COMPLETED, 0.5);
applyMasterDataImportOperation(topLevelMasterData, importOperationId, override);
}
@@ -2,30 +2,31 @@ package com.sap.sailing.server.operationaltransformation;
import java.util.UUID;
import com.sap.sailing.domain.common.DataImportSubProgress;
import com.sap.sailing.server.RacingEventService;
import com.sap.sailing.server.RacingEventServiceOperation;
public class CreateOrUpdateDataImportProgress extends AbstractRacingEventServiceOperation<Void> {
private static final long serialVersionUID = 7619972832594152077L;
private static final long serialVersionUID = 1980532937717924118L;
private UUID importOperationId;
private double overallProgressPct;
private String subProgressName;
private DataImportSubProgress subProgress;
private double subProgressPct;
public CreateOrUpdateDataImportProgress(UUID importOperationId, double overallProgressPct, String subProgressName,
double subProgressPct) {
public CreateOrUpdateDataImportProgress(UUID importOperationId, double overallProgressPct,
DataImportSubProgress subProgress, double subProgressPct) {
this.importOperationId = importOperationId;
this.overallProgressPct = overallProgressPct;
this.subProgressName = subProgressName;
this.subProgress = subProgress;
this.subProgressPct = subProgressPct;
}
@Override
public Void internalApplyTo(RacingEventService toState) throws Exception {
toState.createOrUpdateDataImportProgressWithoutReplication(importOperationId, overallProgressPct,
subProgressName, subProgressPct);
subProgress, subProgressPct);
return null;
}
@@ -26,6 +26,7 @@ import com.sap.sailing.domain.base.configuration.DeviceConfiguration;
import com.sap.sailing.domain.base.configuration.DeviceConfigurationMatcher;
import com.sap.sailing.domain.base.impl.RegattaImpl;
import com.sap.sailing.domain.common.DataImportProgress;
import com.sap.sailing.domain.common.DataImportSubProgress;
import com.sap.sailing.domain.common.RaceIdentifier;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.Wind;
@@ -96,10 +97,10 @@ public class ImportMasterDataOperation extends
public MasterDataImportObjectCreationCountImpl internalApplyTo(RacingEventService toState) throws Exception {
final DataImportLockWithProgress dataImportLock = toState.getDataImportLock();
this.progress = dataImportLock.getProgress(importOperationId);
progress.setNameOfCurrentSubProgress("Waiting for other data import operations to finish");
progress.setCurrentSubProgress(DataImportSubProgress.IMPORT_WAIT);
LockUtil.lockForWrite(dataImportLock);
try {
progress.setNameOfCurrentSubProgress("Importing leaderboard groups");
progress.setCurrentSubProgress(DataImportSubProgress.IMPORT_LEADERBOARD_GROUPS);
progress.setCurrentSubProgressPct(0);
int numOfGroupsToImport = masterData.getLeaderboardGroups().size();
int i = 0;
@@ -108,7 +109,7 @@ public class ImportMasterDataOperation extends
i++;
progress.setCurrentSubProgressPct((double) i / numOfGroupsToImport);
}
progress.setNameOfCurrentSubProgress("Updating Event-LeaderboardGroup links");
progress.setCurrentSubProgress(DataImportSubProgress.UPDATE_EVENT_LEADERBOARD_GROUP_LINKS);
progress.setOverAllProgressPct(0.4);
progress.setCurrentSubProgressPct(0);
final Iterable<Event> allEvents = masterData.getAllEvents();
@@ -119,7 +120,7 @@ public class ImportMasterDataOperation extends
eventCounter++;
progress.setCurrentSubProgressPct((double) eventCounter / numOfEventsToHandle);
}
progress.setNameOfCurrentSubProgress("Importing wind tracks");
progress.setCurrentSubProgress(DataImportSubProgress.IMPORT_WIND_TRACKS);
progress.setOverAllProgressPct(0.5);
progress.setCurrentSubProgressPct(0);
createWindTracks(toState);