Bug fix : During upload the files when changing the selection of the

software module the upload also changes to the new selected software
module

Signed-off-by: Asharani <asharani.murugesh@in.bosch.com>
This commit is contained in:
Asharani
2016-05-18 11:14:51 +05:30
parent 51db4204d2
commit a774412055
3 changed files with 29 additions and 38 deletions

View File

@@ -35,10 +35,11 @@ public class UploadFileStatus implements Serializable {
this.fileName = fileName;
}
public UploadFileStatus(String fileName, long bytesRead, long contentLength) {
public UploadFileStatus(String fileName, long bytesRead, long contentLength,SoftwareModule softwareModule) {
this.fileName = fileName;
this.contentLength = contentLength;
this.bytesRead = bytesRead;
this.softwareModule = softwareModule;
}
public UploadFileStatus(String fileName, String failureReason,SoftwareModule selectedSw) {

View File

@@ -121,9 +121,8 @@ public class UploadHandler implements StreamVariable, Receiver, SucceededListene
// reset has directory flag before upload
view.setHasDirectory(false);
try {
if (view.checkIfSoftwareModuleIsSelected() && !view.checkForDuplicate(fileName)) {
if (view.checkIfSoftwareModuleIsSelected() && !view.checkForDuplicate(fileName, selectedSwForUpload)) {
view.increaseNumberOfFileUploadsExpected();
selectedSwForUpload = artifactUploadState.getSelectedBaseSoftwareModule().get();
return view.saveUploadedFileDetails(fileName, 0, mimeType, selectedSwForUpload);
}
} catch (final ArtifactUploadFailedException e) {
@@ -146,7 +145,7 @@ public class UploadHandler implements StreamVariable, Receiver, SucceededListene
public void uploadSucceeded(final SucceededEvent event) {
LOG.debug("Streaming finished for file :{}", event.getFilename());
eventBus.publish(this, new UploadStatusEvent(UploadStatusEventType.UPLOAD_SUCCESSFUL, new UploadFileStatus(
event.getFilename(), 0, event.getLength())));
event.getFilename(), 0, event.getLength(), selectedSwForUpload)));
}
/**
@@ -160,7 +159,7 @@ public class UploadHandler implements StreamVariable, Receiver, SucceededListene
public void streamingFinished(final StreamingEndEvent event) {
LOG.debug("Streaming finished for file :{}", event.getFileName());
eventBus.publish(this, new UploadStatusEvent(UploadStatusEventType.UPLOAD_STREAMING_FINISHED,
new UploadFileStatus(event.getFileName(), 0, event.getContentLength())));
new UploadFileStatus(event.getFileName(), 0, event.getContentLength(), selectedSw)));
}
/**
@@ -185,7 +184,7 @@ public class UploadHandler implements StreamVariable, Receiver, SucceededListene
public void streamingStarted(final StreamingStartEvent event) {
LOG.debug("Streaming started for file :{}", fileName);
eventBus.publish(this, new UploadStatusEvent(UploadStatusEventType.UPLOAD_STARTED, new UploadFileStatus(
fileName, 0, 0)));
fileName, 0, 0, selectedSw)));
}
/**
@@ -195,11 +194,13 @@ public class UploadHandler implements StreamVariable, Receiver, SucceededListene
*/
@Override
public void uploadStarted(final StartedEvent event) {
selectedSwForUpload = artifactUploadState.getSelectedBaseSoftwareModule().get();
// single file session
if (view.isSoftwareModuleSelected() && !view.checkIfFileIsDuplicate(event.getFilename())) {
if (view.isSoftwareModuleSelected() && !view.checkIfFileIsDuplicate(event.getFilename(), selectedSwForUpload)) {
LOG.debug("Upload started for file :{}", event.getFilename());
eventBus.publish(this, new UploadStatusEvent(UploadStatusEventType.UPLOAD_STARTED, new UploadFileStatus(
event.getFilename(), 0, 0)));
event.getFilename(), 0, 0, selectedSwForUpload)));
} else {
failureReason = i18n.get("message.upload.failed");
upload.interruptUpload();
@@ -238,7 +239,7 @@ public class UploadHandler implements StreamVariable, Receiver, SucceededListene
return;
}
eventBus.publish(this, new UploadStatusEvent(UploadStatusEventType.UPLOAD_IN_PROGRESS,
new UploadFileStatus(fileName, readBytes, contentLength)));
new UploadFileStatus(fileName, readBytes, contentLength, selectedSwForUpload)));
LOG.info("Update progress - {} : {}", fileName, (double) readBytes / (double) contentLength);
}
}
@@ -259,7 +260,7 @@ public class UploadHandler implements StreamVariable, Receiver, SucceededListene
return;
}
eventBus.publish(this, new UploadStatusEvent(UploadStatusEventType.UPLOAD_IN_PROGRESS, new UploadFileStatus(
fileName, event.getBytesReceived(), event.getContentLength())));
fileName, event.getBytesReceived(), event.getContentLength(), selectedSw)));
// Logging to solve sonar issue
LOG.trace("Streaming in progress for file :{}", event.getFileName());
}

View File

@@ -118,7 +118,6 @@ public class UploadLayout extends VerticalLayout {
private Button uploadStatusButton;
/**
* Initialize the upload layout.
*/
@@ -139,8 +138,7 @@ public class UploadLayout extends VerticalLayout {
ui.access(() -> showUploadStatusButton());
} else if (event == UploadArtifactUIEvent.MAXIMIZED_STATUS_POPUP) {
ui.access(() -> maximizeStatusPopup());
}
else if(event == UploadArtifactUIEvent.ARTIFACT_RESULT_POPUP_CLOSED){
} else if (event == UploadArtifactUIEvent.ARTIFACT_RESULT_POPUP_CLOSED) {
ui.access(() -> closeUploadStatusPopup());
}
}
@@ -264,9 +262,9 @@ public class UploadLayout extends VerticalLayout {
private void processFile(final Html5File file, SoftwareModule selectedSw) {
if (!isDirectory(file)) {
if (!checkForDuplicate(file.getFileName())) {
if (!checkForDuplicate(file.getFileName(), selectedSw)) {
artifactUploadState.getNumberOfFileUploadsExpected().incrementAndGet();
file.setStreamVariable(createStreamVariable(file,selectedSw));
file.setStreamVariable(createStreamVariable(file, selectedSw));
}
} else {
hasDirectory = Boolean.TRUE;
@@ -275,7 +273,7 @@ public class UploadLayout extends VerticalLayout {
private StreamVariable createStreamVariable(final Html5File file, SoftwareModule selectedSw) {
return new UploadHandler(file.getFileName(), file.getFileSize(), UploadLayout.this,
spInfo.getMaxArtifactFileSize(), null, file.getType(),selectedSw);
spInfo.getMaxArtifactFileSize(), null, file.getType(), selectedSw);
}
private boolean isDirectory(final Html5File file) {
@@ -339,8 +337,8 @@ public class UploadLayout extends VerticalLayout {
discardBtn.addClickListener(event -> discardUploadData(event));
}
boolean checkForDuplicate(final String filename) {
final Boolean isDuplicate = checkIfFileIsDuplicate(filename);
boolean checkForDuplicate(final String filename, final SoftwareModule selectedSw) {
final Boolean isDuplicate = checkIfFileIsDuplicate(filename, selectedSw);
if (isDuplicate) {
getDuplicateFileNamesList().add(filename);
}
@@ -358,22 +356,23 @@ public class UploadLayout extends VerticalLayout {
* file size
* @param mimeType
* the mimeType of the file
* @param selectedSw
* @param selectedSw
* @throws IOException
* in case of upload errors
*/
OutputStream saveUploadedFileDetails(final String name, final long size, final String mimeType, SoftwareModule selectedSw) {
OutputStream saveUploadedFileDetails(final String name, final long size, final String mimeType,
SoftwareModule selectedSw) {
File tempFile = null;
try {
tempFile = File.createTempFile("spUiArtifactUpload", null);
final OutputStream out = new FileOutputStream(tempFile);
final String currentBaseSoftwareModuleKey = HawkbitCommonUtil.getFormattedNameVersion(
selectedSw.getName(), selectedSw.getVersion());
final String currentBaseSoftwareModuleKey = HawkbitCommonUtil.getFormattedNameVersion(selectedSw.getName(),
selectedSw.getVersion());
final CustomFile customFile = new CustomFile(name, size, tempFile.getAbsolutePath(),
selectedSw.getName(), selectedSw.getVersion(), mimeType);
final CustomFile customFile = new CustomFile(name, size, tempFile.getAbsolutePath(), selectedSw.getName(),
selectedSw.getVersion(), mimeType);
artifactUploadState.getFileSelected().add(customFile);
processBtn.setEnabled(false);
@@ -424,13 +423,6 @@ public class UploadLayout extends VerticalLayout {
return true;
}
SoftwareModule getSoftwareModuleSelected() {
if (artifactUploadState.getSelectedBaseSoftwareModule().isPresent()) {
return artifactUploadState.getSelectedBaseSoftwareModule().get();
}
return null;
}
Boolean isSoftwareModuleSelected() {
if (!artifactUploadState.getSelectedBaseSwModuleId().isPresent()) {
return false;
@@ -446,9 +438,8 @@ public class UploadLayout extends VerticalLayout {
* file name
* @return Boolean
*/
public Boolean checkIfFileIsDuplicate(final String name) {
public Boolean checkIfFileIsDuplicate(final String name, final SoftwareModule selectedSoftwareModule) {
Boolean isDuplicate = false;
final SoftwareModule selectedSoftwareModule = artifactUploadState.getSelectedBaseSoftwareModule().get();
final String currentBaseSoftwareModuleKey = HawkbitCommonUtil.getFormattedNameVersion(
selectedSoftwareModule.getName(), selectedSoftwareModule.getVersion());
@@ -514,8 +505,7 @@ public class UploadLayout extends VerticalLayout {
artifactUploadState.getNumberOfFileUploadsExpected().incrementAndGet();
}
void updateFileSize(final String name, final long size) {
final SoftwareModule selectedSoftwareModule = artifactUploadState.getSelectedBaseSoftwareModule().get();
void updateFileSize(final String name, final long size, SoftwareModule selectedSoftwareModule) {
final String currentBaseSoftwareModuleKey = HawkbitCommonUtil.getFormattedNameVersion(
selectedSoftwareModule.getName(), selectedSoftwareModule.getVersion());
@@ -718,7 +708,8 @@ public class UploadLayout extends VerticalLayout {
}
private void onUploadSuccess(UploadStatusEvent event) {
updateFileSize(event.getUploadStatus().getFileName(), event.getUploadStatus().getContentLength());
updateFileSize(event.getUploadStatus().getFileName(), event.getUploadStatus().getContentLength(), event
.getUploadStatus().getSoftwareModule());
// recorded that we now one more uploaded
increaseNumberOfFilesActuallyUpload();
}
@@ -735,7 +726,6 @@ public class UploadLayout extends VerticalLayout {
duplicateFileNamesList.clear();
}
private boolean isUploadComplete() {
int uploadedCount = artifactUploadState.getNumberOfFilesActuallyUpload().intValue();
int expectedUploadsCount = artifactUploadState.getNumberOfFileUploadsExpected().intValue();
@@ -869,7 +859,6 @@ public class UploadLayout extends VerticalLayout {
uploadStatusButton.setIcon(null);
}
protected void updateUploadCounts() {
updateActionCount();
updateStatusButtonCount();