From 7fe23aa8a002603712b388adb71fa615937c3f3a Mon Sep 17 00:00:00 2001 From: venu1278 Date: Fri, 12 Feb 2016 14:34:17 +0530 Subject: [PATCH 01/20] clearing the search field should keep the focus. Signed-off-by: venu1278 --- .../smtable/SoftwareModuleTable.java | 36 ++++++++++--- .../dstable/DistributionSetTable.java | 41 +++++++++++---- .../distributions/smtable/SwModuleTable.java | 46 ++++++++++++----- .../management/dstable/DistributionTable.java | 51 ++++++++++++++----- .../management/targettable/TargetTable.java | 19 ++++++- 5 files changed, 150 insertions(+), 43 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java index a4f8a8f70..bd9291473 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java @@ -78,6 +78,8 @@ public class SoftwareModuleTable extends AbstractTable { @Autowired private UploadViewAcceptCriteria uploadViewAcceptCriteria; + + private Boolean isFilterEvent = false; /** * Initialize the filter layout. @@ -105,7 +107,19 @@ public class SoftwareModuleTable extends AbstractTable { if (filterEvent == SMFilterEvent.FILTER_BY_TYPE || filterEvent == SMFilterEvent.FILTER_BY_TEXT || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TYPE || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TEXT) { - refreshFilter(); + + if(prepareQueryConfigFilters().size()<1 && isFilterEvent==false){ + UI.getCurrent().access(() -> ((LazyQueryContainer) getContainerDataSource()).refresh()); + + }else { + refreshFilter(); + if(prepareQueryConfigFilters().size()<1){ + isFilterEvent = false; + }else{ + isFilterEvent = true; + } + } + //refreshFilter(); } }); } @@ -127,12 +141,7 @@ public class SoftwareModuleTable extends AbstractTable { */ @Override protected Container createContainer() { - final Map queryConfiguration = new HashMap(); - artifactUploadState.getSoftwareModuleFilters().getSearchText() - .ifPresent(value -> queryConfiguration.put(SPUIDefinitions.FILTER_BY_TEXT, value)); - - artifactUploadState.getSoftwareModuleFilters().getSoftwareModuleType() - .ifPresent(type -> queryConfiguration.put(SPUIDefinitions.BY_SOFTWARE_MODULE_TYPE, type)); + final Map queryConfiguration = prepareQueryConfigFilters(); final BeanQueryFactory swQF = new BeanQueryFactory( BaseSwModuleBeanQuery.class); @@ -142,6 +151,19 @@ public class SoftwareModuleTable extends AbstractTable { new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, "swId"), swQF); return container; } + + private Map prepareQueryConfigFilters() { + final Map queryConfig = new HashMap(); + artifactUploadState.getSoftwareModuleFilters().getSearchText() + .ifPresent(value -> queryConfig.put(SPUIDefinitions.FILTER_BY_TEXT, value)); + + artifactUploadState.getSoftwareModuleFilters().getSoftwareModuleType() + .ifPresent(type -> queryConfig.put(SPUIDefinitions.BY_SOFTWARE_MODULE_TYPE, type)); + + return queryConfig; + } + + @Override protected void addContainerProperties(final Container container) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java index 107ed0299..a6f55cbc2 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java @@ -114,6 +114,8 @@ public class DistributionSetTable extends AbstractTable { @Autowired private transient TargetManagement targetManagement; + + private Boolean isFilterEvent = false; /** * Initialize the component. @@ -157,15 +159,8 @@ public class DistributionSetTable extends AbstractTable { @Override protected Container createContainer() { - final Map queryConfiguration = new HashMap(); - manageDistUIState.getManageDistFilters().getSearchText() - .ifPresent(value -> queryConfiguration.put(SPUIDefinitions.FILTER_BY_TEXT, value)); - - if (null != manageDistUIState.getManageDistFilters().getClickedDistSetType()) { - queryConfiguration.put(SPUIDefinitions.FILTER_BY_DISTRIBUTION_SET_TYPE, - manageDistUIState.getManageDistFilters().getClickedDistSetType()); - } - + final Map queryConfiguration = prepareQueryConfigFilters(); + final BeanQueryFactory distributionQF = new BeanQueryFactory( ManageDistBeanQuery.class); distributionQF.setQueryConfiguration(queryConfiguration); @@ -175,6 +170,20 @@ public class DistributionSetTable extends AbstractTable { return distContainer; } + + private Map prepareQueryConfigFilters() { + final Map queryConfig = new HashMap(); + manageDistUIState.getManageDistFilters().getSearchText() + .ifPresent(value -> queryConfig.put(SPUIDefinitions.FILTER_BY_TEXT, value)); + + if (null != manageDistUIState.getManageDistFilters().getClickedDistSetType()) { + queryConfig.put(SPUIDefinitions.FILTER_BY_DISTRIBUTION_SET_TYPE, + manageDistUIState.getManageDistFilters().getClickedDistSetType()); + } + + return queryConfig; + } + /* * (non-Javadoc) @@ -612,7 +621,19 @@ public class DistributionSetTable extends AbstractTable { if (event == DistributionTableFilterEvent.FILTER_BY_TEXT || event == DistributionTableFilterEvent.REMOVE_FILTER_BY_TEXT || event == DistributionTableFilterEvent.FILTER_BY_TAG) { - UI.getCurrent().access(() -> refreshFilter()); + if(prepareQueryConfigFilters().size()<1 && isFilterEvent==false){ + UI.getCurrent().access(() -> ((LazyQueryContainer) getContainerDataSource()).refresh()); + + }else { + UI.getCurrent().access(() -> refreshFilter()); + if(prepareQueryConfigFilters().size()<1){ + isFilterEvent = false; + }else{ + isFilterEvent = true; + } + } + + // UI.getCurrent().access(() -> refreshFilter()); } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java index 17ee9b8af..6d5b7dcd5 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java @@ -94,6 +94,8 @@ public class SwModuleTable extends AbstractTable { @Autowired private ArtifactDetailsLayout artifactDetailsLayout; + + private Boolean isFilterEvent = false; /** * Initialize the filter layout. @@ -124,9 +126,23 @@ public class SwModuleTable extends AbstractTable { if (filterEvent == SMFilterEvent.FILTER_BY_TYPE || filterEvent == SMFilterEvent.FILTER_BY_TEXT || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TYPE || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TEXT) { - refreshFilter(); - styleTableOnDistSelection(); - } + if(prepareQueryConfigFilters().size()<2 && isFilterEvent==false){ + UI.getCurrent().access(() -> ((LazyQueryContainer) getContainerDataSource()).refresh()); + + }else { + UI.getCurrent().access(() ->{ refreshFilter(); + styleTableOnDistSelection(); + }); + if(prepareQueryConfigFilters().size()<2){ + isFilterEvent = false; + }else{ + isFilterEvent = true; + } + } + + /* refreshFilter(); + styleTableOnDistSelection();*/ + } }); } @@ -177,15 +193,7 @@ public class SwModuleTable extends AbstractTable { */ @Override protected Container createContainer() { - final Map queryConfiguration = new HashMap(); - manageDistUIState.getSoftwareModuleFilters().getSearchText() - .ifPresent(value -> queryConfiguration.put(SPUIDefinitions.FILTER_BY_TEXT, value)); - - manageDistUIState.getSoftwareModuleFilters().getSoftwareModuleType() - .ifPresent(type -> queryConfiguration.put(SPUIDefinitions.BY_SOFTWARE_MODULE_TYPE, type)); - - manageDistUIState.getLastSelectedDistribution().ifPresent( - distIdName -> queryConfiguration.put(SPUIDefinitions.ORDER_BY_DISTRIBUTION, distIdName.getId())); + final Map queryConfiguration = prepareQueryConfigFilters(); final BeanQueryFactory swQF = new BeanQueryFactory( SwModuleBeanQuery.class); @@ -195,6 +203,20 @@ public class SwModuleTable extends AbstractTable { new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, "swId"), swQF); return container; } + + private Map prepareQueryConfigFilters() { + final Map queryConfig = new HashMap(); + manageDistUIState.getSoftwareModuleFilters().getSearchText() + .ifPresent(value -> queryConfig.put(SPUIDefinitions.FILTER_BY_TEXT, value)); + + manageDistUIState.getSoftwareModuleFilters().getSoftwareModuleType() + .ifPresent(type -> queryConfig.put(SPUIDefinitions.BY_SOFTWARE_MODULE_TYPE, type)); + + manageDistUIState.getLastSelectedDistribution().ifPresent( + distIdName -> queryConfig.put(SPUIDefinitions.ORDER_BY_DISTRIBUTION, distIdName.getId())); + + return queryConfig; + } /* * (non-Javadoc) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java index 225407b84..e8f9e57ac 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java @@ -112,6 +112,8 @@ public class DistributionTable extends AbstractTable { private Boolean isDistPinned = false; private Button distributinPinnedBtn; + + private Boolean isFilterEvent = false; /** * Initialize the distribution table. @@ -140,7 +142,24 @@ public class DistributionTable extends AbstractTable { if (event == DistributionTableFilterEvent.FILTER_BY_TEXT || event == DistributionTableFilterEvent.REMOVE_FILTER_BY_TEXT || event == DistributionTableFilterEvent.FILTER_BY_TAG) { - UI.getCurrent().access(() -> refreshFilter()); + if(((boolean)prepareQueryConfigFilters().get(SPUIDefinitions.FILTER_BY_NO_TAG)==false) + && ((List)prepareQueryConfigFilters().get(SPUIDefinitions.FILTER_BY_TAG)).isEmpty() + && prepareQueryConfigFilters().size()<3 + && isFilterEvent==false){ + UI.getCurrent().access(() -> ((LazyQueryContainer) getContainerDataSource()).refresh()); + + }else { + UI.getCurrent().access(() -> refreshFilter()); + if(((boolean)prepareQueryConfigFilters().get(SPUIDefinitions.FILTER_BY_NO_TAG)==false) + && ((List)prepareQueryConfigFilters().get(SPUIDefinitions.FILTER_BY_TAG)).isEmpty() + && prepareQueryConfigFilters().size()<3){ + isFilterEvent = false; + }else{ + isFilterEvent = true; + } + } + + // UI.getCurrent().access(() -> refreshFilter()); } } @@ -219,18 +238,8 @@ public class DistributionTable extends AbstractTable { */ @Override protected Container createContainer() { - final Map queryConfiguration = new HashMap(); - managementUIState.getDistributionTableFilters().getSearchText() - .ifPresent(value -> queryConfiguration.put(SPUIDefinitions.FILTER_BY_TEXT, value)); - managementUIState.getDistributionTableFilters().getPinnedTargetId() - .ifPresent(value -> queryConfiguration.put(SPUIDefinitions.ORDER_BY_PINNED_TARGET, value)); - final List list = new ArrayList(); - queryConfiguration.put(SPUIDefinitions.FILTER_BY_NO_TAG, - managementUIState.getDistributionTableFilters().isNoTagSelected()); - if (!managementUIState.getDistributionTableFilters().getDistSetTags().isEmpty()) { - list.addAll(managementUIState.getDistributionTableFilters().getDistSetTags()); - } - queryConfiguration.put(SPUIDefinitions.FILTER_BY_TAG, list); + final Map queryConfiguration = prepareQueryConfigFilters(); + final BeanQueryFactory distributionQF = new BeanQueryFactory( DistributionBeanQuery.class); distributionQF.setQueryConfiguration(queryConfiguration); @@ -239,6 +248,22 @@ public class DistributionTable extends AbstractTable { distributionQF); return distributionContainer; } + + private Map prepareQueryConfigFilters() { + final Map queryConfig = new HashMap(); + managementUIState.getDistributionTableFilters().getSearchText() + .ifPresent(value -> queryConfig.put(SPUIDefinitions.FILTER_BY_TEXT, value)); + managementUIState.getDistributionTableFilters().getPinnedTargetId() + .ifPresent(value -> queryConfig.put(SPUIDefinitions.ORDER_BY_PINNED_TARGET, value)); + final List list = new ArrayList(); + queryConfig.put(SPUIDefinitions.FILTER_BY_NO_TAG, + managementUIState.getDistributionTableFilters().isNoTagSelected()); + if (!managementUIState.getDistributionTableFilters().getDistSetTags().isEmpty()) { + list.addAll(managementUIState.getDistributionTableFilters().getDistSetTags()); + } + queryConfig.put(SPUIDefinitions.FILTER_BY_TAG, list); + return queryConfig; + } /* * (non-Javadoc) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java index 62276346e..186207c50 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java @@ -15,6 +15,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -138,6 +139,9 @@ public class TargetTable extends AbstractTable implements Handler { private Boolean isTargetPinned = Boolean.FALSE; private ShortcutAction actionSelectAll; private ShortcutAction actionUnSelectAll; + + private Boolean isFilterEvent = Boolean.FALSE;; + @Override @PostConstruct @@ -207,7 +211,20 @@ public class TargetTable extends AbstractTable implements Handler { void onEvent(final TargetFilterEvent filterEvent) { UI.getCurrent().access(() -> { if (checkFilterEvent(filterEvent)) { - refreshFilter(); + if(((boolean)prepareQueryConfigFilters().get(SPUIDefinitions.FILTER_BY_NO_TAG)==false) + && prepareQueryConfigFilters().size()<2 + && isFilterEvent==Boolean.FALSE){ + ((LazyQueryContainer) getContainerDataSource()).refresh(); + + }else { + refreshFilter(); + if(prepareQueryConfigFilters().size()<2){ + isFilterEvent = Boolean.FALSE; + }else{ + isFilterEvent = Boolean.TRUE; + } + } + eventBus.publish(this, ManagementUIEvent.TARGET_TABLE_FILTER); } }); From 600a16def8d1dde564a40c8da81c4691a4ffd742 Mon Sep 17 00:00:00 2001 From: venu1278 Date: Tue, 16 Feb 2016 15:52:04 +0530 Subject: [PATCH 02/20] Clearing the search field should keep the focus Signed-off-by: venu1278 --- .../smtable/SoftwareModuleTable.java | 13 +++++------ .../dstable/DistributionSetTable.java | 13 +++++------ .../distributions/smtable/SwModuleTable.java | 18 +++++++-------- .../management/dstable/DistributionTable.java | 23 +++++++++---------- .../management/targettable/TargetTable.java | 17 +++++++------- 5 files changed, 40 insertions(+), 44 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java index bd9291473..940e3b27a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java @@ -79,7 +79,7 @@ public class SoftwareModuleTable extends AbstractTable { @Autowired private UploadViewAcceptCriteria uploadViewAcceptCriteria; - private Boolean isFilterEvent = false; + private Boolean isFilterApplied = false; /** * Initialize the filter layout. @@ -107,19 +107,18 @@ public class SoftwareModuleTable extends AbstractTable { if (filterEvent == SMFilterEvent.FILTER_BY_TYPE || filterEvent == SMFilterEvent.FILTER_BY_TEXT || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TYPE || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TEXT) { - - if(prepareQueryConfigFilters().size()<1 && isFilterEvent==false){ + final Map queryConfig = prepareQueryConfigFilters(); + if(queryConfig.size()<1 && isFilterApplied==false){ UI.getCurrent().access(() -> ((LazyQueryContainer) getContainerDataSource()).refresh()); }else { refreshFilter(); - if(prepareQueryConfigFilters().size()<1){ - isFilterEvent = false; + if(queryConfig.size()<1){ + isFilterApplied = false; }else{ - isFilterEvent = true; + isFilterApplied = true; } } - //refreshFilter(); } }); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java index 575f0a367..f62504911 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java @@ -115,7 +115,7 @@ public class DistributionSetTable extends AbstractTable { @Autowired private transient TargetManagement targetManagement; - private Boolean isFilterEvent = false; + private Boolean isFilterApplied = false; /** * Initialize the component. @@ -616,19 +616,18 @@ public class DistributionSetTable extends AbstractTable { if (event == DistributionTableFilterEvent.FILTER_BY_TEXT || event == DistributionTableFilterEvent.REMOVE_FILTER_BY_TEXT || event == DistributionTableFilterEvent.FILTER_BY_TAG) { - if(prepareQueryConfigFilters().size()<1 && isFilterEvent==false){ + final Map queryConfig = prepareQueryConfigFilters(); + if(queryConfig.size()<1 && isFilterApplied==false){ UI.getCurrent().access(() -> ((LazyQueryContainer) getContainerDataSource()).refresh()); }else { UI.getCurrent().access(() -> refreshFilter()); - if(prepareQueryConfigFilters().size()<1){ - isFilterEvent = false; + if(queryConfig.size()<1){ + isFilterApplied = false; }else{ - isFilterEvent = true; + isFilterApplied = true; } } - - // UI.getCurrent().access(() -> refreshFilter()); } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java index 6d5b7dcd5..dd8216dfd 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java @@ -95,7 +95,7 @@ public class SwModuleTable extends AbstractTable { @Autowired private ArtifactDetailsLayout artifactDetailsLayout; - private Boolean isFilterEvent = false; + private Boolean isFilterApplied = false; /** * Initialize the filter layout. @@ -126,23 +126,21 @@ public class SwModuleTable extends AbstractTable { if (filterEvent == SMFilterEvent.FILTER_BY_TYPE || filterEvent == SMFilterEvent.FILTER_BY_TEXT || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TYPE || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TEXT) { - if(prepareQueryConfigFilters().size()<2 && isFilterEvent==false){ + final Map queryConfig = prepareQueryConfigFilters(); + if(queryConfig.size()<2 && isFilterApplied==false){ UI.getCurrent().access(() -> ((LazyQueryContainer) getContainerDataSource()).refresh()); }else { UI.getCurrent().access(() ->{ refreshFilter(); - styleTableOnDistSelection(); + styleTableOnDistSelection(); }); - if(prepareQueryConfigFilters().size()<2){ - isFilterEvent = false; + if(queryConfig.size()<2){ + isFilterApplied = false; }else{ - isFilterEvent = true; + isFilterApplied = true; } } - - /* refreshFilter(); - styleTableOnDistSelection();*/ - } + } }); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java index e8f9e57ac..ab1ccdeac 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java @@ -113,7 +113,7 @@ public class DistributionTable extends AbstractTable { private Button distributinPinnedBtn; - private Boolean isFilterEvent = false; + private Boolean isFilterApplied = false; /** * Initialize the distribution table. @@ -142,24 +142,23 @@ public class DistributionTable extends AbstractTable { if (event == DistributionTableFilterEvent.FILTER_BY_TEXT || event == DistributionTableFilterEvent.REMOVE_FILTER_BY_TEXT || event == DistributionTableFilterEvent.FILTER_BY_TAG) { - if(((boolean)prepareQueryConfigFilters().get(SPUIDefinitions.FILTER_BY_NO_TAG)==false) - && ((List)prepareQueryConfigFilters().get(SPUIDefinitions.FILTER_BY_TAG)).isEmpty() - && prepareQueryConfigFilters().size()<3 - && isFilterEvent==false){ + final Map queryConfig = prepareQueryConfigFilters(); + if(((boolean)queryConfig.get(SPUIDefinitions.FILTER_BY_NO_TAG)==false) + && ((List)queryConfig.get(SPUIDefinitions.FILTER_BY_TAG)).isEmpty() + && queryConfig.size()<3 + && isFilterApplied==false){ UI.getCurrent().access(() -> ((LazyQueryContainer) getContainerDataSource()).refresh()); }else { UI.getCurrent().access(() -> refreshFilter()); - if(((boolean)prepareQueryConfigFilters().get(SPUIDefinitions.FILTER_BY_NO_TAG)==false) - && ((List)prepareQueryConfigFilters().get(SPUIDefinitions.FILTER_BY_TAG)).isEmpty() - && prepareQueryConfigFilters().size()<3){ - isFilterEvent = false; + if(((boolean)queryConfig.get(SPUIDefinitions.FILTER_BY_NO_TAG)==false) + && ((List)queryConfig.get(SPUIDefinitions.FILTER_BY_TAG)).isEmpty() + && queryConfig.size()<3){ + isFilterApplied = false; }else{ - isFilterEvent = true; + isFilterApplied = true; } } - - // UI.getCurrent().access(() -> refreshFilter()); } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java index 186207c50..17256cca8 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java @@ -140,7 +140,7 @@ public class TargetTable extends AbstractTable implements Handler { private ShortcutAction actionSelectAll; private ShortcutAction actionUnSelectAll; - private Boolean isFilterEvent = Boolean.FALSE;; + private Boolean isFilterApplied = Boolean.FALSE;; @Override @@ -211,17 +211,18 @@ public class TargetTable extends AbstractTable implements Handler { void onEvent(final TargetFilterEvent filterEvent) { UI.getCurrent().access(() -> { if (checkFilterEvent(filterEvent)) { - if(((boolean)prepareQueryConfigFilters().get(SPUIDefinitions.FILTER_BY_NO_TAG)==false) - && prepareQueryConfigFilters().size()<2 - && isFilterEvent==Boolean.FALSE){ + final Map queryConfiguration = prepareQueryConfigFilters(); + if(((boolean)queryConfiguration.get(SPUIDefinitions.FILTER_BY_NO_TAG)==false) + && queryConfiguration.size()<2 + && isFilterApplied==Boolean.FALSE){ ((LazyQueryContainer) getContainerDataSource()).refresh(); - + }else { refreshFilter(); - if(prepareQueryConfigFilters().size()<2){ - isFilterEvent = Boolean.FALSE; + if(queryConfiguration.size()<2){ + isFilterApplied = Boolean.FALSE; }else{ - isFilterEvent = Boolean.TRUE; + isFilterApplied = Boolean.TRUE; } } From e3801e9e56a1e322d0edd615c9d6cd502db5d1df Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Tue, 16 Feb 2016 13:48:52 +0100 Subject: [PATCH 03/20] DistributionSetAssignmentResult contains actions that do not reflect the status on the DB. Needs to be avoided by returning actions IDs only and force the user to query an updated action entity. Signed-off-by: Kai Zimmermann --- .../hawkbit/repository/ActionRepository.java | 58 ++++++++----------- .../repository/DeploymentManagement.java | 7 ++- .../DistributionSetAssignmentResult.java | 12 ++-- .../repository/DeploymentManagementTest.java | 11 ++-- .../repository/ReportManagementTest.java | 8 ++- .../repository/TargetManagementTest.java | 4 +- .../utils/RepositoryDataGenerator.java | 14 +++-- 7 files changed, 52 insertions(+), 62 deletions(-) diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/ActionRepository.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/ActionRepository.java index 331fdad5b..a93fbdca7 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/ActionRepository.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/ActionRepository.java @@ -40,7 +40,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /* * (non-Javadoc) - * + * * @see org.springframework.data.repository.CrudRepository#findAll() */ @Override @@ -49,7 +49,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves an Action with all lazy attributes. - * + * * @param actionId * the ID of the action * @return the found {@link Action} @@ -73,7 +73,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves all {@link Action}s which are referring the given * {@link Target}. - * + * * @param pageable * page parameters * @param target @@ -85,7 +85,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves all {@link Action}s which are active and referring the given * {@link Target} in a specified order. - * + * * @param pageable * page parameters * @param target @@ -132,7 +132,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves all {@link Action}s of a specific target, without pagination * ordered by action ID. - * + * * @param target * to search for * @return a list of actions according to the searched target @@ -143,7 +143,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves all {@link Action}s of a specific target and given active flag * ordered by action ID. - * + * * @param pageable * the pagination parameter * @param target @@ -160,7 +160,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves all {@link Action}s of a specific target and given active flag * ordered by action ID. - * + * * @param target * to search for * @param active @@ -174,7 +174,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Updates all {@link Action} to inactive for all targets with given ID. - * + * * @param keySet * the list of actions to set inactive * @param targetsIds @@ -190,7 +190,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp * Switches the status of actions from one specific status into another, * only if the actions are in a specific status. This should be a atomar * operation. - * + * * @param statusToSet * the new status the actions should get * @param targetIds @@ -210,7 +210,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp * Switches the status of actions from one specific status into another, * only if the actions are in a specific status. This should be a atomar * operation. - * + * * @param statusToSet * the new status the actions should get * @param rollout @@ -227,7 +227,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp @Param("active") boolean active, @Param("currentStatus") Action.Status currentStatus); /** - * + * * Retrieves all {@link Action}s which are active and referring to the given * target Ids and distribution set required migration step. * @@ -243,36 +243,24 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Counts all {@link Action}s referring to the given target. - * + * * @param target * the target to count the {@link Action}s * @return the count of actions referring to the given target */ Long countByTarget(Target target); - /* - * (non-Javadoc) - * - * @see org.springframework.data.repository.CrudRepository#save(java.lang. - * Iterable) - */ @Override @CacheEvict(value = "feedbackReceivedOverTime", allEntries = true) List save(Iterable entities); - /* - * (non-Javadoc) - * - * @see - * org.springframework.data.repository.CrudRepository#save(java.lang.Object) - */ @Override @CacheEvict(value = "feedbackReceivedOverTime", allEntries = true) S save(S entity); /** * Counts all {@link Action}s referring to the given DistributionSet. - * + * * @param distributionSet * DistributionSet to count the {@link Action}s from * @return the count of actions referring to the given distributionSet @@ -281,7 +269,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Counts all {@link Action}s referring to the given rollout. - * + * * @param rollout * the rollout to count the {@link Action}s from * @return the count of actions referring to the given rollout @@ -293,7 +281,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp * are currently not in the given status. An in-clause statement does not * work with the spring-data, so this is specific usecase regarding to the * rollout-management to find out actions which are not in specific states. - * + * * @param rollout * the rollout the actions are belong to * @param rolloutGroup @@ -312,7 +300,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Counts all actions referring to a given rollout and rolloutgroup. - * + * * @param rollout * the rollout the actions belong to * @param rolloutGroup @@ -323,7 +311,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Counts all actions referring to a given rollout, rolloutgroup and status. - * + * * @param rolloutId * the ID of rollout the actions belong to * @param rolloutGroupId @@ -338,7 +326,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieving all actions referring to a given rollout with a specific * action as parent reference and a specific status. - * + * * Finding all actions of a specific rolloutgroup parent relation. * * @param rollout @@ -355,7 +343,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves all actions for a specific rollout and in a specific status. - * + * * @param rollout * the rollout the actions beglong to * @param actionStatus @@ -367,7 +355,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Get list of objects which has details of status and count of targets in * each status in specified rollout. - * + * * @param rolloutId * id of {@link Rollout} * @return list of objects with status and target count @@ -378,7 +366,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Get list of objects which has details of status and count of targets in * each status in specified rollout. - * + * * @param rolloutId * id of {@link Rollout} * @return list of objects with status and target count @@ -389,7 +377,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Get list of objects which has details of status and count of targets in * each status in specified rollout group. - * + * * @param rolloutGroupId * id of {@link RolloutGroup} * @return list of objects with status and target count @@ -400,7 +388,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Get list of objects which has details of status and count of targets in * each status in specified rollout group. - * + * * @param rolloutGroupId * list of id of {@link RolloutGroup} * @return list of objects with status and target count diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java index 172f1c3e1..b0a61395b 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java @@ -378,11 +378,13 @@ public class DeploymentManagement { actionStatusRepository.save(actionStatus); }); + // flush to get action IDs + entityManager.flush(); // select updated targets in order to return them final DistributionSetAssignmentResult result = new DistributionSetAssignmentResult( targets.stream().map(target -> target.getControllerId()).collect(Collectors.toList()), targets.size(), - controllerIDs.size() - targets.size(), Lists.newArrayList(targetIdsToActions.values()), - targetManagement); + controllerIDs.size() - targets.size(), + targetIdsToActions.values().stream().map(Action::getId).collect(Collectors.toList()), targetManagement); LOG.debug("assignDistribution({}) finished {}", set, result); @@ -392,7 +394,6 @@ public class DeploymentManagement { entityManager.detach(set); // send distribution set assignment event - targets.stream().filter(t -> !!!targetIdsCancellList.contains(t.getId())) .forEach(t -> assignDistributionSetEvent(t, targetIdsToActions.get(t.getControllerId()).getId(), softwareModules)); diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DistributionSetAssignmentResult.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DistributionSetAssignmentResult.java index ac562131d..3e61e4499 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DistributionSetAssignmentResult.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DistributionSetAssignmentResult.java @@ -10,7 +10,6 @@ package org.eclipse.hawkbit.repository; import java.util.List; -import org.eclipse.hawkbit.repository.model.Action; import org.eclipse.hawkbit.repository.model.AssignmentResult; import org.eclipse.hawkbit.repository.model.Target; @@ -19,14 +18,11 @@ import org.eclipse.hawkbit.repository.model.Target; * information of an assignment and how much of the assignment has been done and * how much of the assignments had already been existed. * - * - * - * */ public class DistributionSetAssignmentResult extends AssignmentResult { private final List assignedTargets; - private final List actions; + private final List actions; private final TargetManagement targetManagement; @@ -48,7 +44,7 @@ public class DistributionSetAssignmentResult extends AssignmentResult { * */ public DistributionSetAssignmentResult(final List assignedTargets, final int assigned, - final int alreadyAssigned, final List actions, final TargetManagement targetManagement) { + final int alreadyAssigned, final List actions, final TargetManagement targetManagement) { super(assigned, alreadyAssigned); this.assignedTargets = assignedTargets; this.actions = actions; @@ -63,9 +59,9 @@ public class DistributionSetAssignmentResult extends AssignmentResult { } /** - * @return the actionId + * @return the actionIds */ - public List getActions() { + public List getActions() { return actions; } diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java index 46747cd9c..5ad98069a 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java @@ -73,7 +73,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { distributionSetManagement, new ArrayList()); final List testTarget = targetManagement.createTargets(TestDataUtil.generateTargets(1)); // one action with one action status is generated - final Action action = deploymentManagement.assignDistributionSet(testDs, testTarget).getActions().get(0); + final Action action = deploymentManagement.findActionWithDetails( + deploymentManagement.assignDistributionSet(testDs, testTarget).getActions().get(0)); // save 2 action status actionStatusRepository.save(new ActionStatus(action, Status.RETRIEVED, System.currentTimeMillis())); actionStatusRepository.save(new ActionStatus(action, Status.RUNNING, System.currentTimeMillis())); @@ -349,7 +350,7 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { * test a simple deployment by calling the * {@link TargetRepository#assignDistributionSet(DistributionSet, Iterable)} * and checking the active action and the action history of the targets. - * + * * @throws InterruptedException */ @Test @@ -805,7 +806,7 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { // assign ds to create an action final DistributionSetAssignmentResult assignDistributionSet = deploymentManagement .assignDistributionSet(ds.getId(), ActionType.SOFT, Action.NO_FORCE_TIME, target.getControllerId()); - final Action action = assignDistributionSet.getActions().get(0); + final Action action = deploymentManagement.findActionWithDetails(assignDistributionSet.getActions().get(0)); // verify preparation Action findAction = deploymentManagement.findAction(action.getId()); assertThat(findAction.getActionType()).isEqualTo(ActionType.SOFT); @@ -828,7 +829,7 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { // assign ds to create an action final DistributionSetAssignmentResult assignDistributionSet = deploymentManagement .assignDistributionSet(ds.getId(), ActionType.FORCED, Action.NO_FORCE_TIME, target.getControllerId()); - final Action action = assignDistributionSet.getActions().get(0); + final Action action = deploymentManagement.findActionWithDetails(assignDistributionSet.getActions().get(0)); // verify perparation Action findAction = deploymentManagement.findAction(action.getId()); assertThat(findAction.getActionType()).isEqualTo(ActionType.FORCED); @@ -848,7 +849,7 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { *

* All created distribution sets are assigned to all targets of the * target list deployedTargets. - * + * * @param undeployedTargetPrefix * prefix to be used as target controller prefix * @param noOfUndeployedTargets diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ReportManagementTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ReportManagementTest.java index bb5450083..0f91fb521 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ReportManagementTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ReportManagementTest.java @@ -138,7 +138,8 @@ public class ReportManagementTest extends AbstractIntegrationTest { final Target createTarget = targetManagement.createTarget(new Target("t" + month)); final DistributionSetAssignmentResult result = deploymentManagement.assignDistributionSet(distributionSet, Lists.newArrayList(createTarget)); - controllerManagament.registerRetrieved(result.getActions().get(0), + controllerManagament.registerRetrieved( + deploymentManagement.findActionWithDetails(result.getActions().get(0)), "Controller retrieved update action and should start now the download."); } DataReportSeries feedbackReceivedOverTime = reportManagement @@ -158,7 +159,8 @@ public class ReportManagementTest extends AbstractIntegrationTest { final Target createTarget = targetManagement.createTarget(new Target("t2" + month)); final DistributionSetAssignmentResult result = deploymentManagement.assignDistributionSet(distributionSet, Lists.newArrayList(createTarget)); - controllerManagament.registerRetrieved(result.getActions().get(0), + controllerManagament.registerRetrieved( + deploymentManagement.findActionWithDetails(result.getActions().get(0)), "Controller retrieved update action and should start now the download."); } feedbackReceivedOverTime = reportManagement.feedbackReceivedOverTime(DateTypes.perMonth(), from, to); @@ -572,7 +574,7 @@ public class ReportManagementTest extends AbstractIntegrationTest { /* * (non-Javadoc) - * + * * @see org.springframework.data.auditing.DateTimeProvider#getNow() */ @Override diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/TargetManagementTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/TargetManagementTest.java index 3a70441ca..cdcaff25e 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/TargetManagementTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/TargetManagementTest.java @@ -174,7 +174,7 @@ public class TargetManagementTest extends AbstractIntegrationTest { final DistributionSetAssignmentResult result = deploymentManagement.assignDistributionSet(set.getId(), "4711"); - final Action action = result.getActions().get(0); + final Action action = deploymentManagement.findActionWithDetails(result.getActions().get(0)); action.setStatus(Status.FINISHED); controllerManagament.addUpdateActionStatus( new ActionStatus(action, Status.FINISHED, System.currentTimeMillis(), "message"), action); @@ -221,7 +221,7 @@ public class TargetManagementTest extends AbstractIntegrationTest { * verifies, that all {@link TargetTag} of parameter. NOTE: it's accepted * that the target have additional tags assigned to them which are not * contained within parameter tags. - * + * * @param strict * if true, the given targets MUST contain EXACTLY ALL given * tags, AND NO OTHERS. If false, the given targets MUST contain diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/utils/RepositoryDataGenerator.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/utils/RepositoryDataGenerator.java index dffec4df1..d7efa50d5 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/utils/RepositoryDataGenerator.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/utils/RepositoryDataGenerator.java @@ -199,13 +199,14 @@ public final class RepositoryDataGenerator { } - private void createActionStatusHistory(final List actions, final int sizeMultiplikator) { + private void createActionStatusHistory(final List actions, final int sizeMultiplikator) { final AtomicInteger counter = new AtomicInteger(); int index = 0; - for (final Action actionGiven : actions) { + for (final Long actionGiven : actions) { // retrieved - Action action = controllerManagement.registerRetrieved(actionGiven, + Action action = controllerManagement.registerRetrieved( + deploymentManagement.findActionWithDetails(actionGiven), "Controller retrieved update action and should start now the download."); // download @@ -260,10 +261,11 @@ public final class RepositoryDataGenerator { } } - private void createSimpleActionStatusHistory(final List actions) { - for (final Action actionGiven : actions) { + private void createSimpleActionStatusHistory(final List actions) { + for (final Long actionGiven : actions) { // retrieved - Action action = controllerManagement.registerRetrieved(actionGiven, + Action action = controllerManagement.registerRetrieved( + deploymentManagement.findActionWithDetails(actionGiven), "Controller retrieved update action and should start now the download."); // close From 38b750f674465d5ae4fabc706547cfe8e506feed Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Tue, 16 Feb 2016 13:48:52 +0100 Subject: [PATCH 04/20] DistributionSetAssignmentResult contains actions that do not reflect the status on the DB. Needs to be avoided by returning actions IDs only and force the user to query an updated action entity. Signed-off-by: Kai Zimmermann --- .../hawkbit/repository/ActionRepository.java | 58 ++++++++----------- .../repository/DeploymentManagement.java | 7 ++- .../DistributionSetAssignmentResult.java | 12 ++-- .../repository/DeploymentManagementTest.java | 11 ++-- .../repository/ReportManagementTest.java | 8 ++- .../repository/TargetManagementTest.java | 4 +- .../utils/RepositoryDataGenerator.java | 14 +++-- .../hawkbit/controller/CancelActionTest.java | 29 +++++----- .../controller/DeploymentBaseTest.java | 15 ++--- 9 files changed, 76 insertions(+), 82 deletions(-) diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/ActionRepository.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/ActionRepository.java index 331fdad5b..a93fbdca7 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/ActionRepository.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/ActionRepository.java @@ -40,7 +40,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /* * (non-Javadoc) - * + * * @see org.springframework.data.repository.CrudRepository#findAll() */ @Override @@ -49,7 +49,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves an Action with all lazy attributes. - * + * * @param actionId * the ID of the action * @return the found {@link Action} @@ -73,7 +73,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves all {@link Action}s which are referring the given * {@link Target}. - * + * * @param pageable * page parameters * @param target @@ -85,7 +85,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves all {@link Action}s which are active and referring the given * {@link Target} in a specified order. - * + * * @param pageable * page parameters * @param target @@ -132,7 +132,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves all {@link Action}s of a specific target, without pagination * ordered by action ID. - * + * * @param target * to search for * @return a list of actions according to the searched target @@ -143,7 +143,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves all {@link Action}s of a specific target and given active flag * ordered by action ID. - * + * * @param pageable * the pagination parameter * @param target @@ -160,7 +160,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves all {@link Action}s of a specific target and given active flag * ordered by action ID. - * + * * @param target * to search for * @param active @@ -174,7 +174,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Updates all {@link Action} to inactive for all targets with given ID. - * + * * @param keySet * the list of actions to set inactive * @param targetsIds @@ -190,7 +190,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp * Switches the status of actions from one specific status into another, * only if the actions are in a specific status. This should be a atomar * operation. - * + * * @param statusToSet * the new status the actions should get * @param targetIds @@ -210,7 +210,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp * Switches the status of actions from one specific status into another, * only if the actions are in a specific status. This should be a atomar * operation. - * + * * @param statusToSet * the new status the actions should get * @param rollout @@ -227,7 +227,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp @Param("active") boolean active, @Param("currentStatus") Action.Status currentStatus); /** - * + * * Retrieves all {@link Action}s which are active and referring to the given * target Ids and distribution set required migration step. * @@ -243,36 +243,24 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Counts all {@link Action}s referring to the given target. - * + * * @param target * the target to count the {@link Action}s * @return the count of actions referring to the given target */ Long countByTarget(Target target); - /* - * (non-Javadoc) - * - * @see org.springframework.data.repository.CrudRepository#save(java.lang. - * Iterable) - */ @Override @CacheEvict(value = "feedbackReceivedOverTime", allEntries = true) List save(Iterable entities); - /* - * (non-Javadoc) - * - * @see - * org.springframework.data.repository.CrudRepository#save(java.lang.Object) - */ @Override @CacheEvict(value = "feedbackReceivedOverTime", allEntries = true) S save(S entity); /** * Counts all {@link Action}s referring to the given DistributionSet. - * + * * @param distributionSet * DistributionSet to count the {@link Action}s from * @return the count of actions referring to the given distributionSet @@ -281,7 +269,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Counts all {@link Action}s referring to the given rollout. - * + * * @param rollout * the rollout to count the {@link Action}s from * @return the count of actions referring to the given rollout @@ -293,7 +281,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp * are currently not in the given status. An in-clause statement does not * work with the spring-data, so this is specific usecase regarding to the * rollout-management to find out actions which are not in specific states. - * + * * @param rollout * the rollout the actions are belong to * @param rolloutGroup @@ -312,7 +300,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Counts all actions referring to a given rollout and rolloutgroup. - * + * * @param rollout * the rollout the actions belong to * @param rolloutGroup @@ -323,7 +311,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Counts all actions referring to a given rollout, rolloutgroup and status. - * + * * @param rolloutId * the ID of rollout the actions belong to * @param rolloutGroupId @@ -338,7 +326,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieving all actions referring to a given rollout with a specific * action as parent reference and a specific status. - * + * * Finding all actions of a specific rolloutgroup parent relation. * * @param rollout @@ -355,7 +343,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves all actions for a specific rollout and in a specific status. - * + * * @param rollout * the rollout the actions beglong to * @param actionStatus @@ -367,7 +355,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Get list of objects which has details of status and count of targets in * each status in specified rollout. - * + * * @param rolloutId * id of {@link Rollout} * @return list of objects with status and target count @@ -378,7 +366,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Get list of objects which has details of status and count of targets in * each status in specified rollout. - * + * * @param rolloutId * id of {@link Rollout} * @return list of objects with status and target count @@ -389,7 +377,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Get list of objects which has details of status and count of targets in * each status in specified rollout group. - * + * * @param rolloutGroupId * id of {@link RolloutGroup} * @return list of objects with status and target count @@ -400,7 +388,7 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Get list of objects which has details of status and count of targets in * each status in specified rollout group. - * + * * @param rolloutGroupId * list of id of {@link RolloutGroup} * @return list of objects with status and target count diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java index 172f1c3e1..b0a61395b 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java @@ -378,11 +378,13 @@ public class DeploymentManagement { actionStatusRepository.save(actionStatus); }); + // flush to get action IDs + entityManager.flush(); // select updated targets in order to return them final DistributionSetAssignmentResult result = new DistributionSetAssignmentResult( targets.stream().map(target -> target.getControllerId()).collect(Collectors.toList()), targets.size(), - controllerIDs.size() - targets.size(), Lists.newArrayList(targetIdsToActions.values()), - targetManagement); + controllerIDs.size() - targets.size(), + targetIdsToActions.values().stream().map(Action::getId).collect(Collectors.toList()), targetManagement); LOG.debug("assignDistribution({}) finished {}", set, result); @@ -392,7 +394,6 @@ public class DeploymentManagement { entityManager.detach(set); // send distribution set assignment event - targets.stream().filter(t -> !!!targetIdsCancellList.contains(t.getId())) .forEach(t -> assignDistributionSetEvent(t, targetIdsToActions.get(t.getControllerId()).getId(), softwareModules)); diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DistributionSetAssignmentResult.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DistributionSetAssignmentResult.java index ac562131d..3e61e4499 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DistributionSetAssignmentResult.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DistributionSetAssignmentResult.java @@ -10,7 +10,6 @@ package org.eclipse.hawkbit.repository; import java.util.List; -import org.eclipse.hawkbit.repository.model.Action; import org.eclipse.hawkbit.repository.model.AssignmentResult; import org.eclipse.hawkbit.repository.model.Target; @@ -19,14 +18,11 @@ import org.eclipse.hawkbit.repository.model.Target; * information of an assignment and how much of the assignment has been done and * how much of the assignments had already been existed. * - * - * - * */ public class DistributionSetAssignmentResult extends AssignmentResult { private final List assignedTargets; - private final List actions; + private final List actions; private final TargetManagement targetManagement; @@ -48,7 +44,7 @@ public class DistributionSetAssignmentResult extends AssignmentResult { * */ public DistributionSetAssignmentResult(final List assignedTargets, final int assigned, - final int alreadyAssigned, final List actions, final TargetManagement targetManagement) { + final int alreadyAssigned, final List actions, final TargetManagement targetManagement) { super(assigned, alreadyAssigned); this.assignedTargets = assignedTargets; this.actions = actions; @@ -63,9 +59,9 @@ public class DistributionSetAssignmentResult extends AssignmentResult { } /** - * @return the actionId + * @return the actionIds */ - public List getActions() { + public List getActions() { return actions; } diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java index 46747cd9c..5ad98069a 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java @@ -73,7 +73,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { distributionSetManagement, new ArrayList()); final List testTarget = targetManagement.createTargets(TestDataUtil.generateTargets(1)); // one action with one action status is generated - final Action action = deploymentManagement.assignDistributionSet(testDs, testTarget).getActions().get(0); + final Action action = deploymentManagement.findActionWithDetails( + deploymentManagement.assignDistributionSet(testDs, testTarget).getActions().get(0)); // save 2 action status actionStatusRepository.save(new ActionStatus(action, Status.RETRIEVED, System.currentTimeMillis())); actionStatusRepository.save(new ActionStatus(action, Status.RUNNING, System.currentTimeMillis())); @@ -349,7 +350,7 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { * test a simple deployment by calling the * {@link TargetRepository#assignDistributionSet(DistributionSet, Iterable)} * and checking the active action and the action history of the targets. - * + * * @throws InterruptedException */ @Test @@ -805,7 +806,7 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { // assign ds to create an action final DistributionSetAssignmentResult assignDistributionSet = deploymentManagement .assignDistributionSet(ds.getId(), ActionType.SOFT, Action.NO_FORCE_TIME, target.getControllerId()); - final Action action = assignDistributionSet.getActions().get(0); + final Action action = deploymentManagement.findActionWithDetails(assignDistributionSet.getActions().get(0)); // verify preparation Action findAction = deploymentManagement.findAction(action.getId()); assertThat(findAction.getActionType()).isEqualTo(ActionType.SOFT); @@ -828,7 +829,7 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { // assign ds to create an action final DistributionSetAssignmentResult assignDistributionSet = deploymentManagement .assignDistributionSet(ds.getId(), ActionType.FORCED, Action.NO_FORCE_TIME, target.getControllerId()); - final Action action = assignDistributionSet.getActions().get(0); + final Action action = deploymentManagement.findActionWithDetails(assignDistributionSet.getActions().get(0)); // verify perparation Action findAction = deploymentManagement.findAction(action.getId()); assertThat(findAction.getActionType()).isEqualTo(ActionType.FORCED); @@ -848,7 +849,7 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { *

* All created distribution sets are assigned to all targets of the * target list deployedTargets. - * + * * @param undeployedTargetPrefix * prefix to be used as target controller prefix * @param noOfUndeployedTargets diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ReportManagementTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ReportManagementTest.java index bb5450083..0f91fb521 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ReportManagementTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ReportManagementTest.java @@ -138,7 +138,8 @@ public class ReportManagementTest extends AbstractIntegrationTest { final Target createTarget = targetManagement.createTarget(new Target("t" + month)); final DistributionSetAssignmentResult result = deploymentManagement.assignDistributionSet(distributionSet, Lists.newArrayList(createTarget)); - controllerManagament.registerRetrieved(result.getActions().get(0), + controllerManagament.registerRetrieved( + deploymentManagement.findActionWithDetails(result.getActions().get(0)), "Controller retrieved update action and should start now the download."); } DataReportSeries feedbackReceivedOverTime = reportManagement @@ -158,7 +159,8 @@ public class ReportManagementTest extends AbstractIntegrationTest { final Target createTarget = targetManagement.createTarget(new Target("t2" + month)); final DistributionSetAssignmentResult result = deploymentManagement.assignDistributionSet(distributionSet, Lists.newArrayList(createTarget)); - controllerManagament.registerRetrieved(result.getActions().get(0), + controllerManagament.registerRetrieved( + deploymentManagement.findActionWithDetails(result.getActions().get(0)), "Controller retrieved update action and should start now the download."); } feedbackReceivedOverTime = reportManagement.feedbackReceivedOverTime(DateTypes.perMonth(), from, to); @@ -572,7 +574,7 @@ public class ReportManagementTest extends AbstractIntegrationTest { /* * (non-Javadoc) - * + * * @see org.springframework.data.auditing.DateTimeProvider#getNow() */ @Override diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/TargetManagementTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/TargetManagementTest.java index 3a70441ca..cdcaff25e 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/TargetManagementTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/TargetManagementTest.java @@ -174,7 +174,7 @@ public class TargetManagementTest extends AbstractIntegrationTest { final DistributionSetAssignmentResult result = deploymentManagement.assignDistributionSet(set.getId(), "4711"); - final Action action = result.getActions().get(0); + final Action action = deploymentManagement.findActionWithDetails(result.getActions().get(0)); action.setStatus(Status.FINISHED); controllerManagament.addUpdateActionStatus( new ActionStatus(action, Status.FINISHED, System.currentTimeMillis(), "message"), action); @@ -221,7 +221,7 @@ public class TargetManagementTest extends AbstractIntegrationTest { * verifies, that all {@link TargetTag} of parameter. NOTE: it's accepted * that the target have additional tags assigned to them which are not * contained within parameter tags. - * + * * @param strict * if true, the given targets MUST contain EXACTLY ALL given * tags, AND NO OTHERS. If false, the given targets MUST contain diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/utils/RepositoryDataGenerator.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/utils/RepositoryDataGenerator.java index dffec4df1..d7efa50d5 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/utils/RepositoryDataGenerator.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/utils/RepositoryDataGenerator.java @@ -199,13 +199,14 @@ public final class RepositoryDataGenerator { } - private void createActionStatusHistory(final List actions, final int sizeMultiplikator) { + private void createActionStatusHistory(final List actions, final int sizeMultiplikator) { final AtomicInteger counter = new AtomicInteger(); int index = 0; - for (final Action actionGiven : actions) { + for (final Long actionGiven : actions) { // retrieved - Action action = controllerManagement.registerRetrieved(actionGiven, + Action action = controllerManagement.registerRetrieved( + deploymentManagement.findActionWithDetails(actionGiven), "Controller retrieved update action and should start now the download."); // download @@ -260,10 +261,11 @@ public final class RepositoryDataGenerator { } } - private void createSimpleActionStatusHistory(final List actions) { - for (final Action actionGiven : actions) { + private void createSimpleActionStatusHistory(final List actions) { + for (final Long actionGiven : actions) { // retrieved - Action action = controllerManagement.registerRetrieved(actionGiven, + Action action = controllerManagement.registerRetrieved( + deploymentManagement.findActionWithDetails(actionGiven), "Controller retrieved update action and should start now the download."); // close diff --git a/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/controller/CancelActionTest.java b/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/controller/CancelActionTest.java index 267b95408..e7b94cb30 100644 --- a/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/controller/CancelActionTest.java +++ b/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/controller/CancelActionTest.java @@ -56,7 +56,8 @@ public class CancelActionTest extends AbstractIntegrationTest { final List toAssign = new ArrayList(); toAssign.add(savedTarget); - final Action updateAction = deploymentManagement.assignDistributionSet(ds, toAssign).getActions().get(0); + final Action updateAction = deploymentManagement + .findActionWithDetails(deploymentManagement.assignDistributionSet(ds, toAssign).getActions().get(0)); final Action cancelAction = deploymentManagement.cancelAction(updateAction, targetManagement.findTargetByControllerID(savedTarget.getControllerId())); @@ -112,7 +113,8 @@ public class CancelActionTest extends AbstractIntegrationTest { final List toAssign = new ArrayList(); toAssign.add(savedTarget); - final Action updateAction = deploymentManagement.assignDistributionSet(ds, toAssign).getActions().get(0); + final Action updateAction = deploymentManagement + .findActionWithDetails(deploymentManagement.assignDistributionSet(ds, toAssign).getActions().get(0)); long current = System.currentTimeMillis(); mvc.perform(get("/{tenant}/controller/v1/4712", tenantAware.getCurrentTenant())) @@ -227,7 +229,8 @@ public class CancelActionTest extends AbstractIntegrationTest { final Target savedTarget = targetManagement.createTarget(target); final List toAssign = new ArrayList(); toAssign.add(savedTarget); - final Action updateAction = deploymentManagement.assignDistributionSet(ds, toAssign).getActions().get(0); + final Action updateAction = deploymentManagement + .findActionWithDetails(deploymentManagement.assignDistributionSet(ds, toAssign).getActions().get(0)); return deploymentManagement.cancelAction(updateAction, targetManagement.findTargetByControllerID(savedTarget.getControllerId())); @@ -243,8 +246,8 @@ public class CancelActionTest extends AbstractIntegrationTest { final Target savedTarget = targetManagement.createTarget(target); - final Action updateAction = deploymentManagement.assignDistributionSet(ds.getId(), new String[] { "4712" }) - .getActions().get(0); + final Action updateAction = deploymentManagement.findActionWithDetails( + deploymentManagement.assignDistributionSet(ds.getId(), new String[] { "4712" }).getActions().get(0)); // cancel action manually final Action cancelAction = deploymentManagement.cancelAction(updateAction, @@ -340,12 +343,12 @@ public class CancelActionTest extends AbstractIntegrationTest { final Target savedTarget = targetManagement.createTarget(target); - final Action updateAction = deploymentManagement.assignDistributionSet(ds.getId(), new String[] { "4712" }) - .getActions().get(0); - final Action updateAction2 = deploymentManagement.assignDistributionSet(ds2.getId(), new String[] { "4712" }) - .getActions().get(0); - final Action updateAction3 = deploymentManagement.assignDistributionSet(ds3.getId(), new String[] { "4712" }) - .getActions().get(0); + final Action updateAction = deploymentManagement.findActionWithDetails( + deploymentManagement.assignDistributionSet(ds.getId(), new String[] { "4712" }).getActions().get(0)); + final Action updateAction2 = deploymentManagement.findActionWithDetails( + deploymentManagement.assignDistributionSet(ds2.getId(), new String[] { "4712" }).getActions().get(0)); + final Action updateAction3 = deploymentManagement.findActionWithDetails( + deploymentManagement.assignDistributionSet(ds3.getId(), new String[] { "4712" }).getActions().get(0)); assertThat(actionStatusRepository.findAll()).hasSize(3); @@ -456,8 +459,8 @@ public class CancelActionTest extends AbstractIntegrationTest { final List toAssign = new ArrayList(); toAssign.add(target); - final Action action = deploymentManagement.assignDistributionSet(ds.getId(), new String[] { "4712" }) - .getActions().get(0); + final Action action = deploymentManagement.findActionWithDetails( + deploymentManagement.assignDistributionSet(ds.getId(), new String[] { "4712" }).getActions().get(0)); final Action cancelAction = deploymentManagement.cancelAction(action, targetManagement.findTargetByControllerID(target.getControllerId())); diff --git a/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/controller/DeploymentBaseTest.java b/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/controller/DeploymentBaseTest.java index e0a4b8e5c..2aabb0cba 100644 --- a/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/controller/DeploymentBaseTest.java +++ b/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/controller/DeploymentBaseTest.java @@ -484,7 +484,8 @@ public class DeploymentBaseTest extends AbstractIntegrationTestWithMongoDB { final DistributionSet savedSet = TestDataUtil.generateDistributionSet("", softwareManagement, distributionSetManagement); - final Action action1 = deploymentManagement.assignDistributionSet(savedSet, toAssign).getActions().get(0); + final Action action1 = deploymentManagement.findActionWithDetails( + deploymentManagement.assignDistributionSet(savedSet, toAssign).getActions().get(0)); mvc.perform( get("/{tenant}/controller/v1/4712/deploymentBase/" + action1.getId(), tenantAware.getCurrentTenant())) .andDo(MockMvcResultPrinter.print()).andExpect(status().isOk()); @@ -544,12 +545,12 @@ public class DeploymentBaseTest extends AbstractIntegrationTestWithMongoDB { final List toAssign = new ArrayList(); toAssign.add(savedTarget1); - final Action action1 = deploymentManagement.assignDistributionSet(ds1.getId(), new String[] { "4712" }) - .getActions().get(0); - final Action action2 = deploymentManagement.assignDistributionSet(ds2.getId(), new String[] { "4712" }) - .getActions().get(0); - final Action action3 = deploymentManagement.assignDistributionSet(ds3.getId(), new String[] { "4712" }) - .getActions().get(0); + final Action action1 = deploymentManagement.findActionWithDetails( + deploymentManagement.assignDistributionSet(ds1.getId(), new String[] { "4712" }).getActions().get(0)); + final Action action2 = deploymentManagement.findActionWithDetails( + deploymentManagement.assignDistributionSet(ds2.getId(), new String[] { "4712" }).getActions().get(0)); + final Action action3 = deploymentManagement.findActionWithDetails( + deploymentManagement.assignDistributionSet(ds3.getId(), new String[] { "4712" }).getActions().get(0)); Target myT = targetManagement.findTargetByControllerID("4712"); assertThat(myT.getTargetInfo().getUpdateStatus()).isEqualTo(TargetUpdateStatus.PENDING); From 6a2b74e5651e8f1e15eaf74f31d529cfa7578000 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Tue, 16 Feb 2016 17:37:34 +0100 Subject: [PATCH 05/20] Enabled target.assignedDs load through action enitygraph. Signed-off-by: Kai Zimmermann --- .../hawkbit/repository/DeploymentManagement.java | 4 ++-- .../eclipse/hawkbit/repository/model/Action.java | 3 ++- .../repository/DeploymentManagementTest.java | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java index b0a61395b..c9b08a554 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java @@ -710,8 +710,8 @@ public class DeploymentManagement { } /** - * Get the {@link Action} entity for given actionId with all lazy - * attributes. + * Get the {@link Action} entity for given actionId with all lazy attributes + * (i.e. distributionSet, target, target.assignedDs). * * @param actionId * to be id of the action diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/Action.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/Action.java index 0554e6c58..1f8a71d76 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/Action.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/Action.java @@ -24,6 +24,7 @@ import javax.persistence.ManyToOne; import javax.persistence.NamedAttributeNode; import javax.persistence.NamedEntityGraph; import javax.persistence.NamedEntityGraphs; +import javax.persistence.NamedSubgraph; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.Transient; @@ -55,7 +56,7 @@ import org.eclipse.persistence.annotations.CascadeOnDelete; @Index(name = "sp_idx_action_prim", columnList = "tenant,id") }) @NamedEntityGraphs({ @NamedEntityGraph(name = "Action.ds", attributeNodes = { @NamedAttributeNode("distributionSet") }), @NamedEntityGraph(name = "Action.all", attributeNodes = { @NamedAttributeNode("distributionSet"), - @NamedAttributeNode("target") }) }) + @NamedAttributeNode(value = "target", subgraph = "target.ds") }, subgraphs = @NamedSubgraph(name = "target.ds", attributeNodes = @NamedAttributeNode("assignedDistributionSet") ) ) }) @Entity public class Action extends BaseEntity implements Comparable { private static final long serialVersionUID = 1L; diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java index 5ad98069a..248f630db 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java @@ -66,6 +66,22 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { @Autowired private EventBus eventBus; + @Test + @Description("Test verifies that the repistory retrieves the action including all defined (lazy) details.") + public void findActionWithLazyDetails() { + final DistributionSet testDs = TestDataUtil.generateDistributionSet("TestDs", "1.0", softwareManagement, + distributionSetManagement, new ArrayList()); + final List testTarget = targetManagement.createTargets(TestDataUtil.generateTargets(1)); + // one action with one action status is generated + final Action action = deploymentManagement.findActionWithDetails( + deploymentManagement.assignDistributionSet(testDs, testTarget).getActions().get(0)); + + assertThat(action.getDistributionSet()).as("DistributionSet in action").isNotNull(); + assertThat(action.getTarget()).as("Target in action").isNotNull(); + assertThat(action.getTarget().getAssignedDistributionSet()).as("AssignedDistributionSet of target in action") + .isNotNull(); + } + @Test @Description("Test verifies that the custom query to find all actions include the count of action status is working correctly") public void findActionsWithStatusCountByTarget() { From 52fee2b2dfe7b969b5a44f7010838343aad298e0 Mon Sep 17 00:00:00 2001 From: venu1278 Date: Wed, 17 Feb 2016 13:01:05 +0530 Subject: [PATCH 06/20] Drag and drop handles wrong item Signed-off-by: venu1278 --- .../smtable/SoftwareModuleTable.java | 16 ++----------- .../smtable/SoftwareModuleTableHeader.java | 6 +++-- .../dstable/DistributionSetTable.java | 15 +----------- .../dstable/DistributionSetTableHeader.java | 7 +++--- .../distributions/smtable/SwModuleTable.java | 22 ++++-------------- .../smtable/SwModuleTableHeader.java | 6 +++-- .../management/dstable/DistributionTable.java | 23 +++---------------- .../dstable/DistributionTableHeader.java | 6 +++-- .../management/targettable/TargetTable.java | 19 ++------------- .../targettable/TargetTableHeader.java | 6 +++-- 10 files changed, 32 insertions(+), 94 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java index 940e3b27a..f1e302fdc 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java @@ -79,8 +79,7 @@ public class SoftwareModuleTable extends AbstractTable { @Autowired private UploadViewAcceptCriteria uploadViewAcceptCriteria; - private Boolean isFilterApplied = false; - + /** * Initialize the filter layout. */ @@ -107,18 +106,7 @@ public class SoftwareModuleTable extends AbstractTable { if (filterEvent == SMFilterEvent.FILTER_BY_TYPE || filterEvent == SMFilterEvent.FILTER_BY_TEXT || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TYPE || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TEXT) { - final Map queryConfig = prepareQueryConfigFilters(); - if(queryConfig.size()<1 && isFilterApplied==false){ - UI.getCurrent().access(() -> ((LazyQueryContainer) getContainerDataSource()).refresh()); - - }else { - refreshFilter(); - if(queryConfig.size()<1){ - isFilterApplied = false; - }else{ - isFilterApplied = true; - } - } + refreshFilter(); } }); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java index b08c4defb..b7db0096a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java @@ -219,8 +219,10 @@ public class SoftwareModuleTableHeader extends AbstractTableHeader { */ @Override protected void resetSearchText() { - artifactUploadState.getSoftwareModuleFilters().setSearchText(null); - eventbus.publish(this, SMFilterEvent.REMOVER_FILTER_BY_TEXT); + if(artifactUploadState.getSoftwareModuleFilters().getSearchText().isPresent()){ + artifactUploadState.getSoftwareModuleFilters().setSearchText(null); + eventbus.publish(this, SMFilterEvent.REMOVER_FILTER_BY_TEXT); + } } /* diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java index f62504911..32223e995 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java @@ -115,8 +115,6 @@ public class DistributionSetTable extends AbstractTable { @Autowired private transient TargetManagement targetManagement; - private Boolean isFilterApplied = false; - /** * Initialize the component. */ @@ -616,18 +614,7 @@ public class DistributionSetTable extends AbstractTable { if (event == DistributionTableFilterEvent.FILTER_BY_TEXT || event == DistributionTableFilterEvent.REMOVE_FILTER_BY_TEXT || event == DistributionTableFilterEvent.FILTER_BY_TAG) { - final Map queryConfig = prepareQueryConfigFilters(); - if(queryConfig.size()<1 && isFilterApplied==false){ - UI.getCurrent().access(() -> ((LazyQueryContainer) getContainerDataSource()).refresh()); - - }else { - UI.getCurrent().access(() -> refreshFilter()); - if(queryConfig.size()<1){ - isFilterApplied = false; - }else{ - isFilterApplied = true; - } - } + UI.getCurrent().access(() -> refreshFilter()); } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java index d64f07ca0..a39f32f6e 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java @@ -170,9 +170,10 @@ public class DistributionSetTableHeader extends AbstractTableHeader { @Override protected void resetSearchText() { - manageDistUIstate.getManageDistFilters().setSearchText(null); - eventbus.publish(this, DistributionTableFilterEvent.REMOVE_FILTER_BY_TEXT); - + if(manageDistUIstate.getManageDistFilters().getSearchText().isPresent()){ + manageDistUIstate.getManageDistFilters().setSearchText(null); + eventbus.publish(this, DistributionTableFilterEvent.REMOVE_FILTER_BY_TEXT); + } } @Override diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java index dd8216dfd..90d6a74df 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java @@ -95,9 +95,7 @@ public class SwModuleTable extends AbstractTable { @Autowired private ArtifactDetailsLayout artifactDetailsLayout; - private Boolean isFilterApplied = false; - - /** + /** * Initialize the filter layout. */ @PostConstruct @@ -126,21 +124,9 @@ public class SwModuleTable extends AbstractTable { if (filterEvent == SMFilterEvent.FILTER_BY_TYPE || filterEvent == SMFilterEvent.FILTER_BY_TEXT || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TYPE || filterEvent == SMFilterEvent.REMOVER_FILTER_BY_TEXT) { - final Map queryConfig = prepareQueryConfigFilters(); - if(queryConfig.size()<2 && isFilterApplied==false){ - UI.getCurrent().access(() -> ((LazyQueryContainer) getContainerDataSource()).refresh()); - - }else { - UI.getCurrent().access(() ->{ refreshFilter(); - styleTableOnDistSelection(); - }); - if(queryConfig.size()<2){ - isFilterApplied = false; - }else{ - isFilterApplied = true; - } - } - } + refreshFilter(); + styleTableOnDistSelection(); + } }); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java index 1eae1297b..d8d018e27 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java @@ -203,8 +203,10 @@ public class SwModuleTableHeader extends AbstractTableHeader { */ @Override protected void resetSearchText() { - manageDistUIState.getSoftwareModuleFilters().setSearchText(null); - eventbus.publish(this, SMFilterEvent.REMOVER_FILTER_BY_TEXT); + if(manageDistUIState.getSoftwareModuleFilters().getSearchText().isPresent()){ + manageDistUIState.getSoftwareModuleFilters().setSearchText(null); + eventbus.publish(this, SMFilterEvent.REMOVER_FILTER_BY_TEXT); + } } /* diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java index ab1ccdeac..53e723c7d 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java @@ -113,8 +113,7 @@ public class DistributionTable extends AbstractTable { private Button distributinPinnedBtn; - private Boolean isFilterApplied = false; - + /** * Initialize the distribution table. */ @@ -142,24 +141,8 @@ public class DistributionTable extends AbstractTable { if (event == DistributionTableFilterEvent.FILTER_BY_TEXT || event == DistributionTableFilterEvent.REMOVE_FILTER_BY_TEXT || event == DistributionTableFilterEvent.FILTER_BY_TAG) { - final Map queryConfig = prepareQueryConfigFilters(); - if(((boolean)queryConfig.get(SPUIDefinitions.FILTER_BY_NO_TAG)==false) - && ((List)queryConfig.get(SPUIDefinitions.FILTER_BY_TAG)).isEmpty() - && queryConfig.size()<3 - && isFilterApplied==false){ - UI.getCurrent().access(() -> ((LazyQueryContainer) getContainerDataSource()).refresh()); - - }else { - UI.getCurrent().access(() -> refreshFilter()); - if(((boolean)queryConfig.get(SPUIDefinitions.FILTER_BY_NO_TAG)==false) - && ((List)queryConfig.get(SPUIDefinitions.FILTER_BY_TAG)).isEmpty() - && queryConfig.size()<3){ - isFilterApplied = false; - }else{ - isFilterApplied = true; - } - } - } + UI.getCurrent().access(() -> refreshFilter()); + } } @EventBusListenerMethod(scope = EventScope.SESSION) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java index 1f28293d2..32a3e914d 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java @@ -210,8 +210,10 @@ public class DistributionTableHeader extends AbstractTableHeader { */ @Override protected void resetSearchText() { - managementUIState.getDistributionTableFilters().setSearchText(null); - eventbus.publish(this, DistributionTableFilterEvent.REMOVE_FILTER_BY_TEXT); + if( managementUIState.getDistributionTableFilters().getSearchText().isPresent()){ + managementUIState.getDistributionTableFilters().setSearchText(null); + eventbus.publish(this, DistributionTableFilterEvent.REMOVE_FILTER_BY_TEXT); + } } /* diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java index 17256cca8..6fc7f103b 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java @@ -140,8 +140,7 @@ public class TargetTable extends AbstractTable implements Handler { private ShortcutAction actionSelectAll; private ShortcutAction actionUnSelectAll; - private Boolean isFilterApplied = Boolean.FALSE;; - + @Override @PostConstruct @@ -211,21 +210,7 @@ public class TargetTable extends AbstractTable implements Handler { void onEvent(final TargetFilterEvent filterEvent) { UI.getCurrent().access(() -> { if (checkFilterEvent(filterEvent)) { - final Map queryConfiguration = prepareQueryConfigFilters(); - if(((boolean)queryConfiguration.get(SPUIDefinitions.FILTER_BY_NO_TAG)==false) - && queryConfiguration.size()<2 - && isFilterApplied==Boolean.FALSE){ - ((LazyQueryContainer) getContainerDataSource()).refresh(); - - }else { - refreshFilter(); - if(queryConfiguration.size()<2){ - isFilterApplied = Boolean.FALSE; - }else{ - isFilterApplied = Boolean.TRUE; - } - } - + refreshFilter(); eventBus.publish(this, ManagementUIEvent.TARGET_TABLE_FILTER); } }); 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 a1b094f99..159c169d7 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 @@ -258,8 +258,10 @@ public class TargetTableHeader extends AbstractTableHeader { @Override protected void resetSearchText() { - managementUIState.getTargetTableFilters().setSearchText(null); - eventBus.publish(this, TargetFilterEvent.REMOVE_FILTER_BY_TEXT); + if(managementUIState.getTargetTableFilters().getSearchText().isPresent()){ + managementUIState.getTargetTableFilters().setSearchText(null); + eventBus.publish(this, TargetFilterEvent.REMOVE_FILTER_BY_TEXT); + } } private String getSearchText() { From 3334cf4a649f723e17b9ccdae6f8a4f7f0df835d Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Wed, 17 Feb 2016 08:36:36 +0100 Subject: [PATCH 07/20] Updated test Signed-off-by: Kai Zimmermann --- .../eclipse/hawkbit/repository/DeploymentManagementTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java index 248f630db..693a67082 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/DeploymentManagementTest.java @@ -73,8 +73,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { distributionSetManagement, new ArrayList()); final List testTarget = targetManagement.createTargets(TestDataUtil.generateTargets(1)); // one action with one action status is generated - final Action action = deploymentManagement.findActionWithDetails( - deploymentManagement.assignDistributionSet(testDs, testTarget).getActions().get(0)); + final Long actionId = deploymentManagement.assignDistributionSet(testDs, testTarget).getActions().get(0); + final Action action = deploymentManagement.findActionWithDetails(actionId); assertThat(action.getDistributionSet()).as("DistributionSet in action").isNotNull(); assertThat(action.getTarget()).as("Target in action").isNotNull(); From 01b75fc93207623d96edc8876f26efbc7f7fa722 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Wed, 17 Feb 2016 09:57:07 +0100 Subject: [PATCH 08/20] Removed unnecessary entitygraph usage. Signed-off-by: Kai Zimmermann --- .../hawkbit/repository/ActionRepository.java | 18 ++++-------------- .../hawkbit/repository/model/Action.java | 16 +++++----------- 2 files changed, 9 insertions(+), 25 deletions(-) diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/ActionRepository.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/ActionRepository.java index a93fbdca7..8221fa0ca 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/ActionRepository.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/ActionRepository.java @@ -37,16 +37,6 @@ import org.springframework.transaction.annotation.Transactional; */ @Transactional(readOnly = true) public interface ActionRepository extends BaseEntityRepository, JpaSpecificationExecutor { - - /* - * (non-Javadoc) - * - * @see org.springframework.data.repository.CrudRepository#findAll() - */ - @Override - @EntityGraph(value = "Action.all", type = EntityGraphType.LOAD) - Iterable findAll(); - /** * Retrieves an Action with all lazy attributes. * @@ -67,7 +57,6 @@ public interface ActionRepository extends BaseEntityRepository, Jp * the {@link DistributionSet} on which will be filtered * @return the found {@link Action}s */ - @EntityGraph(value = "Action.all", type = EntityGraphType.LOAD) Page findByDistributionSet(final Pageable pageable, final DistributionSet ds); /** @@ -84,7 +73,8 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves all {@link Action}s which are active and referring the given - * {@link Target} in a specified order. + * {@link Target} in a specified order. Loads also the lazy + * {@link Action#getDistributionSet()} field. * * @param pageable * page parameters @@ -125,7 +115,6 @@ public interface ActionRepository extends BaseEntityRepository, Jp * @return the found {@link UpdateAction}s */ @Query("Select a from Action a where a.target = :target and a.distributionSet = :ds order by a.id") - @EntityGraph(value = "Action.all", type = EntityGraphType.LOAD) Page findByTargetAndDistributionSet(final Pageable pageable, @Param("target") final Target target, @Param("ds") DistributionSet ds); @@ -159,7 +148,8 @@ public interface ActionRepository extends BaseEntityRepository, Jp /** * Retrieves all {@link Action}s of a specific target and given active flag - * ordered by action ID. + * ordered by action ID. Loads also the lazy + * {@link Action#getDistributionSet()} field. * * @param target * to search for diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/Action.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/Action.java index 1f8a71d76..c19b947de 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/Action.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/Action.java @@ -35,21 +35,15 @@ import org.eclipse.persistence.annotations.CascadeOnDelete; /** *

- * Applicable transition changes of the software {@link SoftwareModule} state of - * a {@link Target}, e.g. install, uninstall, update, start, stop, and - * preparations for the transition change, i.e. download. + * Applicable transition changes of the {@link SoftwareModule}s state of a + * {@link Target}, e.g. install, uninstall, update and preparations for the + * transition change, i.e. download. *

* *

- * Actions are managed by the SP server (SPS) and applied to the edge controller - * by the SP controller (SPC). Actions may also be value added commands that are - * nor directly related to SP, e.g. factory reset. + * Actions are managed by the SP server and applied to the targets by the + * client. *

- * - * - * - * - * */ @Table(name = "sp_action", indexes = { @Index(name = "sp_idx_action_01", columnList = "tenant,distribution_set"), @Index(name = "sp_idx_action_02", columnList = "tenant,target,active"), From 8b9f0d57dc7c7a16c64071f679de57cb662aab23 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Wed, 17 Feb 2016 14:00:33 +0100 Subject: [PATCH 09/20] Create README.md --- 3rd-dependencies/README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 3rd-dependencies/README.md diff --git a/3rd-dependencies/README.md b/3rd-dependencies/README.md new file mode 100644 index 000000000..357ca54c2 --- /dev/null +++ b/3rd-dependencies/README.md @@ -0,0 +1,3 @@ +# 3rd Party Dependencies + +Contains listing of all maven (transient) licenses of the project. Is primary used to identify all changes between eclipse releases. From 1c6223ba5d2ab994c405763698fc5b97dd5f7daa Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Thu, 18 Feb 2016 10:12:36 +0100 Subject: [PATCH 10/20] Improved readibility Signed-off-by: Kai Zimmermann --- .../repository/DeploymentManagement.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java index c9b08a554..f266ffac4 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java @@ -380,7 +380,7 @@ public class DeploymentManagement { // flush to get action IDs entityManager.flush(); - // select updated targets in order to return them + // collect updated target and actions IDs in order to return them final DistributionSetAssignmentResult result = new DistributionSetAssignmentResult( targets.stream().map(target -> target.getControllerId()).collect(Collectors.toList()), targets.size(), controllerIDs.size() - targets.size(), @@ -393,12 +393,22 @@ public class DeploymentManagement { // detaching as it is not necessary to persist the set itself entityManager.detach(set); - // send distribution set assignment event + sendDistributionSetAssignmentEvent(targets, targetIdsCancellList, targetIdsToActions, softwareModules); + + return result; + } + + /** + * @param targets + * @param targetIdsCancellList + * @param targetIdsToActions + * @param softwareModules + */ + private void sendDistributionSetAssignmentEvent(final List targets, final Set targetIdsCancellList, + final Map targetIdsToActions, final List softwareModules) { targets.stream().filter(t -> !!!targetIdsCancellList.contains(t.getId())) .forEach(t -> assignDistributionSetEvent(t, targetIdsToActions.get(t.getControllerId()).getId(), softwareModules)); - - return result; } /** From b6509750bc7e623237de5c4b1260f7d30ef2a579 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Thu, 18 Feb 2016 10:22:21 +0100 Subject: [PATCH 11/20] Removed broken javadoc. Signed-off-by: Kai Zimmermann --- .../eclipse/hawkbit/repository/DeploymentManagement.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java index f266ffac4..560549e7e 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/DeploymentManagement.java @@ -398,12 +398,6 @@ public class DeploymentManagement { return result; } - /** - * @param targets - * @param targetIdsCancellList - * @param targetIdsToActions - * @param softwareModules - */ private void sendDistributionSetAssignmentEvent(final List targets, final Set targetIdsCancellList, final Map targetIdsToActions, final List softwareModules) { targets.stream().filter(t -> !!!targetIdsCancellList.contains(t.getId())) From 878af52bc21a801a35a554fd23d4b484242a4d82 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Thu, 18 Feb 2016 12:13:48 +0100 Subject: [PATCH 12/20] Add sonar_lock to git ignore --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index dad7bec10..ba9cf4617 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,11 @@ *.jar *.war +###################### +# Sonar +###################### +.sonar_lock + # Eclipse IDE *.pydevproject From 6b143d6016862829283bbbed48dd7fded178a358 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Fri, 19 Feb 2016 16:30:38 +0100 Subject: [PATCH 13/20] Fixed production mode path --- .../src/main/resources/application.properties | 4 ++-- .../src/main/resources/hawkbitdefaults.properties | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/hawkbit-example-app/src/main/resources/application.properties b/examples/hawkbit-example-app/src/main/resources/application.properties index 7149dbb9c..13ceca40a 100644 --- a/examples/hawkbit-example-app/src/main/resources/application.properties +++ b/examples/hawkbit-example-app/src/main/resources/application.properties @@ -15,8 +15,8 @@ hawkbit.server.controller.security.authentication.gatewaytoken.enabled=false spring.profiles.active=amqp -vaadin.servlet.params.productionMode=false -vaadin.static.servlet.params.productionMode=false +vaadin.servlet.productionMode=false +vaadin.static.servlet.productionMode=false ## Configuration for RabbitMQ integration hawkbit.server.amqp.username=guest diff --git a/hawkbit-autoconfigure/src/main/resources/hawkbitdefaults.properties b/hawkbit-autoconfigure/src/main/resources/hawkbitdefaults.properties index 4020d0cdd..09ae37f90 100644 --- a/hawkbit-autoconfigure/src/main/resources/hawkbitdefaults.properties +++ b/hawkbit-autoconfigure/src/main/resources/hawkbitdefaults.properties @@ -29,10 +29,10 @@ flyway.initOnMigrate=true flyway.sqlMigrationSuffix=${spring.jpa.database}.sql # Vaadin Servlet -vaadin.static.servlet.params.resourceCacheTime=${spring.resources.cache-period} -vaadin.static.servlet.params.productionMode=true -vaadin.servlet.params.productionMode=true -vaadin.servlet.params.resourceCacheTime=${spring.resources.cache-period} +vaadin.static.servlet.resourceCacheTime=${spring.resources.cache-period} +vaadin.static.servlet.productionMode=true +vaadin.servlet.productionMode=true +vaadin.servlet.resourceCacheTime=${spring.resources.cache-period} vaadin.servlet.urlMapping=/UI/* vaadin.servlet.params.heartbeatInterval=60 vaadin.servlet.params.closeIdleSessions=false From b9a2e155fdabe5ffd8fc17b67c2554bd879c36ff Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Sun, 21 Feb 2016 20:50:21 +0100 Subject: [PATCH 14/20] Removed runtime dependencies to sass compiler package --- .../ui/components/SPUIComponentProvider.java | 6 +-- .../management/targettable/TargetTable.java | 49 +++++++++---------- .../ui/rollout/AbstractSimpleTableHeader.java | 2 +- pom.xml | 24 --------- 4 files changed, 27 insertions(+), 54 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/SPUIComponentProvider.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/SPUIComponentProvider.java index 265b1db83..62e16da94 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/SPUIComponentProvider.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/SPUIComponentProvider.java @@ -11,6 +11,7 @@ package org.eclipse.hawkbit.ui.components; import java.util.Arrays; import java.util.Map; +import org.apache.commons.lang3.StringUtils; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.ui.decorators.SPUIButtonDecorator; import org.eclipse.hawkbit.ui.decorators.SPUIComboBoxDecorator; @@ -23,7 +24,6 @@ import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.vaadin.sass.internal.util.StringUtil; import com.vaadin.server.ExternalResource; import com.vaadin.server.FontAwesome; import com.vaadin.server.Resource; @@ -109,7 +109,7 @@ public final class SPUIComponentProvider { // Do we really need this??? HorizontalLayout hLayout = getHorizontalLayout(new SPUIHorizontalLayout().getUiHorizontalLayout().getClass()); try { - SPUIHeaderLayoutDecorator layoutDecorator = null; + SPUIHeaderLayoutDecorator layoutDecorator; if (tableHeaderLayoutDecorator != null) { layoutDecorator = tableHeaderLayoutDecorator.newInstance(); hLayout = layoutDecorator.decorate(hLayout); @@ -324,7 +324,7 @@ public final class SPUIComponentProvider { * @return Label */ public static Label createNameValueLabel(final String label, final String... values) { - final String valueStr = StringUtil.collectionToDelimitedString(Arrays.asList(values), " "); + final String valueStr = StringUtils.join(Arrays.asList(values), " "); final Label nameValueLabel = new Label(getBoldHTMLText(label) + valueStr, ContentMode.HTML); nameValueLabel.setSizeFull(); nameValueLabel.addStyleName(SPUIDefinitions.TEXT_STYLE); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java index 62276346e..9ed202343 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java @@ -73,8 +73,8 @@ import org.vaadin.spring.events.EventBus; import org.vaadin.spring.events.EventScope; import org.vaadin.spring.events.annotation.EventBusListenerMethod; +import com.google.common.base.Strings; import com.google.common.collect.Iterables; -import com.google.gwt.thirdparty.guava.common.base.Strings; import com.vaadin.data.Container; import com.vaadin.data.Item; import com.vaadin.event.Action; @@ -104,6 +104,8 @@ import com.vaadin.ui.themes.ValoTheme; @ViewScope public class TargetTable extends AbstractTable implements Handler { + private static final String TARGET_PINNED = "targetPinned"; + private static final long serialVersionUID = -2300392868806614568L; private static final Logger LOG = LoggerFactory.getLogger(TargetTable.class); @@ -271,7 +273,7 @@ public class TargetTable extends AbstractTable implements Handler { final Map queryConfig = prepareQueryConfigFilters(); // Create TargetBeanQuery factory with the query config. - final BeanQueryFactory targetQF = new BeanQueryFactory(TargetBeanQuery.class); + final BeanQueryFactory targetQF = new BeanQueryFactory<>(TargetBeanQuery.class); targetQF.setQueryConfiguration(queryConfig); // create lazy query container with lazy defination and query @@ -394,7 +396,7 @@ public class TargetTable extends AbstractTable implements Handler { */ @Override protected List getTableVisibleColumns() { - final List columnList = new ArrayList(); + final List columnList = new ArrayList<>(); if (isMaximized()) { columnList.add(new TableColumn(SPUILabelDefinitions.VAR_NAME, i18n.get("header.name"), 0.2f)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_BY, i18n.get("header.createdBy"), 0.1f)); @@ -469,7 +471,7 @@ public class TargetTable extends AbstractTable implements Handler { } private Map prepareQueryConfigFilters() { - final Map queryConfig = new HashMap(); + final Map queryConfig = new HashMap<>(); managementUIState.getTargetTableFilters().getSearchText() .ifPresent(value -> queryConfig.put(SPUIDefinitions.FILTER_BY_TEXT, value)); managementUIState.getTargetTableFilters().getDistributionSet() @@ -481,7 +483,7 @@ public class TargetTable extends AbstractTable implements Handler { queryConfig.put(SPUIDefinitions.FILTER_BY_NO_TAG, managementUIState.getTargetTableFilters().isNoTagSelected()); if (isFilteredByTags()) { - final List list = new ArrayList(); + final List list = new ArrayList<>(); list.addAll(managementUIState.getTargetTableFilters().getClickedTargetTags()); queryConfig.put(SPUIDefinitions.FILTER_BY_TAG, list.toArray(new String[list.size()])); } @@ -522,7 +524,7 @@ public class TargetTable extends AbstractTable implements Handler { pinBtn.setId(SPUIComponetIdProvider.TARGET_PIN_ICON + "." + itemId); pinBtn.addClickListener(event -> addPinClickListener(event)); if (isPinned(((TargetIdName) itemId).getControllerId())) { - pinBtn.addStyleName("targetPinned"); + pinBtn.addStyleName(TARGET_PINNED); isTargetPinned = Boolean.TRUE; targetPinnedBtn = pinBtn; eventBus.publish(this, PinUnpinEvent.PIN_TARGET); @@ -533,7 +535,7 @@ public class TargetTable extends AbstractTable implements Handler { } private boolean isPinned(final String targetId) { - boolean result = false; + boolean result; if (managementUIState.getDistributionTableFilters().getPinnedTargetId().isPresent() && targetId.equals(managementUIState.getDistributionTableFilters().getPinnedTargetId().get())) { result = true; @@ -594,7 +596,7 @@ public class TargetTable extends AbstractTable implements Handler { eventBus.publish(this, PinUnpinEvent.PIN_TARGET); /* change target table styling */ styleTargetTable(); - eventBtn.addStyleName("targetPinned"); + eventBtn.addStyleName(TARGET_PINNED); isTargetPinned = Boolean.FALSE; } @@ -605,7 +607,7 @@ public class TargetTable extends AbstractTable implements Handler { } private void resetPinStyle(final Button pinBtn) { - pinBtn.removeStyleName("targetPinned"); + pinBtn.removeStyleName(TARGET_PINNED); pinBtn.addStyleName(SPUIStyleDefinitions.TARGET_STATUS_PIN_TOGGLE); HawkbitCommonUtil.applyStatusLblStyle(this, pinBtn, pinBtn.getData()); } @@ -644,7 +646,7 @@ public class TargetTable extends AbstractTable implements Handler { final com.vaadin.event.dd.TargetDetails taregtDet = event.getTargetDetails(); final Table targetTable = (Table) taregtDet.getTarget(); final Set targetSelected = HawkbitCommonUtil.getSelectedTargetDetails(targetTable); - final Set targetList = new HashSet(); + final Set targetList = new HashSet<>(); final AbstractSelectTargetDetails dropData = (AbstractSelectTargetDetails) event.getTargetDetails(); final Object targetItemId = dropData.getItemIdOver(); if (!targetSelected.contains(targetItemId)) { @@ -701,9 +703,8 @@ public class TargetTable extends AbstractTable implements Handler { private static Set getDraggedDistributionSet(final TableTransferable transferable, final Table source) { - @SuppressWarnings("unchecked") final Set distSelected = HawkbitCommonUtil.getSelectedDSDetails(source); - final Set distributionIdSet = new HashSet(); + final Set distributionIdSet = new HashSet<>(); if (!distSelected.contains(transferable.getData(ITEMID))) { distributionIdSet.add((DistributionSetIdName) transferable.getData(ITEMID)); } else { @@ -828,15 +829,11 @@ public class TargetTable extends AbstractTable implements Handler { } } - /** - * @param filterEvent - * @return - */ - private boolean checkFilterEvent(final TargetFilterEvent filterEvent) { - boolean isFilterEvent = false; - boolean isFilter = false; - boolean isRemoveFilters = false; - boolean isStatusFilter = false; + private static boolean checkFilterEvent(final TargetFilterEvent filterEvent) { + boolean isFilterEvent; + boolean isFilter; + boolean isRemoveFilters; + boolean isStatusFilter; isFilter = filterEvent == TargetFilterEvent.FILTER_BY_TEXT || filterEvent == TargetFilterEvent.FILTER_BY_TAG || filterEvent == TargetFilterEvent.FILTER_BY_DISTRIBUTION || filterEvent == TargetFilterEvent.FILTER_BY_TARGET_FILTER_QUERY; @@ -1020,11 +1017,11 @@ public class TargetTable extends AbstractTable implements Handler { private List getTargetIdsBySimpleFilters(final PageRequest pageRequest) { final Long filterByDistId = managementUIState.getTargetTableFilters().getDistributionSet().isPresent() ? managementUIState.getTargetTableFilters().getDistributionSet().get().getId() : null; - final List statusList = new ArrayList(); + final List statusList = new ArrayList<>(); if (isFilteredByStatus()) { statusList.addAll(managementUIState.getTargetTableFilters().getClickedStatusTargetTags()); } - final List tagList = new ArrayList(); + final List tagList = new ArrayList<>(); if (isFilteredByTags()) { tagList.addAll(managementUIState.getTargetTableFilters().getClickedTargetTags()); } @@ -1081,7 +1078,7 @@ public class TargetTable extends AbstractTable implements Handler { String[] targetTags = null; Long distributionId = null; String searchText = null; - Boolean noTagClicked = Boolean.FALSE; + Boolean noTagClicked; Long pinnedDistId = null; if (isFilteredByTags()) { @@ -1129,13 +1126,13 @@ public class TargetTable extends AbstractTable implements Handler { && !Strings.isNullOrEmpty(managementUIState.getTargetTableFilters().getSearchText().get()); } - private Boolean anyFilterSelected(final Collection status, final Long distributionId, + private static Boolean anyFilterSelected(final Collection status, final Long distributionId, final Boolean noTagClicked, final String[] targetTags, final String searchText) { return status == null && distributionId == null && Strings.isNullOrEmpty(searchText) && !isTagSelected(targetTags, noTagClicked); } - private Boolean isTagSelected(final String[] targetTags, final Boolean noTagClicked) { + private static Boolean isTagSelected(final String[] targetTags, final Boolean noTagClicked) { return targetTags == null && !noTagClicked; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/AbstractSimpleTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/AbstractSimpleTableHeader.java index c51c02fe4..38f59b270 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/AbstractSimpleTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/AbstractSimpleTableHeader.java @@ -15,7 +15,7 @@ import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions; import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions; -import com.google.gwt.thirdparty.guava.common.base.Strings; +import com.google.common.base.Strings; import com.vaadin.server.FontAwesome; import com.vaadin.ui.AbstractTextField.TextChangeEventMode; import com.vaadin.ui.Alignment; diff --git a/pom.xml b/pom.xml index aa188e76a..82163f1d3 100644 --- a/pom.xml +++ b/pom.xml @@ -363,30 +363,6 @@ vaadin-push ${vaadin.version} - - - com.vaadin - vaadin-client-compiler - ${vaadin.version} - provided - - - org.eclipse.jetty - jetty-servlets - - - org.eclipse.jetty - jetty-annotations - - - org.eclipse.jetty - jetty-util - - - com.vaadin vaadin-themes From 13345406ee2e9d7355b89802c210d549606cf7a4 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Mon, 22 Feb 2016 11:01:47 +0100 Subject: [PATCH 15/20] Upgraded 3rd party libs --- .../hawkbit/artifact/MongoDBTestRule.java | 2 +- .../AbstractIntegrationTestWithMongoDB.java | 2 +- pom.xml | 41 +++++++++++-------- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/hawkbit-artifact-repository-mongo/src/test/java/org/eclipse/hawkbit/artifact/MongoDBTestRule.java b/hawkbit-artifact-repository-mongo/src/test/java/org/eclipse/hawkbit/artifact/MongoDBTestRule.java index d8485787e..f5d88ceaa 100644 --- a/hawkbit-artifact-repository-mongo/src/test/java/org/eclipse/hawkbit/artifact/MongoDBTestRule.java +++ b/hawkbit-artifact-repository-mongo/src/test/java/org/eclipse/hawkbit/artifact/MongoDBTestRule.java @@ -88,7 +88,7 @@ public class MongoDBTestRule implements TestRule { System.setProperty("spring.data.mongodb.port", String.valueOf(port)); } - Version version = Version.V3_1_0; + Version version = Version.V3_0_8; if (System.getProperty("inf.mongodb.version") != null) { version = Version.valueOf("V" + System.getProperty("inf.mongodb.version").trim().replaceAll("\\.", "_")); } diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/AbstractIntegrationTestWithMongoDB.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/AbstractIntegrationTestWithMongoDB.java index eb2174a57..6d116c5f0 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/AbstractIntegrationTestWithMongoDB.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/AbstractIntegrationTestWithMongoDB.java @@ -55,7 +55,7 @@ public abstract class AbstractIntegrationTestWithMongoDB extends AbstractIntegra System.setProperty("spring.data.mongodb.port", String.valueOf(port)); } - Version version = Version.V3_0_5; + Version version = Version.V3_0_8; if (System.getProperty("inf.mongodb.version") != null) { version = Version .valueOf("V" + System.getProperty("inf.mongodb.version").trim().replaceAll("\\.", "_")); diff --git a/pom.xml b/pom.xml index aa188e76a..99471bb93 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ org.springframework.boot spring-boot-starter-parent - 1.2.7.RELEASE + 1.2.8.RELEASE org.eclipse.hawkbit @@ -57,42 +57,49 @@ - 1.2.7.RELEASE + 1.2.8.RELEASE - - 1.4.186 + + 2.5.0 5.2.2.Final - Fowler-SR1 1.2.0.RELEASE - 3.0.2 - + + Fowler-SR1 + 3.2.2 + 1.0.0 0.0.6.RELEASE - 7.5.7 + 7.5.10 ${vaadin.version} - + 1.4 2.0M10 - 1.8 1.4.15 - 2.6.0 + 2.6.2 1.5.4 1.0.2 0.9.1 3.4 1.8.5 + 19.0 + 1.3.5 + 1.50.2 + + + 1.8 - + scm:git:https://github.com/eclipse/hawkbit.git scm:git:https://github.com/eclipse/hawkbit.git https://github.com/eclipse/hawkbit.git + - + https://sonar.eu-gb.mybluemix.net eclipse/hawkbit jacoco @@ -123,7 +130,7 @@ ${jacoco.outputDir}/${jacoco.out.it.file} - 19.0 + @@ -335,7 +342,7 @@ org.slf4j slf4j-api - 1.7.7 + ${slf4j.version} @@ -582,7 +589,7 @@ de.flapdoodle.embed de.flapdoodle.embed.mongo - 1.50.0 + ${embedded-mongo.version} test @@ -624,7 +631,7 @@ org.mariadb.jdbc mariadb-java-client - 1.2.3 + ${mariadb-java-client.version} test From cf3adaac63c62886b4e5fc24c72c0e87e05ee511 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Mon, 22 Feb 2016 12:20:56 +0100 Subject: [PATCH 16/20] Cleaned up POM --- pom.xml | 65 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/pom.xml b/pom.xml index 99471bb93..67dbdadd9 100644 --- a/pom.xml +++ b/pom.xml @@ -74,6 +74,11 @@ 0.0.6.RELEASE 7.5.10 ${vaadin.version} + 7.4.0.1 + 2.2.0 + 7.0.1 + 1.2.0 + 4.5 @@ -84,11 +89,18 @@ 1.5.4 1.0.2 0.9.1 - 3.4 1.8.5 19.0 1.3.5 1.50.2 + 1.18.1 + 2.2.4 + 1.1.7 + 1.1 + 1.1.1 + 3.4 + 20141113 + 2.0.0 1.8 @@ -402,44 +414,44 @@ org.vaadin.addons.lazyquerycontainer vaadin-lazyquerycontainer - 7.4.0.1 + ${vaadin.addon.vaadin-lazyquerycontainer.version} org.vaadin.addons flexibleoptiongroup - 2.2.0 + ${vaadin.addon.flexibleoptiongroup.version} org.vaadin.addons tokenfield - 7.0.1 + ${vaadin.addon.tokenfield.version} org.vaadin.alump.distributionbar dbar-addon - 1.2.0 + ${vaadin.addon.dbar-addon.version} org.vaadin.addons contextmenu - 4.5 + ${vaadin.addon.contextmenu.version} javax.el javax.el-api - 2.2.4 + ${javax.el-api.version} net.sf.corn corn-cps - 1.1.7 + ${corn-cps.version} net._01001111 jlorem - 1.1 + ${jlorem.version} @@ -521,13 +533,6 @@ - - - com.fasterxml - classmate - 1.3.0 - org.eclipse.persistence org.eclipse.persistence.jpa @@ -537,7 +542,7 @@ cz.jirutka.rsql rsql-parser - 2.0.0 + ${rsql-parser.version} @@ -548,7 +553,7 @@ com.googlecode.json-simple json-simple - 1.1.1 + ${json-simple.version} junit @@ -556,13 +561,13 @@ - - - xml-apis - xml-apis - 1.4.01 + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} - + org.springframework.boot spring-boot-starter-test @@ -574,16 +579,10 @@ - - com.vaadin - vaadin-testbench - 4.0.3 - test - org.json json - 20141113 + ${json.version} test @@ -613,7 +612,7 @@ com.sun.jersey jersey-client - 1.18.1 + ${jersey-client.version} test @@ -625,7 +624,7 @@ com.jayway.jsonpath json-path-assert - 0.9.1 + ${json-path.version} test From 713922d7624077a2e33b62f8651c32c413e1c7c1 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Mon, 22 Feb 2016 12:21:14 +0100 Subject: [PATCH 17/20] Remove broken spring property usage for vaadin caching --- .../src/main/resources/hawkbitdefaults.properties | 2 -- 1 file changed, 2 deletions(-) diff --git a/hawkbit-autoconfigure/src/main/resources/hawkbitdefaults.properties b/hawkbit-autoconfigure/src/main/resources/hawkbitdefaults.properties index 09ae37f90..98749a384 100644 --- a/hawkbit-autoconfigure/src/main/resources/hawkbitdefaults.properties +++ b/hawkbit-autoconfigure/src/main/resources/hawkbitdefaults.properties @@ -29,10 +29,8 @@ flyway.initOnMigrate=true flyway.sqlMigrationSuffix=${spring.jpa.database}.sql # Vaadin Servlet -vaadin.static.servlet.resourceCacheTime=${spring.resources.cache-period} vaadin.static.servlet.productionMode=true vaadin.servlet.productionMode=true -vaadin.servlet.resourceCacheTime=${spring.resources.cache-period} vaadin.servlet.urlMapping=/UI/* vaadin.servlet.params.heartbeatInterval=60 vaadin.servlet.params.closeIdleSessions=false From 8507ae2bd3cf0baece719f8865215d7ba5559512 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Tue, 23 Feb 2016 11:14:48 +0100 Subject: [PATCH 18/20] Moved java version on top --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 67dbdadd9..e5ac3ca26 100644 --- a/pom.xml +++ b/pom.xml @@ -57,6 +57,8 @@ + 1.8 + 1.2.8.RELEASE @@ -102,8 +104,6 @@ 20141113 2.0.0 - - 1.8 scm:git:https://github.com/eclipse/hawkbit.git From 6a5a3f2188b18f1168766987578eab4a62b36f7b Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Tue, 23 Feb 2016 11:34:36 +0100 Subject: [PATCH 19/20] Cleaned up code --- .../ui/components/SPUIComponentProvider.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/SPUIComponentProvider.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/SPUIComponentProvider.java index 62e16da94..5b2e4ed9a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/SPUIComponentProvider.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/components/SPUIComponentProvider.java @@ -108,16 +108,16 @@ public final class SPUIComponentProvider { final Class tableHeaderLayoutDecorator) { // Do we really need this??? HorizontalLayout hLayout = getHorizontalLayout(new SPUIHorizontalLayout().getUiHorizontalLayout().getClass()); + + if (tableHeaderLayoutDecorator == null) { + return hLayout; + } + try { - SPUIHeaderLayoutDecorator layoutDecorator; - if (tableHeaderLayoutDecorator != null) { - layoutDecorator = tableHeaderLayoutDecorator.newInstance(); - hLayout = layoutDecorator.decorate(hLayout); - } - } catch (final InstantiationException exception) { - LOG.error("Error occured while creating horizontal decorator " + SPUIHeaderLayoutDecorator.class, - exception); - } catch (final IllegalAccessException exception) { + final SPUIHeaderLayoutDecorator layoutDecorator = tableHeaderLayoutDecorator.newInstance(); + hLayout = layoutDecorator.decorate(hLayout); + + } catch (final InstantiationException | IllegalAccessException exception) { LOG.error("Error occured while creating horizontal decorator " + SPUIHeaderLayoutDecorator.class, exception); } From 1db0d6a5e98c3191e67ba305f4fde0d87741c743 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Tue, 23 Feb 2016 13:10:33 +0100 Subject: [PATCH 20/20] Upgraded to newer jackson and hibernate validator version --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index e5ac3ca26..f5ec54435 100644 --- a/pom.xml +++ b/pom.xml @@ -63,8 +63,8 @@ - 2.5.0 - 5.2.2.Final + 2.5.5 + 5.2.4.Final 1.2.0.RELEASE Fowler-SR1