From 43f71cc976e47127765a0d35e9bcf47961f56a1c Mon Sep 17 00:00:00 2001 From: Jonathan Philip Knoblauch Date: Wed, 3 Aug 2016 17:31:46 +0200 Subject: [PATCH 01/12] Catch RuntimeException and handle with Vaadin error handler Signed-off-by: Jonathan Philip Knoblauch --- .../management/targettable/BulkUploadHandler.java | 15 ++++++++++----- .../targettable/TargetBulkUpdateWindowLayout.java | 9 +++++++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java index ee062493e..0dcaedc99 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.concurrent.Executor; import org.eclipse.hawkbit.repository.DeploymentManagement; @@ -56,6 +57,7 @@ import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Label; import com.vaadin.ui.ProgressBar; import com.vaadin.ui.TextArea; +import com.vaadin.ui.UI; import com.vaadin.ui.Upload; import com.vaadin.ui.Upload.FailedEvent; import com.vaadin.ui.Upload.FailedListener; @@ -99,7 +101,7 @@ public class BulkUploadHandler extends CustomComponent private final transient Executor executor; private transient EventBus.SessionEventBus eventBus; - final TargetBulkUpdateWindowLayout targetBulkUpdateWindowLayout; + TargetBulkUpdateWindowLayout targetBulkUpdateWindowLayout; private transient EntityFactory entityFactory; @@ -139,7 +141,7 @@ public class BulkUploadHandler extends CustomComponent public void buildLayout() { final HorizontalLayout horizontalLayout = new HorizontalLayout(); upload = new Upload(); - upload.setEnabled(false); + upload.setEnabled(true); upload.setButtonCaption("Bulk Upload"); upload.setReceiver(this); upload.setImmediate(true); @@ -178,6 +180,7 @@ public class BulkUploadHandler extends CustomComponent } class UploadAsync implements Runnable { + final SucceededEvent event; /** @@ -193,7 +196,6 @@ public class BulkUploadHandler extends CustomComponent if (tempFile == null) { return; } - try (InputStream tempStream = new FileInputStream(tempFile)) { readFileStream(tempStream); } catch (final FileNotFoundException e) { @@ -201,12 +203,11 @@ public class BulkUploadHandler extends CustomComponent } catch (final IOException e) { LOG.error("Error while opening temorary file ", e); } - } private void readFileStream(final InputStream tempStream) { String line; - try (BufferedReader reader = new BufferedReader( + try (final BufferedReader reader = new BufferedReader( new InputStreamReader(tempStream, Charset.defaultCharset()))) { LOG.info("Bulk file upload started"); long innerCounter = 0; @@ -229,6 +230,10 @@ public class BulkUploadHandler extends CustomComponent managementUIState.getTargetTableFilters().getBulkUpload().getTargetsCreated().clear(); } catch (final IOException e) { LOG.error("Error reading file {}", tempFile.getName(), e); + } catch (final RuntimeException e) { + Optional.ofNullable(UI.getCurrent()).ifPresent( + error -> UI.getCurrent().getErrorHandler().error(new ConnectorErrorEvent(upload, e))); + targetBulkUpdateWindowLayout.closePopupAfterFailureAndRefresh(); } finally { resetCounts(); deleteFile(); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java index e806e4f30..5cd053ee8 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java @@ -239,6 +239,15 @@ public class TargetBulkUpdateWindowLayout extends CustomComponent { eventBus.publish(this, BulkUploadPopupEvent.CLOSED); } + /** + * Close and refresh this component. + */ + public void closePopupAfterFailureAndRefresh() { + closePopup(); + destroy(); + init(); + } + /** * @return */ From 5beb10b8db7f40db20f5761b64f296478fb3ea71 Mon Sep 17 00:00:00 2001 From: Jonathan Philip Knoblauch Date: Wed, 3 Aug 2016 17:51:52 +0200 Subject: [PATCH 02/12] Removed uiNotification Signed-off-by: Jonathan Philip Knoblauch --- .../ui/management/targettable/BulkUploadHandler.java | 9 ++------- .../targettable/TargetBulkUpdateWindowLayout.java | 2 +- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java index 0dcaedc99..fb8a27a7a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java @@ -44,7 +44,6 @@ import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil; import org.eclipse.hawkbit.ui.utils.I18N; import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions; import org.eclipse.hawkbit.ui.utils.SpringContextHelper; -import org.eclipse.hawkbit.ui.utils.UINotification; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.vaadin.spring.events.EventBus; @@ -85,8 +84,6 @@ public class BulkUploadHandler extends CustomComponent private final transient DeploymentManagement deploymentManagement; private final transient DistributionSetManagement distributionSetManagement; - private final UINotification uINotification; - protected File tempFile = null; private Upload upload; @@ -101,7 +98,7 @@ public class BulkUploadHandler extends CustomComponent private final transient Executor executor; private transient EventBus.SessionEventBus eventBus; - TargetBulkUpdateWindowLayout targetBulkUpdateWindowLayout; + private final TargetBulkUpdateWindowLayout targetBulkUpdateWindowLayout; private transient EntityFactory entityFactory; @@ -111,12 +108,11 @@ public class BulkUploadHandler extends CustomComponent * @param targetManagement * @param managementUIState * @param deploymentManagement - * @param uINotification * @param i18n */ public BulkUploadHandler(final TargetBulkUpdateWindowLayout targetBulkUpdateWindowLayout, final TargetManagement targetManagement, final ManagementUIState managementUIState, - final DeploymentManagement deploymentManagement, final UINotification uINotification, final I18N i18n) { + final DeploymentManagement deploymentManagement, final I18N i18n) { this.targetBulkUpdateWindowLayout = targetBulkUpdateWindowLayout; this.comboBox = targetBulkUpdateWindowLayout.getDsNamecomboBox(); this.descTextArea = targetBulkUpdateWindowLayout.getDescTextArea(); @@ -124,7 +120,6 @@ public class BulkUploadHandler extends CustomComponent this.progressBar = targetBulkUpdateWindowLayout.getProgressBar(); this.managementUIState = managementUIState; this.deploymentManagement = deploymentManagement; - this.uINotification = uINotification; this.targetsCountLabel = targetBulkUpdateWindowLayout.getTargetsCountLabel(); this.targetBulkTokenTags = targetBulkUpdateWindowLayout.getTargetBulkTokenTags(); this.i18n = i18n; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java index 5cd053ee8..0dbdb1642 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java @@ -178,7 +178,7 @@ public class TargetBulkUpdateWindowLayout extends CustomComponent { private BulkUploadHandler getBulkUploadHandler() { final BulkUploadHandler bulkUploadHandler = new BulkUploadHandler(this, targetManagement, managementUIState, - deploymentManagement, uINotification, i18n); + deploymentManagement, i18n); bulkUploadHandler.buildLayout(); bulkUploadHandler.addStyleName(SPUIStyleDefinitions.BULK_UPLOAD_BUTTON); return bulkUploadHandler; From cad916c1d746ec58bdc93cecdae0038583ecb01d Mon Sep 17 00:00:00 2001 From: Jonathan Philip Knoblauch Date: Thu, 4 Aug 2016 10:04:08 +0200 Subject: [PATCH 03/12] Refactoring of bulk upload Signed-off-by: Jonathan Philip Knoblauch --- .../ui/management/targettable/BulkUploadHandler.java | 10 +++++----- .../targettable/TargetBulkUpdateWindowLayout.java | 9 --------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java index fb8a27a7a..11bbec918 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java @@ -214,22 +214,22 @@ public class BulkUploadHandler extends CustomComponent * below event. */ eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.BULK_UPLOAD_PROCESS_STARTED)); + while ((line = reader.readLine()) != null) { innerCounter++; readEachLine(line, innerCounter, totalFileSize); } - doAssignments(); - eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.BULK_UPLOAD_COMPLETED)); - // Clearing after assignments are done - managementUIState.getTargetTableFilters().getBulkUpload().getTargetsCreated().clear(); } catch (final IOException e) { LOG.error("Error reading file {}", tempFile.getName(), e); } catch (final RuntimeException e) { Optional.ofNullable(UI.getCurrent()).ifPresent( error -> UI.getCurrent().getErrorHandler().error(new ConnectorErrorEvent(upload, e))); - targetBulkUpdateWindowLayout.closePopupAfterFailureAndRefresh(); } finally { + doAssignments(); + eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.BULK_UPLOAD_COMPLETED)); + // Clearing after assignments are done + managementUIState.getTargetTableFilters().getBulkUpload().getTargetsCreated().clear(); resetCounts(); deleteFile(); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java index 0dbdb1642..f8e273232 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java @@ -239,15 +239,6 @@ public class TargetBulkUpdateWindowLayout extends CustomComponent { eventBus.publish(this, BulkUploadPopupEvent.CLOSED); } - /** - * Close and refresh this component. - */ - public void closePopupAfterFailureAndRefresh() { - closePopup(); - destroy(); - init(); - } - /** * @return */ From 6be3d72a5a85ce625720e3b2b33ad91ac0b9f2bf Mon Sep 17 00:00:00 2001 From: Jonathan Philip Knoblauch Date: Thu, 4 Aug 2016 13:57:06 +0200 Subject: [PATCH 04/12] changed connector for error Signed-off-by: Jonathan Philip Knoblauch --- .../targettable/BulkUploadHandler.java | 24 +++++++++++++------ .../targettable/TargetTableHeader.java | 1 + 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java index 11bbec918..5fcebbead 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java @@ -98,7 +98,9 @@ public class BulkUploadHandler extends CustomComponent private final transient Executor executor; private transient EventBus.SessionEventBus eventBus; - private final TargetBulkUpdateWindowLayout targetBulkUpdateWindowLayout; + final TargetBulkUpdateWindowLayout targetBulkUpdateWindowLayout; + + TargetTableHeader targetTableHeader; private transient EntityFactory entityFactory; @@ -223,9 +225,10 @@ public class BulkUploadHandler extends CustomComponent } catch (final IOException e) { LOG.error("Error reading file {}", tempFile.getName(), e); } catch (final RuntimeException e) { - Optional.ofNullable(UI.getCurrent()).ifPresent( - error -> UI.getCurrent().getErrorHandler().error(new ConnectorErrorEvent(upload, e))); + Optional.ofNullable(UI.getCurrent()).ifPresent(error -> UI.getCurrent().getErrorHandler() + .error(new ConnectorErrorEvent(targetTableHeader, e))); } finally { + updateBulkUpload(); doAssignments(); eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.BULK_UPLOAD_COMPLETED)); // Clearing after assignments are done @@ -283,13 +286,16 @@ public class BulkUploadHandler extends CustomComponent if (Math.abs(next - 0.1) < 0.00001 || current - next >= 0 || next - current >= 0.05 || Math.abs(next - 1) < 0.00001) { managementUIState.getTargetTableFilters().getBulkUpload().setProgressBarCurrentValue(next); - managementUIState.getTargetTableFilters().getBulkUpload() - .setSucessfulUploadCount(successfullTargetCount); - managementUIState.getTargetTableFilters().getBulkUpload().setFailedUploadCount(failedTargetCount); - eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.BULK_TARGET_CREATED)); + updateBulkUpload(); } } + private void updateBulkUpload() { + managementUIState.getTargetTableFilters().getBulkUpload().setSucessfulUploadCount(successfullTargetCount); + managementUIState.getTargetTableFilters().getBulkUpload().setFailedUploadCount(failedTargetCount); + eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.BULK_TARGET_CREATED)); + } + private void doAssignments() { final StringBuilder errorMessage = new StringBuilder(); String dsAssignmentFailedMsg = null; @@ -457,4 +463,8 @@ public class BulkUploadHandler extends CustomComponent eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.BULK_TARGET_UPLOAD_STARTED)); } } + + public void setTargetBulkUpdateWindowLayout(final TargetTableHeader targetTableHeader) { + this.targetTableHeader = targetTableHeader; + } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java index 16dc584ed..760332e09 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java @@ -82,6 +82,7 @@ public class TargetTableHeader extends AbstractTableHeader { // creating add window for adding new target targetAddUpdateWindow.init(); targetBulkUpdateWindow.init(); + targetBulkUpdateWindow.getBulkUploader().setTargetBulkUpdateWindowLayout(this); onLoadRestoreState(); } From 11bb28269958d1217e144c89dcbeebbe694ad43a Mon Sep 17 00:00:00 2001 From: Jonathan Philip Knoblauch Date: Thu, 4 Aug 2016 15:57:20 +0200 Subject: [PATCH 05/12] Refactoring for button enable Signed-off-by: Jonathan Philip Knoblauch --- .../hawkbit/ui/management/targettable/BulkUploadHandler.java | 3 ++- .../management/targettable/TargetBulkUpdateWindowLayout.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java index 5fcebbead..fd7f5fa3d 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java @@ -138,7 +138,7 @@ public class BulkUploadHandler extends CustomComponent public void buildLayout() { final HorizontalLayout horizontalLayout = new HorizontalLayout(); upload = new Upload(); - upload.setEnabled(true); + upload.setEnabled(false); upload.setButtonCaption("Bulk Upload"); upload.setReceiver(this); upload.setImmediate(true); @@ -227,6 +227,7 @@ public class BulkUploadHandler extends CustomComponent } catch (final RuntimeException e) { Optional.ofNullable(UI.getCurrent()).ifPresent(error -> UI.getCurrent().getErrorHandler() .error(new ConnectorErrorEvent(targetTableHeader, e))); + } finally { updateBulkUpload(); doAssignments(); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java index f8e273232..77eaaddea 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java @@ -296,8 +296,9 @@ public class TargetBulkUpdateWindowLayout extends CustomComponent { descTextArea.clear(); targetBulkTokenTags.getTokenField().clear(); targetBulkTokenTags.populateContainer(); - progressBar.setValue(0f); + progressBar.setValue(0F); progressBar.setVisible(false); + managementUIState.getTargetTableFilters().getBulkUpload().setProgressBarCurrentValue(0F); targetsCountLabel.setVisible(false); } From 709ea990dff1544f7beab941e069aab7101e2e1b Mon Sep 17 00:00:00 2001 From: Jonathan Philip Knoblauch Date: Thu, 4 Aug 2016 16:19:35 +0200 Subject: [PATCH 06/12] Removed component that was not needed Signed-off-by: Jonathan Philip Knoblauch --- .../hawkbit/ui/management/targettable/BulkUploadHandler.java | 2 +- .../management/targettable/TargetBulkUpdateWindowLayout.java | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java index fd7f5fa3d..44b3d2e50 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java @@ -100,7 +100,7 @@ public class BulkUploadHandler extends CustomComponent final TargetBulkUpdateWindowLayout targetBulkUpdateWindowLayout; - TargetTableHeader targetTableHeader; + private TargetTableHeader targetTableHeader; private transient EntityFactory entityFactory; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java index 77eaaddea..b77576411 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java @@ -31,7 +31,6 @@ import org.eclipse.hawkbit.ui.utils.SPUIComponentIdProvider; import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions; import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions; -import org.eclipse.hawkbit.ui.utils.UINotification; import org.springframework.beans.factory.annotation.Autowired; import org.vaadin.addons.lazyquerycontainer.BeanQueryFactory; import org.vaadin.addons.lazyquerycontainer.LazyQueryContainer; @@ -73,9 +72,6 @@ public class TargetBulkUpdateWindowLayout extends CustomComponent { @Autowired private transient TargetManagement targetManagement; - @Autowired - private transient UINotification uINotification; - @Autowired private transient EventBus.SessionEventBus eventBus; From 89605b0984beb72525476fa7eb88ddbff4ab0959 Mon Sep 17 00:00:00 2001 From: Jonathan Philip Knoblauch Date: Fri, 5 Aug 2016 12:42:03 +0200 Subject: [PATCH 07/12] Changed error and how it is connected to current page Signed-off-by: Jonathan Philip Knoblauch --- .../hawkbit/ui/components/HawkbitUIErrorHandler.java | 2 +- .../ui/management/targettable/BulkUploadHandler.java | 12 +++--------- .../ui/management/targettable/TargetTableHeader.java | 1 - 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/HawkbitUIErrorHandler.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/HawkbitUIErrorHandler.java index 56bcba421..a860b7ff4 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/HawkbitUIErrorHandler.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/HawkbitUIErrorHandler.java @@ -68,7 +68,7 @@ public class HawkbitUIErrorHandler extends DefaultErrorHandler { return Optional.fromNullable(errorOrigin.getUI().getPage()); } - return Optional.absent(); + return Optional.of(Page.getCurrent()); } protected HawkbitErrorNotificationMessage buildNotification(final Throwable exception) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java index 44b3d2e50..0fe512334 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java @@ -22,7 +22,6 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.Executor; import org.eclipse.hawkbit.repository.DeploymentManagement; @@ -100,8 +99,6 @@ public class BulkUploadHandler extends CustomComponent final TargetBulkUpdateWindowLayout targetBulkUpdateWindowLayout; - private TargetTableHeader targetTableHeader; - private transient EntityFactory entityFactory; /** @@ -225,9 +222,9 @@ public class BulkUploadHandler extends CustomComponent } catch (final IOException e) { LOG.error("Error reading file {}", tempFile.getName(), e); } catch (final RuntimeException e) { - Optional.ofNullable(UI.getCurrent()).ifPresent(error -> UI.getCurrent().getErrorHandler() - .error(new ConnectorErrorEvent(targetTableHeader, e))); - + if (UI.getCurrent() != null) { + UI.getCurrent().getErrorHandler().error(new com.vaadin.server.ErrorEvent(e)); + } } finally { updateBulkUpload(); doAssignments(); @@ -465,7 +462,4 @@ public class BulkUploadHandler extends CustomComponent } } - public void setTargetBulkUpdateWindowLayout(final TargetTableHeader targetTableHeader) { - this.targetTableHeader = targetTableHeader; - } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java index 760332e09..16dc584ed 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java @@ -82,7 +82,6 @@ public class TargetTableHeader extends AbstractTableHeader { // creating add window for adding new target targetAddUpdateWindow.init(); targetBulkUpdateWindow.init(); - targetBulkUpdateWindow.getBulkUploader().setTargetBulkUpdateWindowLayout(this); onLoadRestoreState(); } From f3f9dbc665a19b0a23c81eed329c709984eb0362 Mon Sep 17 00:00:00 2001 From: Jonathan Philip Knoblauch Date: Fri, 5 Aug 2016 13:50:46 +0200 Subject: [PATCH 08/12] Added method to sync after upload Signed-off-by: Jonathan Philip Knoblauch --- .../targettable/BulkUploadHandler.java | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java index 0fe512334..6ecaca255 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/BulkUploadHandler.java @@ -226,14 +226,26 @@ public class BulkUploadHandler extends CustomComponent UI.getCurrent().getErrorHandler().error(new com.vaadin.server.ErrorEvent(e)); } } finally { - updateBulkUpload(); - doAssignments(); - eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.BULK_UPLOAD_COMPLETED)); - // Clearing after assignments are done - managementUIState.getTargetTableFilters().getBulkUpload().getTargetsCreated().clear(); - resetCounts(); deleteFile(); } + syncCountAfterUpload(); + doAssignments(); + eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.BULK_UPLOAD_COMPLETED)); + // Clearing after assignments are done + managementUIState.getTargetTableFilters().getBulkUpload().getTargetsCreated().clear(); + resetCounts(); + } + + private void syncCountAfterUpload() { + if (managementUIState.getTargetTableFilters().getBulkUpload() + .getSucessfulUploadCount() != successfullTargetCount) { + managementUIState.getTargetTableFilters().getBulkUpload() + .setSucessfulUploadCount(successfullTargetCount); + eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.BULK_TARGET_CREATED)); + } + if (managementUIState.getTargetTableFilters().getBulkUpload().getFailedUploadCount() != failedTargetCount) { + managementUIState.getTargetTableFilters().getBulkUpload().setSucessfulUploadCount(failedTargetCount); + } } private double getTotalNumberOfLines() { @@ -284,16 +296,13 @@ public class BulkUploadHandler extends CustomComponent if (Math.abs(next - 0.1) < 0.00001 || current - next >= 0 || next - current >= 0.05 || Math.abs(next - 1) < 0.00001) { managementUIState.getTargetTableFilters().getBulkUpload().setProgressBarCurrentValue(next); - updateBulkUpload(); + managementUIState.getTargetTableFilters().getBulkUpload() + .setSucessfulUploadCount(successfullTargetCount); + managementUIState.getTargetTableFilters().getBulkUpload().setFailedUploadCount(failedTargetCount); + eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.BULK_TARGET_CREATED)); } } - private void updateBulkUpload() { - managementUIState.getTargetTableFilters().getBulkUpload().setSucessfulUploadCount(successfullTargetCount); - managementUIState.getTargetTableFilters().getBulkUpload().setFailedUploadCount(failedTargetCount); - eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.BULK_TARGET_CREATED)); - } - private void doAssignments() { final StringBuilder errorMessage = new StringBuilder(); String dsAssignmentFailedMsg = null; From adafaa9489aaff7ff76b8909dbe2e9de57e5e368 Mon Sep 17 00:00:00 2001 From: Michael Hirsch Date: Mon, 8 Aug 2016 16:15:15 +0200 Subject: [PATCH 09/12] clear the tagDetails map as well Signed-off-by: Michael Hirsch --- .../eclipse/hawkbit/ui/common/tagdetails/AbstractTagToken.java | 2 +- .../hawkbit/ui/common/tagdetails/DistributionTagToken.java | 1 + .../eclipse/hawkbit/ui/common/tagdetails/TargetTagToken.java | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTagToken.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTagToken.java index 5894e986c..2df040c65 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTagToken.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTagToken.java @@ -142,7 +142,7 @@ public abstract class AbstractTagToken implements Serializ protected void setContainerPropertValues(final Long tagId, final String tagName, final String tagColor) { final TagData tagData = tagDetails.putIfAbsent(tagId, new TagData(tagId, tagName, tagColor)); - if(tagData == null){ + if (tagData == null) { final Item item = container.addItem(tagId); item.getItemProperty("id").setValue(tagId); updateItem(tagName, tagColor, item); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/DistributionTagToken.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/DistributionTagToken.java index 88467d838..273dd3bf3 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/DistributionTagToken.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/DistributionTagToken.java @@ -121,6 +121,7 @@ public class DistributionTagToken extends AbstractTagToken { @Override protected void populateContainer() { container.removeAllItems(); + tagDetails.clear(); for (final DistributionSetTag tag : tagManagement.findAllDistributionSetTags()) { setContainerPropertValues(tag.getId(), tag.getName(), tag.getColour()); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/TargetTagToken.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/TargetTagToken.java index 2cd4ec978..bd91302cf 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/TargetTagToken.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/TargetTagToken.java @@ -120,6 +120,7 @@ public class TargetTagToken extends AbstractTargetTagToken { @Override protected void populateContainer() { container.removeAllItems(); + tagDetails.clear(); for (final TargetTag tag : tagManagement.findAllTargetTags()) { setContainerPropertValues(tag.getId(), tag.getName(), tag.getColour()); } From 8a1207337b6ce764cc1a4068702efa4ed9cfe299 Mon Sep 17 00:00:00 2001 From: Jonathan Philip Knoblauch Date: Mon, 8 Aug 2016 16:15:55 +0200 Subject: [PATCH 10/12] Changed buildNotification method that error log dosn't have to be displayed in all cases Signed-off-by: Jonathan Philip Knoblauch --- .../hawkbit/ui/components/HawkbitUIErrorHandler.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/HawkbitUIErrorHandler.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/HawkbitUIErrorHandler.java index a860b7ff4..7729b72a4 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/HawkbitUIErrorHandler.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/HawkbitUIErrorHandler.java @@ -36,8 +36,6 @@ public class HawkbitUIErrorHandler extends DefaultErrorHandler { @Override public void error(final ErrorEvent event) { - LOG.error("Error in UI: ", event.getThrowable()); - final Optional originError = getPageOriginError(event); if (originError.isPresent()) { @@ -72,7 +70,11 @@ public class HawkbitUIErrorHandler extends DefaultErrorHandler { } protected HawkbitErrorNotificationMessage buildNotification(final Throwable exception) { + LOG.error("Error in UI: ", exception); + return createHawkbitErrorNotificationMessage(exception); + } + protected HawkbitErrorNotificationMessage createHawkbitErrorNotificationMessage(final Throwable exception) { final I18N i18n = SpringContextHelper.getBean(I18N.class); return new HawkbitErrorNotificationMessage(STYLE, i18n.get("caption.error"), i18n.get("message.error.temp", exception.getClass().getSimpleName()), false); From 9cb1fe170b5caf20326cd701e1ef30533b1933c5 Mon Sep 17 00:00:00 2001 From: Michael Hirsch Date: Tue, 9 Aug 2016 11:50:18 +0200 Subject: [PATCH 11/12] clear tagDetails in BulkUpload Signed-off-by: Michael Hirsch --- .../hawkbit/ui/management/targettable/TargetBulkTokenTags.java | 1 + 1 file changed, 1 insertion(+) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkTokenTags.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkTokenTags.java index 1587951dd..bbcba62ff 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkTokenTags.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkTokenTags.java @@ -96,6 +96,7 @@ public class TargetBulkTokenTags extends AbstractTargetTagToken { @Override protected void populateContainer() { container.removeAllItems(); + tagDetails.clear(); for (final TargetTag tag : tagManagement.findAllTargetTags()) { setContainerPropertValues(tag.getId(), tag.getName(), tag.getColour()); } From df315bb42cfc73c42c66e62e4297cdc5cf7e80f7 Mon Sep 17 00:00:00 2001 From: Michael Hirsch Date: Tue, 9 Aug 2016 11:50:59 +0200 Subject: [PATCH 12/12] remove tagToken from map Signed-off-by: Michael Hirsch --- .../eclipse/hawkbit/ui/common/tagdetails/AbstractTagToken.java | 1 + 1 file changed, 1 insertion(+) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTagToken.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTagToken.java index 2df040c65..6d52b78d8 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTagToken.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTagToken.java @@ -250,6 +250,7 @@ public abstract class AbstractTagToken implements Serializ protected void removeTokenItem(final Long tokenId, final String name) { tokenField.removeToken(tokenId); + tagDetails.remove(tokenId); setContainerPropertValues(tokenId, name, tokensAdded.get(tokenId).getColor()); }