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 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. 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-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-autoconfigure/src/main/resources/hawkbitdefaults.properties b/hawkbit-autoconfigure/src/main/resources/hawkbitdefaults.properties index 4020d0cdd..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.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.productionMode=true +vaadin.servlet.productionMode=true vaadin.servlet.urlMapping=/UI/* vaadin.servlet.params.heartbeatInterval=60 vaadin.servlet.params.closeIdleSessions=false diff --git a/hawkbit-cache-redis/src/main/java/org/eclipse/hawkbit/cache/RedisConfiguration.java b/hawkbit-cache-redis/src/main/java/org/eclipse/hawkbit/cache/RedisConfiguration.java index 2d1b99c98..acf50ad3f 100644 --- a/hawkbit-cache-redis/src/main/java/org/eclipse/hawkbit/cache/RedisConfiguration.java +++ b/hawkbit-cache-redis/src/main/java/org/eclipse/hawkbit/cache/RedisConfiguration.java @@ -75,7 +75,7 @@ public class RedisConfiguration { */ @Bean public RedisTemplate redisTemplate() { - final RedisTemplate redisTemplate = new RedisTemplate(); + final RedisTemplate redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(jedisConnectionFactory()); redisTemplate.setKeySerializer(new JdkSerializationRedisSerializer()); redisTemplate.setHashValueSerializer(new JdkSerializationRedisSerializer()); diff --git a/hawkbit-cache-redis/src/main/java/org/eclipse/hawkbit/cache/eventbus/EventDistributor.java b/hawkbit-cache-redis/src/main/java/org/eclipse/hawkbit/cache/eventbus/EventDistributor.java index e52128cbc..8749340f0 100644 --- a/hawkbit-cache-redis/src/main/java/org/eclipse/hawkbit/cache/eventbus/EventDistributor.java +++ b/hawkbit-cache-redis/src/main/java/org/eclipse/hawkbit/cache/eventbus/EventDistributor.java @@ -95,7 +95,7 @@ public class EventDistributor { * wants to subscribe */ public Collection getTopics() { - final List topics = new ArrayList(); + final List topics = new ArrayList<>(); topics.add(new PatternTopic(SUB_DISTRIBUTION_CHANNEL)); return topics; } diff --git a/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpControllerAuthentficationTest.java b/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpControllerAuthentficationTest.java index 9d41df1ad..e8b8a089b 100644 --- a/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpControllerAuthentficationTest.java +++ b/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpControllerAuthentficationTest.java @@ -45,7 +45,7 @@ import ru.yandex.qatools.allure.annotations.Stories; /** * - * + * Test Amqp controller authentfication. */ @Features("AMQP Authenfication Test") @Stories("Tests the authenfication") @@ -82,24 +82,34 @@ public class AmqpControllerAuthentficationTest { amqpMessageHandlerService.setAuthenticationManager(authenticationManager); } - @Test(expected = BadCredentialsException.class) + @Test @Description("Tests authentication manager without principal") public void testAuthenticationeBadCredantialsWithoutPricipal() { final TenantSecruityToken securityToken = new TenantSecruityToken(TENANT, CONTROLLLER_ID, "12345"); - authenticationManager.doAuthenticate(securityToken); - fail(); + try { + authenticationManager.doAuthenticate(securityToken); + fail("BadCredentialsException was excepeted since principal was missing"); + } catch (final BadCredentialsException exception) { + // test ok - exception was excepted + } + } - @Test(expected = BadCredentialsException.class) - @Description("Tests authentication manager without wrong credential") + @Test + @Description("Tests authentication manager without wrong credential") public void testAuthenticationBadCredantialsWithWrongCredential() { final TenantSecruityToken securityToken = new TenantSecruityToken(TENANT, CONTROLLLER_ID, "12345"); when(systemManagement.getConfigurationValue( eq(TenantConfigurationKey.AUTHENTICATION_MODE_TARGET_SECURITY_TOKEN_ENABLED), any())) .thenReturn(Boolean.TRUE); securityToken.getHeaders().put(TenantSecruityToken.AUTHORIZATION_HEADER, "TargetToken 12" + CONTROLLLER_ID); - authenticationManager.doAuthenticate(securityToken); - fail(); + try { + authenticationManager.doAuthenticate(securityToken); + fail("BadCredentialsException was excepeted due to wrong credential"); + } catch (final BadCredentialsException exception) { + // test ok - exception was excepted + } + } @Test diff --git a/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherServiceTest.java b/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherServiceTest.java index 4e6e74ea6..4c8300bfd 100644 --- a/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherServiceTest.java +++ b/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherServiceTest.java @@ -93,7 +93,8 @@ public class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTestWit amqpMessageDispatcherService.targetAssignDistributionSet(targetAssignDistributionSetEvent); final Message sendMessage = createArgumentCapture(targetAssignDistributionSetEvent.getTargetAdress()); final DownloadAndUpdateRequest downloadAndUpdateRequest = assertDownloadAndInstallMessage(sendMessage); - assertTrue(downloadAndUpdateRequest.getSoftwareModules().isEmpty()); + assertTrue("No softwaremmodule should be contained in the request", + downloadAndUpdateRequest.getSoftwareModules().isEmpty()); } @Test @@ -106,17 +107,22 @@ public class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTestWit amqpMessageDispatcherService.targetAssignDistributionSet(targetAssignDistributionSetEvent); final Message sendMessage = createArgumentCapture(targetAssignDistributionSetEvent.getTargetAdress()); final DownloadAndUpdateRequest downloadAndUpdateRequest = assertDownloadAndInstallMessage(sendMessage); - assertEquals(3, downloadAndUpdateRequest.getSoftwareModules().size()); + assertEquals("Expecting a size of 3 software modules in the reuqest", 3, + downloadAndUpdateRequest.getSoftwareModules().size()); for (final org.eclipse.hawkbit.dmf.json.model.SoftwareModule softwareModule : downloadAndUpdateRequest .getSoftwareModules()) { - assertTrue(softwareModule.getArtifacts().isEmpty()); + assertTrue("Artifact list for softwaremodule should be empty", softwareModule.getArtifacts().isEmpty()); for (final SoftwareModule softwareModule2 : dsA.getModules()) { - assertNotNull(softwareModule.getModuleId()); + assertNotNull("Sofware module ID should be set", softwareModule.getModuleId()); if (!softwareModule.getModuleId().equals(softwareModule2.getId())) { continue; } - assertEquals(softwareModule.getModuleType(), softwareModule2.getType().getKey()); - assertEquals(softwareModule.getModuleVersion(), softwareModule2.getVersion()); + assertEquals( + "Software module type in event should be the same as the softwaremodule in the distribution set", + softwareModule.getModuleType(), softwareModule2.getType().getKey()); + assertEquals( + "Software module version in event should be the same as the softwaremodule in the distribution set", + softwareModule.getModuleVersion(), softwareModule2.getVersion()); } } } @@ -140,13 +146,14 @@ public class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTestWit amqpMessageDispatcherService.targetAssignDistributionSet(targetAssignDistributionSetEvent); final Message sendMessage = createArgumentCapture(targetAssignDistributionSetEvent.getTargetAdress()); final DownloadAndUpdateRequest downloadAndUpdateRequest = assertDownloadAndInstallMessage(sendMessage); - assertEquals(3, downloadAndUpdateRequest.getSoftwareModules().size()); + assertEquals("DownloadAndUpdateRequest event should contains 3 software modules", 3, + downloadAndUpdateRequest.getSoftwareModules().size()); for (final org.eclipse.hawkbit.dmf.json.model.SoftwareModule softwareModule : downloadAndUpdateRequest .getSoftwareModules()) { if (!softwareModule.getModuleId().equals(module.getId())) { continue; } - assertFalse(softwareModule.getArtifacts().isEmpty()); + assertFalse("The software module artifacts should not be empty", softwareModule.getArtifacts().isEmpty()); } } @@ -165,8 +172,8 @@ public class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTestWit private void assertCancelMessage(final Message sendMessage) { assertEventMessage(sendMessage); final Long actionId = convertMessage(sendMessage, Long.class); - assertEquals(actionId, Long.valueOf(1)); - assertEquals(EventTopic.CANCEL_DOWNLOAD, + assertEquals("Action ID should be 1", actionId, Long.valueOf(1)); + assertEquals("The topc in the message should be a CANCEL_DOWNLOAD value", EventTopic.CANCEL_DOWNLOAD, sendMessage.getMessageProperties().getHeaders().get(MessageHeaderKey.TOPIC)); } @@ -175,8 +182,9 @@ public class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTestWit assertEventMessage(sendMessage); final DownloadAndUpdateRequest downloadAndUpdateRequest = convertMessage(sendMessage, DownloadAndUpdateRequest.class); - assertEquals(downloadAndUpdateRequest.getActionId(), Long.valueOf(1)); - assertEquals(EventTopic.DOWNLOAD_AND_INSTALL, + assertEquals("The action ID of the downloadAndUpdateRequest event shuold be 1", + downloadAndUpdateRequest.getActionId(), Long.valueOf(1)); + assertEquals("The topic of the event shuold contain DOWNLOAD_AND_INSTALL", EventTopic.DOWNLOAD_AND_INSTALL, sendMessage.getMessageProperties().getHeaders().get(MessageHeaderKey.TOPIC)); return downloadAndUpdateRequest; @@ -186,11 +194,14 @@ public class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTestWit * @param sendMessage */ private void assertEventMessage(final Message sendMessage) { - assertNotNull(sendMessage); + assertNotNull("The message should not be null", sendMessage); - assertEquals(CONTROLLER_ID, sendMessage.getMessageProperties().getHeaders().get(MessageHeaderKey.THING_ID)); - assertEquals(MessageType.EVENT, sendMessage.getMessageProperties().getHeaders().get(MessageHeaderKey.TYPE)); - assertEquals(MessageProperties.CONTENT_TYPE_JSON, sendMessage.getMessageProperties().getContentType()); + assertEquals("The value of the message header THING_ID should be " + CONTROLLER_ID, CONTROLLER_ID, + sendMessage.getMessageProperties().getHeaders().get(MessageHeaderKey.THING_ID)); + assertEquals("The value of the message header TYPE should be EVENT", MessageType.EVENT, + sendMessage.getMessageProperties().getHeaders().get(MessageHeaderKey.TYPE)); + assertEquals("The content type message should be " + MessageProperties.CONTENT_TYPE_JSON, + MessageProperties.CONTENT_TYPE_JSON, sendMessage.getMessageProperties().getContentType()); } protected Message createArgumentCapture(final URI uri) { diff --git a/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerServiceTest.java b/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerServiceTest.java index 860403f0c..9bc2f2da7 100644 --- a/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerServiceTest.java +++ b/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerServiceTest.java @@ -133,18 +133,16 @@ public class AmqpMessageHandlerServiceTest { messageProperties.setHeader(MessageHeaderKey.THING_ID, "1"); final Message message = messageConverter.toMessage(new byte[0], messageProperties); - // mock final ArgumentCaptor targetIdCaptor = ArgumentCaptor.forClass(String.class); final ArgumentCaptor uriCaptor = ArgumentCaptor.forClass(URI.class); when(controllerManagementMock.findOrRegisterTargetIfItDoesNotexist(targetIdCaptor.capture(), uriCaptor.capture())).thenReturn(null); - // test amqpMessageHandlerService.onMessage(message, MessageType.THING_CREATED.name(), TENANT, "vHost"); // verify - assertThat(targetIdCaptor.getValue()).isEqualTo(knownThingId); - assertThat(uriCaptor.getValue().toString()).isEqualTo("amqp://vHost/MyTest"); + assertThat(targetIdCaptor.getValue()).as("Thing id is wrong").isEqualTo(knownThingId); + assertThat(uriCaptor.getValue().toString()).as("Uri is not right").isEqualTo("amqp://vHost/MyTest"); } @@ -271,8 +269,9 @@ public class AmqpMessageHandlerServiceTest { // verify final DownloadResponse downloadResponse = (DownloadResponse) messageConverter.fromMessage(onMessage); - assertThat(downloadResponse).isNotNull(); - assertThat(downloadResponse.getResponseCode()).isEqualTo(HttpStatus.NOT_FOUND.value()); + assertThat(downloadResponse).as("Message body should not null").isNotNull(); + assertThat(downloadResponse.getResponseCode()).as("Message body response code is wrong") + .isEqualTo(HttpStatus.NOT_FOUND.value()); } @Test @@ -294,8 +293,9 @@ public class AmqpMessageHandlerServiceTest { // verify final DownloadResponse downloadResponse = (DownloadResponse) messageConverter.fromMessage(onMessage); - assertThat(downloadResponse).isNotNull(); - assertThat(downloadResponse.getResponseCode()).isEqualTo(HttpStatus.NOT_FOUND.value()); + assertThat(downloadResponse).as("Message body should not null").isNotNull(); + assertThat(downloadResponse.getResponseCode()).as("Message body response code is wrong") + .isEqualTo(HttpStatus.NOT_FOUND.value()); } @Test @@ -325,9 +325,10 @@ public class AmqpMessageHandlerServiceTest { // verify final DownloadResponse downloadResponse = (DownloadResponse) messageConverter.fromMessage(onMessage); - assertThat(downloadResponse).isNotNull(); - assertThat(downloadResponse.getResponseCode()).isEqualTo(HttpStatus.OK.value()); - assertThat(downloadResponse.getArtifact().getSize()).isEqualTo(1L); + assertThat(downloadResponse).as("Message body should not null").isNotNull(); + assertThat(downloadResponse.getResponseCode()).as("Message body response code is wrong") + .isEqualTo(HttpStatus.OK.value()); + assertThat(downloadResponse.getArtifact().getSize()).as("Wrong artifact size in message body").isEqualTo(1L); assertThat(downloadResponse.getDownloadUrl()).startsWith("http://localhost/api/v1/downloadserver/downloadId/"); } @@ -364,9 +365,11 @@ public class AmqpMessageHandlerServiceTest { final TargetAssignDistributionSetEvent targetAssignDistributionSetEvent = captorTargetAssignDistributionSetEvent .getValue(); - assertThat(targetAssignDistributionSetEvent.getControllerId()).isEqualTo("target1"); - assertThat(targetAssignDistributionSetEvent.getActionId()).isEqualTo(22L); - assertThat(targetAssignDistributionSetEvent.getSoftwareModules()).isEqualTo(softwareModuleList); + assertThat(targetAssignDistributionSetEvent.getControllerId()).as("event has wrong controller id") + .isEqualTo("target1"); + assertThat(targetAssignDistributionSetEvent.getActionId()).as("event has wrong action id").isEqualTo(22L); + assertThat(targetAssignDistributionSetEvent.getSoftwareModules()).as("event has wrong sofware modules") + .isEqualTo(softwareModuleList); } diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/report/model/ListReportSeries.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/report/model/ListReportSeries.java index 55125e046..79c496480 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/report/model/ListReportSeries.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/report/model/ListReportSeries.java @@ -21,7 +21,7 @@ import java.util.List; */ public class ListReportSeries extends AbstractReportSeries { - private final List data = new ArrayList(); + private final List data = new ArrayList<>(); /** * @param name 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..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,19 +37,9 @@ 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. - * + * * @param actionId * the ID of the action * @return the found {@link Action} @@ -67,13 +57,12 @@ 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); /** * Retrieves all {@link Action}s which are referring the given * {@link Target}. - * + * * @param pageable * page parameters * @param target @@ -84,8 +73,9 @@ 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 * @param target @@ -125,14 +115,13 @@ 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); /** * 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 +132,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 @@ -159,8 +148,9 @@ 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 * @param active @@ -174,7 +164,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 +180,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 +200,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 +217,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 +233,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 +259,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 +271,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 +290,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 +301,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 +316,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 +333,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 +345,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 +356,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 +367,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 +378,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/ControllerManagement.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java index 844bbd097..e4a1e5e6b 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java @@ -15,7 +15,6 @@ import java.util.Map; import javax.persistence.EntityManager; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import javax.validation.constraints.NotNull; @@ -212,14 +211,9 @@ public class ControllerManagement implements EnvironmentAware { @Modifying @Transactional @PreAuthorize(SpringEvalExpressions.IS_CONTROLLER) - public Target findOrRegisterTargetIfItDoesNotexist(@NotNull final String targetid, final URI address) { - final Specification spec = new Specification() { - @Override - public Predicate toPredicate(final Root targetRoot, final CriteriaQuery query, - final CriteriaBuilder cb) { - return cb.equal(targetRoot.get(Target_.controllerId), targetid); - } - }; + public Target findOrRegisterTargetIfItDoesNotexist(@NotEmpty final String targetid, final URI address) { + final Specification spec = (targetRoot, query, cb) -> cb.equal(targetRoot.get(Target_.controllerId), + targetid); Target target = targetRepository.findOne(spec); @@ -229,9 +223,9 @@ public class ControllerManagement implements EnvironmentAware { target.setName(targetid); return targetManagement.createTarget(target, TargetUpdateStatus.REGISTERED, System.currentTimeMillis(), address); - } else { - return updateLastTargetQuery(target.getTargetInfo(), address).getTarget(); } + + return updateLastTargetQuery(target.getTargetInfo(), address).getTarget(); } /** 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..236816192 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 @@ -330,7 +330,7 @@ public class DeploymentManagement { // one we have been switched to canceling state because for targets // which we have changed to // canceling we don't want to publish the new action update event. - final Set targetIdsCancellList = new HashSet(); + final Set targetIdsCancellList = new HashSet<>(); targetIds.forEach(ids -> targetIdsCancellList.addAll(overrideObsoleteUpdateActions(ids))); // cancel all scheduled actions which are in-active, these actions were @@ -378,11 +378,13 @@ public class DeploymentManagement { actionStatusRepository.save(actionStatus); }); - // select updated targets in order to return them + // flush to get action IDs + entityManager.flush(); + // 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(), 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); @@ -391,13 +393,16 @@ 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; + } + + 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; } /** @@ -430,7 +435,7 @@ public class DeploymentManagement { */ private Set overrideObsoleteUpdateActions(final List targetsIds) { - final Set cancelledTargetIds = new HashSet(); + final Set cancelledTargetIds = new HashSet<>(); // Figure out if there are potential target/action combinations that // need to be considered @@ -709,8 +714,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 @@ -774,8 +779,7 @@ public class DeploymentManagement { multiselect.where(cb.equal(actionRoot.get(Action_.target), target)); multiselect.orderBy(cb.desc(actionRoot.get(Action_.id))); multiselect.groupBy(actionRoot.get(Action_.id)); - final List resultList = entityManager.createQuery(multiselect).getResultList(); - return resultList; + return entityManager.createQuery(multiselect).getResultList(); } /** 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/main/java/org/eclipse/hawkbit/repository/NoCountPagingRepository.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/NoCountPagingRepository.java index 4290607fd..79f54a3f0 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/NoCountPagingRepository.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/NoCountPagingRepository.java @@ -57,7 +57,7 @@ public class NoCountPagingRepository { */ public Slice findAll(final Specification spec, final Pageable pageable, final Class domainClass) { - final SimpleJpaNoCountRepository noCountDao = new SimpleJpaNoCountRepository(domainClass, em); + final SimpleJpaNoCountRepository noCountDao = new SimpleJpaNoCountRepository<>(domainClass, em); return noCountDao.findAll(spec, pageable); } @@ -76,7 +76,7 @@ public class NoCountPagingRepository { * org.springframework.data.domain.Pageable) */ public Slice findAll(final Pageable pageable, final Class domainClass) { - final SimpleJpaNoCountRepository noCountDao = new SimpleJpaNoCountRepository(domainClass, em); + final SimpleJpaNoCountRepository noCountDao = new SimpleJpaNoCountRepository<>(domainClass, em); return noCountDao.findAll(pageable); } @@ -120,7 +120,7 @@ public class NoCountPagingRepository { final List content = query.getResultList(); - return new PageImpl(content, pageable, content.size()); + return new PageImpl<>(content, pageable, content.size()); } } } diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/RolloutGroupManagement.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/RolloutGroupManagement.java index e98439b57..54ff37e87 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/RolloutGroupManagement.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/RolloutGroupManagement.java @@ -245,8 +245,9 @@ public class RolloutGroupManagement { JoinType.LEFT); final Root countQueryFrom = countQuery.distinct(true).from(RolloutTargetGroup.class); - countQuery - .select(cb.count(countQueryFrom.join(RolloutTargetGroup_.target).join(Target_.actions, JoinType.LEFT))) + countQueryFrom.join(RolloutTargetGroup_.target); + countQueryFrom.join(RolloutTargetGroup_.actions, JoinType.LEFT); + countQuery.select(cb.count(countQueryFrom)) .where(cb.equal(countQueryFrom.get(RolloutTargetGroup_.rolloutGroup), rolloutGroup)); final Long totalCount = entityManager.createQuery(countQuery).getSingleResult(); diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/RolloutManagement.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/RolloutManagement.java index 0d3bc62c6..1573048ec 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/RolloutManagement.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/RolloutManagement.java @@ -552,7 +552,7 @@ public class RolloutManagement { if (updated == 0) { // nothing to check, maybe another instance already checked in // between - LOGGER.info("No rolloutcheck necessary for current scheduled check {}, next check at {}", lastCheck, + LOGGER.debug("No rolloutcheck necessary for current scheduled check {}, next check at {}", lastCheck, lastCheck + delayBetweenChecks); return; } diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/TagManagement.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/TagManagement.java index 4d8b4ff5c..e0ab951ac 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/TagManagement.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/TagManagement.java @@ -160,7 +160,7 @@ public class TagManagement { public void deleteTargetTag(@NotEmpty final String targetTagName) { final TargetTag tag = targetTagRepository.findByNameEquals(targetTagName); - final List changed = new LinkedList(); + final List changed = new LinkedList<>(); for (final Target target : targetRepository.findByTag(tag)) { target.getTags().remove(tag); changed.add(target); @@ -311,7 +311,7 @@ public class TagManagement { public void deleteDistributionSetTag(@NotEmpty final String tagName) { final DistributionSetTag tag = distributionSetTagRepository.findByNameEquals(tagName); - final List changed = new LinkedList(); + final List changed = new LinkedList<>(); for (final DistributionSet set : distributionSetRepository.findByTag(tag)) { set.getTags().remove(tag); changed.add(set); 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..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 @@ -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; @@ -34,28 +35,22 @@ 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"), @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/main/java/org/eclipse/hawkbit/repository/model/ActionStatus.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/ActionStatus.java index 28389ab01..2b0effae9 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/ActionStatus.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/ActionStatus.java @@ -63,7 +63,7 @@ public class ActionStatus extends BaseEntity { @CollectionTable(name = "sp_action_status_messages", joinColumns = @JoinColumn(name = "action_status_id", foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_stat_msg_act_stat") ) , indexes = { @Index(name = "sp_idx_action_status_msgs_01", columnList = "action_status_id") }) @Column(name = "detail_message", length = 512) - private final List messages = new ArrayList(); + private final List messages = new ArrayList<>(); /** * Creates a new {@link ActionStatus} object. diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/Target.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/Target.java index 6de84ccaa..bb7781733 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/Target.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/Target.java @@ -32,6 +32,8 @@ import javax.persistence.PrimaryKeyJoinColumn; import javax.persistence.Table; import javax.persistence.Transient; import javax.persistence.UniqueConstraint; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; import org.eclipse.hawkbit.im.authentication.SpPermission; import org.eclipse.hawkbit.repository.model.helper.SecurityChecker; @@ -74,6 +76,8 @@ public class Target extends NamedEntity implements Persistable { private static final long serialVersionUID = 1L; @Column(name = "controller_id", length = 64) + @Size(min = 1) + @NotNull private String controllerId; @Transient @@ -83,7 +87,7 @@ public class Target extends NamedEntity implements Persistable { @JoinTable(name = "sp_target_target_tag", joinColumns = { @JoinColumn(name = "target", foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_targ_targtag_target") ) }, inverseJoinColumns = { @JoinColumn(name = "tag", foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_targ_targtag_tag") ) }) - private Set tags = new HashSet(); + private Set tags = new HashSet<>(); @CascadeOnDelete @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true, cascade = { CascadeType.REMOVE }) diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/rsql/RSQLUtility.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/rsql/RSQLUtility.java index 69ee58429..03f213fef 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/rsql/RSQLUtility.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/rsql/RSQLUtility.java @@ -18,6 +18,7 @@ import java.util.stream.Collectors; import javax.persistence.EntityManager; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Expression; import javax.persistence.criteria.MapJoin; import javax.persistence.criteria.Path; import javax.persistence.criteria.Predicate; @@ -101,7 +102,7 @@ public final class RSQLUtility { */ public static & FieldNameProvider, T> Specification parse(final String rsql, final Class fieldNameProvider) { - return new RSQLSpecification<>(rsql, fieldNameProvider); + return new RSQLSpecification<>(rsql.toLowerCase(), fieldNameProvider); } /** @@ -460,16 +461,46 @@ public final class RSQLUtility { singleList.add(cb.lessThanOrEqualTo(pathOfString(fieldPath), value)); break; case "=in=": - singleList.add(fieldPath.in(transformedValues)); + singleList.add(getInPredicate(transformedValues, fieldPath)); break; case "=out=": - singleList.add(cb.not(fieldPath.in(transformedValues))); + singleList.add(getOutPredicate(transformedValues, fieldPath)); break; default: LOGGER.info("operator symbol {} is either not supported or not implemented"); } } + private Predicate getInPredicate(final List transformedValues, final Path fieldPath) { + final List inParams = new ArrayList<>(); + for (final Object param : transformedValues) { + if (param instanceof String) { + inParams.add(((String) param).toUpperCase()); + } + } + if (!inParams.isEmpty()) { + return cb.upper(pathOfString(fieldPath)).in(inParams); + } else { + return fieldPath.in(transformedValues); + + } + } + + private Predicate getOutPredicate(final List transformedValues, final Path fieldPath) { + final List outParams = new ArrayList<>(); + for (final Object param : transformedValues) { + if (param instanceof String) { + outParams.add(((String) param).toUpperCase()); + } + } + if (!outParams.isEmpty()) { + return cb.not(cb.upper(pathOfString(fieldPath)).in(outParams)); + } else { + return cb.not(fieldPath.in(transformedValues)); + + } + } + private Path getMapValueFieldPath(final A enumField, final Path fieldPath) { if (!enumField.isMap() || enumField.getValueFieldName() == null) { return fieldPath; @@ -477,6 +508,7 @@ public final class RSQLUtility { return fieldPath.get(enumField.getValueFieldName()); } + @SuppressWarnings("unchecked") private Predicate mapToMapPredicate(final ComparisonNode node, final Path fieldPath, final A enumField) { if (!enumField.isMap()) { @@ -485,10 +517,12 @@ public final class RSQLUtility { final String[] graph = node.getSelector().split("\\" + FieldNameProvider.SUB_ATTRIBUTE_SEPERATOR); final String keyValue = graph[graph.length - 1]; if (fieldPath instanceof MapJoin) { - return cb.equal(((MapJoin) fieldPath).key(), keyValue); + // Currently we support only string key .So below cast is safe. + return cb.equal(cb.upper((Expression) (((MapJoin) fieldPath).key())), + keyValue.toUpperCase()); } - return cb.equal(fieldPath.get(enumField.getKeyFieldName()), keyValue); + return cb.equal(cb.upper(fieldPath.get(enumField.getKeyFieldName())), keyValue.toUpperCase()); } private Predicate getEqualToPredicate(final Object transformedValue, final Path fieldPath) { 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/hawkbit-repository/src/test/java/org/eclipse/hawkbit/MethodSecurityUtil.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/MethodSecurityUtil.java index 2fb68ec31..6633a27e5 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/MethodSecurityUtil.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/MethodSecurityUtil.java @@ -54,7 +54,7 @@ public class MethodSecurityUtil { if (!METHOD_SECURITY_EXCLUSION.contains(method.getName()) && !method.isSynthetic() && Modifier.isPublic(method.getModifiers())) { final PreAuthorize annotation = method.getAnnotation(PreAuthorize.class); - assertThat(annotation).describedAs( + assertThat(annotation).as( "The public method " + method.getName() + " is not annoated with @PreAuthorize, security leak?") .isNotNull(); } diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ArtifactManagementTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ArtifactManagementTest.java index 5585aab95..2929110dd 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ArtifactManagementTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ArtifactManagementTest.java @@ -150,14 +150,14 @@ public class ArtifactManagementTest extends AbstractIntegrationTestWithMongoDB { ExternalArtifact result = artifactManagement.createExternalArtifact(provider, null, sm.getId()); - assertNotNull(result); + assertNotNull("The result of an external artifact should not be null", result); assertThat(externalArtifactRepository.findAll()).contains(result).hasSize(1); assertThat(result.getSoftwareModule().getId()).isEqualTo(sm.getId()); assertThat(result.getUrl()).isEqualTo("https://fhghdfjgh/{version}/"); assertThat(result.getExternalArtifactProvider()).isEqualTo(provider); result = artifactManagement.createExternalArtifact(provider, "/test", sm2.getId()); - assertNotNull(result); + assertNotNull("The newly created external artifact should not be null", result); assertThat(externalArtifactRepository.findAll()).contains(result).hasSize(2); assertThat(result.getUrl()).isEqualTo("https://fhghdfjgh/test"); assertThat(result.getExternalArtifactProvider()).isEqualTo(provider); @@ -176,7 +176,7 @@ public class ArtifactManagementTest extends AbstractIntegrationTestWithMongoDB { "https://fhghdfjgh", "/{version}/"); final ExternalArtifact result = artifactManagement.createExternalArtifact(provider, null, sm.getId()); - assertNotNull(result); + assertNotNull("The newly created external artifact should not be null", result); assertThat(externalArtifactRepository.findAll()).contains(result).hasSize(1); artifactManagement.deleteExternalArtifact(result.getId()); @@ -348,7 +348,7 @@ public class ArtifactManagementTest extends AbstractIntegrationTestWithMongoDB { final LocalArtifact result = artifactManagement.createLocalArtifact(new ByteArrayInputStream(random), sm.getId(), "file1", false); - assertTrue(IOUtils.contentEquals(new ByteArrayInputStream(random), + assertTrue("The stored binary matches the given binary", IOUtils.contentEquals(new ByteArrayInputStream(random), artifactManagement.loadLocalArtifactBinary(result).getFileInputStream())); } diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ControllerManagementTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ControllerManagementTest.java index 8289b8173..41a7c7848 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ControllerManagementTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/ControllerManagementTest.java @@ -9,10 +9,13 @@ package org.eclipse.hawkbit.repository; import static org.fest.assertions.api.Assertions.assertThat; +import static org.junit.Assert.fail; import java.util.ArrayList; import java.util.List; +import javax.validation.ConstraintViolationException; + import org.apache.commons.lang3.RandomStringUtils; import org.eclipse.hawkbit.AbstractIntegrationTest; import org.eclipse.hawkbit.TestDataUtil; @@ -71,6 +74,24 @@ public class ControllerManagementTest extends AbstractIntegrationTest { .getNumberOfElements()).isEqualTo(3); } + @Test + @Description("Register a controller which not exist") + public void testfindOrRegisterTargetIfItDoesNotexist() { + final Target target = controllerManagament.findOrRegisterTargetIfItDoesNotexist("AA", null); + assertThat(target).as("target should not be null").isNotNull(); + + final Target sameTarget = controllerManagament.findOrRegisterTargetIfItDoesNotexist("AA", null); + assertThat(target).as("Target should be the equals").isEqualTo(sameTarget); + assertThat(targetRepository.count()).as("Only 1 target should be registred").isEqualTo(1L); + + try { + controllerManagament.findOrRegisterTargetIfItDoesNotexist("", null); + fail("target with empty controller id should not be registred"); + } catch (final ConstraintViolationException e) { + // ok + } + } + @Test @Description("Controller trys to finish an update process after it has been finished by an error action status.") public void tryToFinishUpdateProcessMoreThenOnce() { 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..985bc6bd9 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 @@ -19,7 +19,6 @@ import java.util.LinkedList; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; -import java.util.function.Consumer; import org.eclipse.hawkbit.AbstractIntegrationTest; import org.eclipse.hawkbit.Constants; @@ -66,6 +65,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 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(); + 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() { @@ -73,7 +88,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())); @@ -81,8 +97,9 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { final List findActionsWithStatusCountByTarget = deploymentManagement .findActionsWithStatusCountByTargetOrderByIdDesc(testTarget.get(0)); - assertThat(findActionsWithStatusCountByTarget).hasSize(1); - assertThat(findActionsWithStatusCountByTarget.get(0).getActionStatusCount()).isEqualTo(3L); + assertThat(findActionsWithStatusCountByTarget).as("wrong action size").hasSize(1); + assertThat(findActionsWithStatusCountByTarget.get(0).getActionStatusCount()).as("wrong action status size") + .isEqualTo(3L); } @Test @@ -98,27 +115,32 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { final DistributionSetTag tag = tagManagement.createDistributionSetTag(new DistributionSetTag("Tag1")); final List assignedDS = distributionSetManagement.assignTag(assignDS, tag); - assertThat(assignedDS.size()).isEqualTo(4); - assignedDS.forEach(ds -> assertThat(ds.getTags().size()).isEqualTo(1)); + assertThat(assignedDS.size()).as("assigned ds has wrong size").isEqualTo(4); + assignedDS.forEach(ds -> assertThat(ds.getTags().size()).as("ds has wrong tag size").isEqualTo(1)); DistributionSetTag findDistributionSetTag = tagManagement.findDistributionSetTag("Tag1"); - assertThat(assignedDS.size()).isEqualTo(findDistributionSetTag.getAssignedToDistributionSet().size()); + assertThat(assignedDS.size()).as("assigned ds has wrong size") + .isEqualTo(findDistributionSetTag.getAssignedToDistributionSet().size()); - assertThat(distributionSetManagement.unAssignTag(Long.valueOf(100), findDistributionSetTag)).isNull(); + assertThat(distributionSetManagement.unAssignTag(Long.valueOf(100), findDistributionSetTag)) + .as("unassign tag result should be null").isNull(); final DistributionSet unAssignDS = distributionSetManagement.unAssignTag(assignDS.get(0), findDistributionSetTag); - assertThat(unAssignDS.getId()).isEqualTo(assignDS.get(0)); - assertThat(unAssignDS.getTags().size()).isEqualTo(0); + assertThat(unAssignDS.getId()).as("unassigned ds is wrong").isEqualTo(assignDS.get(0)); + assertThat(unAssignDS.getTags().size()).as("unassigned ds has wrong tag size").isEqualTo(0); findDistributionSetTag = tagManagement.findDistributionSetTag("Tag1"); - assertThat(findDistributionSetTag.getAssignedToDistributionSet().size()).isEqualTo(3); + assertThat(findDistributionSetTag.getAssignedToDistributionSet().size()).as("ds tag ds has wrong ds size") + .isEqualTo(3); final List unAssignTargets = distributionSetManagement .unAssignAllDistributionSetsByTag(findDistributionSetTag); findDistributionSetTag = tagManagement.findDistributionSetTag("Tag1"); - assertThat(findDistributionSetTag.getAssignedToDistributionSet().size()).isEqualTo(0); - assertThat(unAssignTargets.size()).isEqualTo(3); - unAssignTargets.forEach(target -> assertThat(target.getTags().size()).isEqualTo(0)); + assertThat(findDistributionSetTag.getAssignedToDistributionSet().size()).as("ds tag has wrong ds size") + .isEqualTo(0); + assertThat(unAssignTargets.size()).as("unassigned target has wrong size").isEqualTo(3); + unAssignTargets + .forEach(target -> assertThat(target.getTags().size()).as("target has wrong tag size").isEqualTo(0)); } @Test @@ -140,7 +162,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { targetManagement.findAllTargetIds().forEach(targetIdName -> { assertThat(deploymentManagement.findActiveActionsByTarget( - targetManagement.findTargetByControllerID(targetIdName.getControllerId()))).hasSize(2); + targetManagement.findTargetByControllerID(targetIdName.getControllerId()))) + .as("active action has wrong size").hasSize(2); }); } @@ -163,14 +186,14 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { // check initial status assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()) - .isEqualTo(TargetUpdateStatus.UNKNOWN); + .as("target has update status").isEqualTo(TargetUpdateStatus.UNKNOWN); // assign the two sets in a row Action firstAction = assignSet(target, dsFirst); Action secondAction = assignSet(target, dsSecond); - assertThat(actionRepository.findAll()).hasSize(2); - assertThat(actionStatusRepository.findAll()).hasSize(2); + assertThat(actionRepository.findAll()).as("wrong size of actions").hasSize(2); + assertThat(actionStatusRepository.findAll()).as("wrong size of action status").hasSize(2); // we cancel second -> back to first deploymentManagement.cancelAction(secondAction, @@ -180,10 +203,11 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { secondAction.setStatus(Status.CANCELED); controllerManagement.addCancelActionStatus( new ActionStatus(secondAction, Status.CANCELED, System.currentTimeMillis()), secondAction); - assertThat(actionStatusRepository.findAll()).hasSize(4); - assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()).isEqualTo(dsFirst); + assertThat(actionStatusRepository.findAll()).as("wrong size of actions status").hasSize(4); + assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()).as("wrong ds") + .isEqualTo(dsFirst); assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()) - .isEqualTo(TargetUpdateStatus.PENDING); + .as("wrong update status").isEqualTo(TargetUpdateStatus.PENDING); // we cancel first -> back to installed deploymentManagement.cancelAction(firstAction, @@ -193,11 +217,11 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { firstAction.setStatus(Status.CANCELED); controllerManagement.addCancelActionStatus( new ActionStatus(firstAction, Status.CANCELED, System.currentTimeMillis()), firstAction); - assertThat(actionStatusRepository.findAll()).hasSize(6); + assertThat(actionStatusRepository.findAll()).as("wrong size of action status").hasSize(6); assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()) - .isEqualTo(dsInstalled); + .as("wrong assigned ds").isEqualTo(dsInstalled); assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()) - .isEqualTo(TargetUpdateStatus.IN_SYNC); + .as("wrong update status").isEqualTo(TargetUpdateStatus.IN_SYNC); } @Test @@ -219,14 +243,14 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { // check initial status assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()) - .isEqualTo(TargetUpdateStatus.UNKNOWN); + .as("wrong update status").isEqualTo(TargetUpdateStatus.UNKNOWN); // assign the two sets in a row Action firstAction = assignSet(target, dsFirst); Action secondAction = assignSet(target, dsSecond); - assertThat(actionRepository.findAll()).hasSize(2); - assertThat(actionStatusRepository.findAll()).hasSize(2); + assertThat(actionRepository.findAll()).as("wrong size of actions").hasSize(2); + assertThat(actionStatusRepository.findAll()).as("wrong size of action status").hasSize(2); // we cancel first -> second is left deploymentManagement.cancelAction(firstAction, @@ -236,26 +260,28 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { firstAction.setStatus(Status.CANCELED); controllerManagement.addCancelActionStatus( new ActionStatus(firstAction, Status.CANCELED, System.currentTimeMillis()), firstAction); - assertThat(actionStatusRepository.findAll()).hasSize(4); - assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()).isEqualTo(dsSecond); + assertThat(actionStatusRepository.findAll()).as("wrong size of action status").hasSize(4); + assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()) + .as("wrong assigned ds").isEqualTo(dsSecond); assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()) - .isEqualTo(TargetUpdateStatus.PENDING); + .as("wrong target update status").isEqualTo(TargetUpdateStatus.PENDING); // we cancel second -> remain assigned until finished cancellation deploymentManagement.cancelAction(secondAction, targetManagement.findTargetByControllerID(target.getControllerId())); secondAction = deploymentManagement.findActionWithDetails(secondAction.getId()); - assertThat(actionStatusRepository.findAll()).hasSize(5); - assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()).isEqualTo(dsSecond); + assertThat(actionStatusRepository.findAll()).as("wrong size of action status").hasSize(5); + assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()) + .as("wrong assigned ds").isEqualTo(dsSecond); // confirm cancellation secondAction.setStatus(Status.CANCELED); controllerManagement.addCancelActionStatus( new ActionStatus(secondAction, Status.CANCELED, System.currentTimeMillis()), secondAction); // cancelled success -> back to dsInstalled assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()) - .isEqualTo(dsInstalled); + .as("wrong installed ds").isEqualTo(dsInstalled); assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()) - .isEqualTo(TargetUpdateStatus.IN_SYNC); + .as("wrong target info update status").isEqualTo(TargetUpdateStatus.IN_SYNC); } @Test @@ -274,13 +300,13 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { // verify initial status assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()) - .isEqualTo(TargetUpdateStatus.UNKNOWN); + .as("wrong target info update status").isEqualTo(TargetUpdateStatus.UNKNOWN); Action assigningAction = assignSet(target, ds); // verify assignment - assertThat(actionRepository.findAll()).hasSize(1); - assertThat(actionStatusRepository.findAll()).hasSize(1); + assertThat(actionRepository.findAll()).as("wrong size of action").hasSize(1); + assertThat(actionStatusRepository.findAll()).as("wrong size of action status").hasSize(1); target = targetManagement.findTargetByControllerID(target.getControllerId()); @@ -293,11 +319,11 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { assigningAction = deploymentManagement.findActionWithDetails(assigningAction.getId()); // verify - assertThat(assigningAction.getStatus()).isEqualTo(Status.CANCELED); + assertThat(assigningAction.getStatus()).as("wrong size of status").isEqualTo(Status.CANCELED); assertThat(targetManagement.findTargetByControllerID("4712").getAssignedDistributionSet()) - .isEqualTo(dsInstalled); + .as("wrong assigned ds").isEqualTo(dsInstalled); assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()) - .isEqualTo(TargetUpdateStatus.IN_SYNC); + .as("wrong target update status").isEqualTo(TargetUpdateStatus.IN_SYNC); } @Test @@ -316,13 +342,13 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { // verify initial status assertThat(targetManagement.findTargetByControllerID("4712").getTargetInfo().getUpdateStatus()) - .isEqualTo(TargetUpdateStatus.UNKNOWN); + .as("wrong update status").isEqualTo(TargetUpdateStatus.UNKNOWN); final Action assigningAction = assignSet(target, ds); // verify assignment - assertThat(actionRepository.findAll()).hasSize(1); - assertThat(actionStatusRepository.findAll()).hasSize(1); + assertThat(actionRepository.findAll()).as("wrong size of action").hasSize(1); + assertThat(actionStatusRepository.findAll()).as("wrong size of action status").hasSize(1); // force quit assignment try { @@ -337,11 +363,11 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { deploymentManagement.assignDistributionSet(ds.getId(), new String[] { target.getControllerId() }); assertThat( targetManagement.findTargetByControllerID(target.getControllerId()).getTargetInfo().getUpdateStatus()) - .isEqualTo(TargetUpdateStatus.PENDING); + .as("wrong update status").isEqualTo(TargetUpdateStatus.PENDING); assertThat(targetManagement.findTargetByControllerID(target.getControllerId()).getAssignedDistributionSet()) - .isEqualTo(ds); + .as("wrong assigned ds").isEqualTo(ds); final Action action = actionRepository.findByTargetAndDistributionSet(pageReq, target, ds).getContent().get(0); - assertThat(action).isNotNull(); + assertThat(action).as("action should not be null").isNotNull(); return action; } @@ -349,7 +375,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 @@ -373,26 +399,30 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { deploymentManagement.assignDistributionSet(ds, savedDeployedTargets); // verify that one Action for each assignDistributionSet - assertThat(actionRepository.findAll(pageReq).getNumberOfElements()).isEqualTo(20); + assertThat(actionRepository.findAll(pageReq).getNumberOfElements()).as("wrong size of actions").isEqualTo(20); final Iterable allFoundTargets = targetManagement.findTargetsAll(pageReq).getContent(); - assertThat(allFoundTargets).containsAll(savedDeployedTargets).containsAll(savedNakedTargets); - assertThat(savedDeployedTargets).doesNotContain(Iterables.toArray(savedNakedTargets, Target.class)); - assertThat(savedNakedTargets).doesNotContain(Iterables.toArray(savedDeployedTargets, Target.class)); + assertThat(allFoundTargets).as("founded targets are wrong").containsAll(savedDeployedTargets) + .containsAll(savedNakedTargets); + assertThat(savedDeployedTargets).as("saved target are wrong") + .doesNotContain(Iterables.toArray(savedNakedTargets, Target.class)); + assertThat(savedNakedTargets).as("saved target are wrong") + .doesNotContain(Iterables.toArray(savedDeployedTargets, Target.class)); for (final Target myt : savedNakedTargets) { final Target t = targetManagement.findTargetByControllerID(myt.getControllerId()); - assertThat(deploymentManagement.findActionsByTarget(t)).isEmpty(); + assertThat(deploymentManagement.findActionsByTarget(t)).as("action should be empty").isEmpty(); } for (final Target myt : savedDeployedTargets) { final Target t = targetManagement.findTargetByControllerID(myt.getControllerId()); final List activeActionsByTarget = deploymentManagement.findActiveActionsByTarget(t); - assertThat(activeActionsByTarget).isNotEmpty(); - assertThat(t.getTargetInfo().getUpdateStatus()).isEqualTo(TargetUpdateStatus.PENDING); + assertThat(activeActionsByTarget).as("action should not be empty").isNotEmpty(); + assertThat(t.getTargetInfo().getUpdateStatus()).as("wrong target update status") + .isEqualTo(TargetUpdateStatus.PENDING); for (final Action ua : activeActionsByTarget) { - assertThat(ua.getDistributionSet()).isEqualTo(ds); + assertThat(ua.getDistributionSet()).as("action has wrong ds").isEqualTo(ds); } } @@ -431,12 +461,13 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { // give some chance to receive events asynchronously Thread.sleep(300); final List events = eventHandlerMock.getEvents(1, TimeUnit.MILLISECONDS); - assertThat(events).isEmpty(); + assertThat(events).as("events should be empty").isEmpty(); final EventHandlerMock eventHandlerMockAfterCompletionOfDs = new EventHandlerMock(10); eventBus.register(eventHandlerMockAfterCompletionOfDs); - assertThat(deploymentManagement.assignDistributionSet(nowComplete, targets).getAssigned()).isEqualTo(10); + assertThat(deploymentManagement.assignDistributionSet(nowComplete, targets).getAssigned()) + .as("assign ds doesn't work").isEqualTo(10); assertTargetAssignDistributionSetEvents(targets, nowComplete, eventHandlerMockAfterCompletionOfDs.getEvents(10, TimeUnit.SECONDS)); } @@ -476,7 +507,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { // retrieving all Actions created by the assignDistributionSet call final Page page = actionRepository.findAll(pageReq); // and verify the number - assertThat(page.getTotalElements()).isEqualTo(noOfDeployedTargets * noOfDistributionSets); + assertThat(page.getTotalElements()).as("wrong size of actions") + .isEqualTo(noOfDeployedTargets * noOfDistributionSets); // only records retrieved from the DB can be evaluated to be sure that // all fields are @@ -487,17 +519,20 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { final Iterable undeployedTargetsFromDB = targetRepository.findAll(undeployedTargetIDs); // test that number of Targets - assertThat(allFoundTargets.spliterator().getExactSizeIfKnown()) + assertThat(allFoundTargets.spliterator().getExactSizeIfKnown()).as("number of target is wrong") .isEqualTo(deployedTargetsFromDB.spliterator().getExactSizeIfKnown() + undeployedTargetsFromDB.spliterator().getExactSizeIfKnown()); - assertThat(deployedTargetsFromDB.spliterator().getExactSizeIfKnown()).isEqualTo(noOfDeployedTargets); - assertThat(undeployedTargetsFromDB.spliterator().getExactSizeIfKnown()).isEqualTo(noOfUndeployedTargets); + assertThat(deployedTargetsFromDB.spliterator().getExactSizeIfKnown()).as("number of target is wrong") + .isEqualTo(noOfDeployedTargets); + assertThat(undeployedTargetsFromDB.spliterator().getExactSizeIfKnown()).as("number of target is wrong") + .isEqualTo(noOfUndeployedTargets); // test the content of different lists - assertThat(allFoundTargets).containsAll(deployedTargetsFromDB).containsAll(undeployedTargetsFromDB); - assertThat(deployedTargetsFromDB).containsAll(savedDeployedTargets) + assertThat(allFoundTargets).as("content of founded target is wrong").containsAll(deployedTargetsFromDB) + .containsAll(undeployedTargetsFromDB); + assertThat(deployedTargetsFromDB).as("content of deployed target is wrong").containsAll(savedDeployedTargets) .doesNotContain(Iterables.toArray(undeployedTargetsFromDB, Target.class)); - assertThat(undeployedTargetsFromDB).containsAll(savedNakedTargets) + assertThat(undeployedTargetsFromDB).as("content of undeployed target is wrong").containsAll(savedNakedTargets) .doesNotContain(Iterables.toArray(deployedTargetsFromDB, Target.class)); // For each of the 4 targets 1 distribution sets gets assigned @@ -525,42 +560,42 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { final DistributionSet dsC = deployResWithDsC.getDistributionSets().get(0); // retrieving the UpdateActions created by the assignments - final Action updActA = actionRepository.findByDistributionSet(pageRequest, dsA).getContent().get(0); - final Action updActB = actionRepository.findByDistributionSet(pageRequest, dsB).getContent().get(0); - final Action updActC = actionRepository.findByDistributionSet(pageRequest, dsC).getContent().get(0); + actionRepository.findByDistributionSet(pageRequest, dsA).getContent().get(0); + actionRepository.findByDistributionSet(pageRequest, dsB).getContent().get(0); + actionRepository.findByDistributionSet(pageRequest, dsC).getContent().get(0); // verifying the correctness of the assignments for (final Target t : deployResWithDsA.getDeployedTargets()) { - assertThat(t.getAssignedDistributionSet().getId()).isEqualTo(dsA.getId()); + assertThat(t.getAssignedDistributionSet().getId()).as("assignment is not correct").isEqualTo(dsA.getId()); assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo() - .getInstalledDistributionSet()).isNull(); + .getInstalledDistributionSet()).as("installed ds should be null").isNull(); } for (final Target t : deployResWithDsB.getDeployedTargets()) { - assertThat(t.getAssignedDistributionSet().getId()).isEqualTo(dsB.getId()); + assertThat(t.getAssignedDistributionSet().getId()).as("assigned ds is wrong").isEqualTo(dsB.getId()); assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo() - .getInstalledDistributionSet()).isNull(); + .getInstalledDistributionSet()).as("installed ds should be null").isNull(); } for (final Target t : deployResWithDsC.getDeployedTargets()) { assertThat(t.getAssignedDistributionSet().getId()).isEqualTo(dsC.getId()); assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo() - .getInstalledDistributionSet()).isNull(); + .getInstalledDistributionSet()).as("installed ds should not be null").isNull(); assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo().getUpdateStatus()) - .isEqualTo(TargetUpdateStatus.PENDING); + .as("wrong target info update status").isEqualTo(TargetUpdateStatus.PENDING); } final List updatedTsDsA = sendUpdateActionStatusToTargets(dsA, deployResWithDsA.getDeployedTargets(), Status.FINISHED, new String[] { "alles gut" }); // verify, that dsA is deployed correctly - assertThat(updatedTsDsA).isEqualTo(deployResWithDsA.getDeployedTargets()); + assertThat(updatedTsDsA).as("ds is not deployed correctly").isEqualTo(deployResWithDsA.getDeployedTargets()); for (final Target t_ : updatedTsDsA) { final Target t = targetManagement.findTargetByControllerID(t_.getControllerId()); - assertThat(t.getAssignedDistributionSet()).isEqualTo(dsA); + assertThat(t.getAssignedDistributionSet()).as("assigned ds is wrong").isEqualTo(dsA); assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo() - .getInstalledDistributionSet()).isEqualTo(dsA); + .getInstalledDistributionSet()).as("installed ds is wrong").isEqualTo(dsA); assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo().getUpdateStatus()) - .isEqualTo(TargetUpdateStatus.IN_SYNC); - assertThat(deploymentManagement.findActiveActionsByTarget(t)).hasSize(0); + .as("wrong target info update status").isEqualTo(TargetUpdateStatus.IN_SYNC); + assertThat(deploymentManagement.findActiveActionsByTarget(t)).as("no actions should be active").hasSize(0); } // deploy dsA to the target which already have dsB deployed -> must @@ -569,18 +604,18 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { // UpdateAction for dsA final Iterable deployed2DS = deploymentManagement .assignDistributionSet(dsA, deployResWithDsB.getDeployedTargets()).getAssignedTargets(); - final Action updActA2 = actionRepository.findByDistributionSet(pageRequest, dsA).getContent().get(1); + actionRepository.findByDistributionSet(pageRequest, dsA).getContent().get(1); - assertThat(deployed2DS).containsAll(deployResWithDsB.getDeployedTargets()); - assertThat(deployed2DS).hasSameSizeAs(deployResWithDsB.getDeployedTargets()); + assertThat(deployed2DS).as("deployed ds is wrong").containsAll(deployResWithDsB.getDeployedTargets()); + assertThat(deployed2DS).as("deployed ds is wrong").hasSameSizeAs(deployResWithDsB.getDeployedTargets()); for (final Target t_ : deployed2DS) { final Target t = targetManagement.findTargetByControllerID(t_.getControllerId()); - assertThat(t.getAssignedDistributionSet()).isEqualTo(dsA); + assertThat(t.getAssignedDistributionSet()).as("assigned ds is wrong").isEqualTo(dsA); assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo() - .getInstalledDistributionSet()).isNull(); + .getInstalledDistributionSet()).as("installed ds should be null").isNull(); assertThat(targetManagement.findTargetByControllerID(t.getControllerId()).getTargetInfo().getUpdateStatus()) - .isEqualTo(TargetUpdateStatus.PENDING); + .as("wrong target info update status").isEqualTo(TargetUpdateStatus.PENDING); } } @@ -613,22 +648,22 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { distributionSetManagement.deleteDistributionSet(dsA.getId()); dsA = distributionSetManagement.findDistributionSetById(dsA.getId()); - assertThat(dsA).isNull(); + assertThat(dsA).as("ds should be null").isNull(); // // verify that the ds is not physically deleted for (final DistributionSet ds : deploymentResult.getDistributionSets()) { distributionSetManagement.deleteDistributionSet(ds.getId()); final DistributionSet foundDS = distributionSetManagement.findDistributionSetById(ds.getId()); - assertThat(foundDS).isNotNull(); - assertThat(foundDS.isDeleted()).isTrue(); + assertThat(foundDS).as("founded should not be null").isNotNull(); + assertThat(foundDS.isDeleted()).as("founded ds should be deleted").isTrue(); } // verify that deleted attribute is used correctly List allFoundDS = distributionSetManagement.findDistributionSetsAll(pageReq, false, true) .getContent(); - assertThat(allFoundDS.size()).isEqualTo(0); + assertThat(allFoundDS.size()).as("no ds should be founded").isEqualTo(0); allFoundDS = distributionSetManagement.findDistributionSetsAll(pageRequest, true, true).getContent(); - assertThat(allFoundDS).hasSize(noOfDistributionSets); + assertThat(allFoundDS).as("wrong size of founded ds").hasSize(noOfDistributionSets); for (final DistributionSet ds : deploymentResult.getDistributionSets()) { sendUpdateActionStatusToTargets(ds, deploymentResult.getDeployedTargets(), Status.FINISHED, @@ -642,9 +677,9 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { // successfully and no activeAction is referring to created distribution // sets allFoundDS = distributionSetManagement.findDistributionSetsAll(pageRequest, false, true).getContent(); - assertThat(allFoundDS.size()).isEqualTo(0); + assertThat(allFoundDS.size()).as("no ds should be founded").isEqualTo(0); allFoundDS = distributionSetManagement.findDistributionSetsAll(pageRequest, true, true).getContent(); - assertThat(allFoundDS).hasSize(noOfDistributionSets); + assertThat(allFoundDS).as("size of founded ds is wrong").hasSize(noOfDistributionSets); } @@ -668,15 +703,15 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { "blabla alles gut"); } - assertThat(targetManagement.countTargetsAll()).isNotZero(); - assertThat(actionStatusRepository.count()).isNotZero(); + assertThat(targetManagement.countTargetsAll()).as("size of targets is wrong").isNotZero(); + assertThat(actionStatusRepository.count()).as("size of action status is wrong").isNotZero(); targetManagement .deleteTargets(deploymentResult.getUndeployedTargetIDs().toArray(new Long[noOfUndeployedTargets])); targetManagement.deleteTargets(deploymentResult.getDeployedTargetIDs().toArray(new Long[noOfDeployedTargets])); - assertThat(targetManagement.countTargetsAll()).isZero(); - assertThat(actionStatusRepository.count()).isZero(); + assertThat(targetManagement.countTargetsAll()).as("size of targets should be zero").isZero(); + assertThat(actionStatusRepository.count()).as("size of action status is wrong").isZero(); } private List sendUpdateActionStatusToTargets(final DistributionSet dsA, final Iterable targs, @@ -727,7 +762,7 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { // checking the revisions of the created entities // verifying that the revision of the object and the revision within the // DB has not changed - assertThat(dsA.getOptLockRevision()).isEqualTo( + assertThat(dsA.getOptLockRevision()).as("lock revision is wrong").isEqualTo( distributionSetManagement.findDistributionSetByIdWithDetails(dsA.getId()).getOptLockRevision()); // verifying that the assignment is correct @@ -778,12 +813,11 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { public void checkThatDsRevisionsIsNotChangedWithTargetAssignment() { final DistributionSet dsA = TestDataUtil.generateDistributionSet("a", softwareManagement, distributionSetManagement); - final DistributionSet dsB = TestDataUtil.generateDistributionSet("b", softwareManagement, - distributionSetManagement); + TestDataUtil.generateDistributionSet("b", softwareManagement, distributionSetManagement); Target targ = targetManagement .createTarget(TestDataUtil.buildTargetFixture("target-id-A", "first description")); - assertThat(dsA.getOptLockRevision()).isEqualTo( + assertThat(dsA.getOptLockRevision()).as("lock revision is wrong").isEqualTo( distributionSetManagement.findDistributionSetByIdWithDetails(dsA.getId()).getOptLockRevision()); final List targs = new ArrayList(); @@ -791,7 +825,7 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { final Iterable savedTargs = deploymentManagement.assignDistributionSet(dsA, targs).getAssignedTargets(); targ = savedTargs.iterator().next(); - assertThat(dsA.getOptLockRevision()).isEqualTo( + assertThat(dsA.getOptLockRevision()).as("lock revision is wrong").isEqualTo( distributionSetManagement.findDistributionSetByIdWithDetails(dsA.getId()).getOptLockRevision()); } @@ -805,17 +839,17 @@ 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); + assertThat(findAction.getActionType()).as("action type is wrong").isEqualTo(ActionType.SOFT); // test deploymentManagement.forceTargetAction(action.getId()); // verify test findAction = deploymentManagement.findAction(action.getId()); - assertThat(findAction.getActionType()).isEqualTo(ActionType.FORCED); + assertThat(findAction.getActionType()).as("action type is wrong").isEqualTo(ActionType.FORCED); } @Test @@ -828,18 +862,18 @@ 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); + assertThat(findAction.getActionType()).as("action type is wrong").isEqualTo(ActionType.FORCED); // test final Action forceTargetAction = deploymentManagement.forceTargetAction(action.getId()); // verify test - assertThat(forceTargetAction.getActionType()).isEqualTo(ActionType.FORCED); + assertThat(forceTargetAction.getActionType()).as("action type is wrong").isEqualTo(ActionType.FORCED); findAction = deploymentManagement.findAction(action.getId()); - assertThat(findAction.getActionType()).isEqualTo(ActionType.FORCED); + assertThat(findAction.getActionType()).as("action type is wrong").isEqualTo(ActionType.FORCED); } /** @@ -848,7 +882,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 @@ -901,14 +935,14 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { if (event.getControllerId().equals(myt.getControllerId())) { found = true; final List activeActionsByTarget = deploymentManagement.findActiveActionsByTarget(myt); - assertThat(activeActionsByTarget).isNotEmpty(); - assertThat(event.getActionId()).isEqualTo(activeActionsByTarget.get(0).getId()) - .as("Action id in database and event do not match"); - assertThat(event.getSoftwareModules()) + assertThat(activeActionsByTarget).as("size of active actions for target is wrong").isNotEmpty(); + assertThat(event.getActionId()).as("Action id in database and event do not match") + .isEqualTo(activeActionsByTarget.get(0).getId()); + assertThat(event.getSoftwareModules()).as("softwaremodule size is not correct") .containsOnly(ds.getModules().toArray(new SoftwareModule[ds.getModules().size()])); } } - assertThat(found).isTrue().as("No event found for controller " + myt.getControllerId()); + assertThat(found).as("No event found for controller " + myt.getControllerId()).isTrue(); } } @@ -927,42 +961,19 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { private final List deployedTargets = new ArrayList(); private final List distributionSets = new ArrayList(); - private final String undeployedTargetPrefix; - private final String deployedTargetPrefix; - private final String distributionSetPrefix; - public DeploymentResult(final Iterable deployedTs, final Iterable undeployedTs, final Iterable dss, final String deployedTargetPrefix, final String undeployedTargetPrefix, final String distributionSetPrefix) { - this.undeployedTargetPrefix = undeployedTargetPrefix; - this.deployedTargetPrefix = deployedTargetPrefix; - this.distributionSetPrefix = distributionSetPrefix; - Iterables.addAll(deployedTargets, deployedTs); Iterables.addAll(undeployedTargets, undeployedTs); Iterables.addAll(distributionSets, dss); - deployedTargets.forEach(new Consumer() { - @Override - public void accept(final Target t) { - deployedTargetIDs.add(t.getId()); - } - }); + deployedTargets.forEach(t -> deployedTargetIDs.add(t.getId())); - undeployedTargets.forEach(new Consumer() { - @Override - public void accept(final Target t) { - undeployedTargetIDs.add(t.getId()); - } - }); + undeployedTargets.forEach(t -> undeployedTargetIDs.add(t.getId())); - distributionSets.forEach(new Consumer() { - @Override - public void accept(final DistributionSet ds) { - distributionSetIDs.add(ds.getId()); - } - }); + distributionSets.forEach(ds -> distributionSetIDs.add(ds.getId())); } @@ -1001,27 +1012,6 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { return deployedTargets; } - /** - * @return the noOfUndeployedTargets - */ - public int getNoOfUndeployedTargets() { - return undeployedTargetIDs.size(); - } - - /** - * @return the noOfDeployedTargets - */ - public int getNoOfDeployedTargets() { - return deployedTargetIDs.size(); - } - - /** - * @return the noOfDistributionSets - */ - public int getNoOfDistributionSets() { - return distributionSets.size(); - } - /** * @return the undeployedTargetIDs */ @@ -1029,26 +1019,6 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { return undeployedTargetIDs; } - /** - * @return the undeployedTargetPrefix - */ - public String getUndeployedTargetPrefix() { - return undeployedTargetPrefix; - } - - /** - * @return the deployedTargetPrefix - */ - public String getDeployedTargetPrefix() { - return deployedTargetPrefix; - } - - /** - * @return the distributionSetPrefix - */ - public String getDistributionSetPrefix() { - return distributionSetPrefix; - } } private static class EventHandlerMock { @@ -1073,9 +1043,9 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { latch.await(timeout, unit); final List handledEvents = new LinkedList( events); - assertThat(handledEvents).hasSize(expectedNumberOfEvents) - .as("Did not receive the expected amount of events (" + expectedNumberOfEvents - + ") within timeout. Received events are " + handledEvents); + assertThat(handledEvents).as("Did not receive the expected amount of events (" + expectedNumberOfEvents + + ") within timeout. Received events are " + handledEvents).hasSize(expectedNumberOfEvents); + return handledEvents; } } @@ -1101,9 +1071,8 @@ public class DeploymentManagementTest extends AbstractIntegrationTest { throws InterruptedException { latch.await(timeout, unit); final List handledEvents = new LinkedList(events); - assertThat(handledEvents).hasSize(expectedNumberOfEvents) - .as("Did not receive the expected amount of events (" + expectedNumberOfEvents - + ") within timeout. Received events are " + handledEvents); + assertThat(handledEvents).as("Did not receive the expected amount of events (" + expectedNumberOfEvents + + ") within timeout. Received events are " + handledEvents).hasSize(expectedNumberOfEvents); return handledEvents; } } 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 5c9c86aa7..0184a9d26 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 @@ -18,7 +18,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.List; -import java.util.concurrent.Callable; import java.util.stream.Collectors; import org.eclipse.hawkbit.AbstractIntegrationTest; @@ -96,10 +95,11 @@ public class ReportManagementTest extends AbstractIntegrationTest { // +1 because we go back #maxMonthBackAmountReportTargets but in the // report the current month // is included for sure, so from this month we go back - assertThat(targetsCreatedOverPeriod.getData()).hasSize(maxMonthBackAmountReportTargets + 1); + assertThat(targetsCreatedOverPeriod.getData()).as("created over period has wrong size") + .hasSize(maxMonthBackAmountReportTargets + 1); for (final DataReportSeriesItem reportItem : targetsCreatedOverPeriod.getData()) { // only one target is created for each month - assertThat(reportItem.getData().intValue()).isEqualTo(1); + assertThat(reportItem.getData().intValue()).as("Target for each month").isEqualTo(1); } // check cache evict @@ -109,7 +109,7 @@ public class ReportManagementTest extends AbstractIntegrationTest { } targetsCreatedOverPeriod = reportManagement.targetsCreatedOverPeriod(DateTypes.perMonth(), from, to); for (final DataReportSeriesItem reportItem : targetsCreatedOverPeriod.getData()) { - assertThat(reportItem.getData().intValue()).isEqualTo(2); + assertThat(reportItem.getData().intValue()).as("Target for each month").isEqualTo(2); } } @@ -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 @@ -146,10 +147,11 @@ public class ReportManagementTest extends AbstractIntegrationTest { // +1 because we go back #maxMonthBackAmountReportTargets but in the // report the current month // is included for sure, so from this month we go back - assertThat(feedbackReceivedOverTime.getData()).hasSize(maxMonthBackAmountReportTargets + 1); + assertThat(feedbackReceivedOverTime.getData()).as("feedback receiver has wrong data size") + .hasSize(maxMonthBackAmountReportTargets + 1); for (final DataReportSeriesItem reportItem : feedbackReceivedOverTime.getData()) { // only one target feedback is created for each month - assertThat(reportItem.getData().intValue()).isEqualTo(1); + assertThat(reportItem.getData().intValue()).as("data size is wrong").isEqualTo(1); } // check cache evict @@ -158,12 +160,13 @@ 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); for (final DataReportSeriesItem reportItem : feedbackReceivedOverTime.getData()) { - assertThat(reportItem.getData().intValue()).isEqualTo(2); + assertThat(reportItem.getData().intValue()).as("report item has wrong data size").isEqualTo(2); } } @@ -221,21 +224,26 @@ public class ReportManagementTest extends AbstractIntegrationTest { .getData()[0]; if (dataReportSeriesItem.getType().equals("ds1")) { // total count of three because ds1 has two different versions - assertThat(dataReportSeriesItem.getData()).isEqualTo(3L); + assertThat(dataReportSeriesItem.getData()).as("Version/Item type of DistributionSet 1 in statistics") + .isEqualTo(3L); final DataReportSeriesItem[] outerData = innerOuterDataReportSeries.getOuterSeries().getData(); assertThat(Arrays.stream(outerData).map(DataReportSeriesItem::getType).collect(Collectors.toList())) - .contains("0.0.0", "0.0.1"); + .as("versio item contains wrong version").contains("0.0.0", "0.0.1"); } else if (dataReportSeriesItem.getType().equals("ds2")) { - assertThat(dataReportSeriesItem.getData()).isEqualTo(1L); + assertThat(dataReportSeriesItem.getData()).as("Version/Item type of DistributionSet 2 in statistics") + .isEqualTo(1L); final DataReportSeriesItem[] outerData = innerOuterDataReportSeries.getOuterSeries().getData(); - assertThat(outerData).hasSize(1); - assertThat(outerData[0].getType()).isEqualTo("0.0.2"); - + assertThat(outerData).as("Version/Item type has wrong size").hasSize(1); + assertThat(outerData[0].getType()).as("Version/Item type of DistributionSet 2 in statistics") + .isEqualTo("0.0.2"); } else if (dataReportSeriesItem.getType().equals("ds3")) { - assertThat(dataReportSeriesItem.getData()).isEqualTo(0L); + + assertThat(dataReportSeriesItem.getData()).as("Version/Item type of DistributionSet 3 in statistics") + .isEqualTo(0L); final DataReportSeriesItem[] outerData = innerOuterDataReportSeries.getOuterSeries().getData(); - assertThat(outerData).hasSize(1); - assertThat(outerData[0].getType()).isEqualTo("0.0.3"); + assertThat(outerData).as("Version/Item type has wrong size").hasSize(1); + assertThat(outerData[0].getType()).as("Version/Item type of DistributionSet 3 in statistics") + .isEqualTo("0.0.3"); } else { fail("no assertion count for distribution set " + dataReportSeriesItem.getType()); } @@ -251,8 +259,7 @@ public class ReportManagementTest extends AbstractIntegrationTest { final DataReportSeriesItem dataReportSeriesItem = innerOuterDataReportSeries.getInnerSeries() .getData()[0]; if (dataReportSeriesItem.getType().equals("ds1")) { - assertThat(dataReportSeriesItem.getData()).isEqualTo(4L); - + assertThat(dataReportSeriesItem.getData()).as("Data report item number").isEqualTo(4L); } } } @@ -278,19 +285,23 @@ public class ReportManagementTest extends AbstractIntegrationTest { switch (reportItem.getType()) { case ERROR: - assertThat(reportItem.getData()).isEqualTo(knownErrorCount); + assertThat(reportItem.getData()).as("ERROR count for targets in statistics").isEqualTo(knownErrorCount); break; case IN_SYNC: - assertThat(reportItem.getData()).isEqualTo(knownSyncCount); + assertThat(reportItem.getData()).as("IN_SYNC count for targets in statistics") + .isEqualTo(knownSyncCount); break; case PENDING: - assertThat(reportItem.getData()).isEqualTo(knownPendingCount); + assertThat(reportItem.getData()).as("PENDING count for targets in statistics") + .isEqualTo(knownPendingCount); break; case REGISTERED: - assertThat(reportItem.getData()).isEqualTo(knownRegCount); + assertThat(reportItem.getData()).as("REGISTERED count for targets in statistics") + .isEqualTo(knownRegCount); break; case UNKNOWN: - assertThat(reportItem.getData()).isEqualTo(knownUnknownCount); + assertThat(reportItem.getData()).as("UNKNOWN count for targets in statistics") + .isEqualTo(knownUnknownCount); break; default: fail("missing case for unknown target update status " + reportItem.getType()); @@ -309,19 +320,24 @@ public class ReportManagementTest extends AbstractIntegrationTest { switch (reportItem.getType()) { case ERROR: - assertThat(reportItem.getData()).isEqualTo(knownErrorCount * 2); + assertThat(reportItem.getData()).as("ERROR count for targets in statistics") + .isEqualTo(knownErrorCount * 2); break; case IN_SYNC: - assertThat(reportItem.getData()).isEqualTo(knownSyncCount * 2); + assertThat(reportItem.getData()).as("IN_SYNC count for targets in statistics") + .isEqualTo(knownSyncCount * 2); break; case PENDING: - assertThat(reportItem.getData()).isEqualTo(knownPendingCount * 2); + assertThat(reportItem.getData()).as("PENDING count for targets in statistics") + .isEqualTo(knownPendingCount * 2); break; case REGISTERED: - assertThat(reportItem.getData()).isEqualTo(knownRegCount * 2); + assertThat(reportItem.getData()).as("REGISTERED count for targets in statistics") + .isEqualTo(knownRegCount * 2); break; case UNKNOWN: - assertThat(reportItem.getData()).isEqualTo(knownUnknownCount * 2); + assertThat(reportItem.getData()).as("UNKNOWN count for targets in statistics") + .isEqualTo(knownUnknownCount * 2); break; default: fail("missing case for unknown target update status " + reportItem.getType()); @@ -373,22 +389,30 @@ public class ReportManagementTest extends AbstractIntegrationTest { final DataReportSeriesItem dataReportSeriesItem = innerOuterDataReportSeries.getInnerSeries() .getData()[0]; if (dataReportSeriesItem.getType().equals("ds1")) { + // total count of three because ds1 has two different versions - assertThat(dataReportSeriesItem.getData()).isEqualTo(3L); + assertThat(dataReportSeriesItem.getData()).as("Total count of DistributionSet 1 in statistics") + .isEqualTo(3L); + final DataReportSeriesItem[] outerData = innerOuterDataReportSeries.getOuterSeries().getData(); assertThat(Arrays.stream(outerData).map(DataReportSeriesItem::getType).collect(Collectors.toList())) - .contains("0.0.0", "0.0.1"); + .as("Out series contains wrong version").contains("0.0.0", "0.0.1"); + } else if (dataReportSeriesItem.getType().equals("ds2")) { - assertThat(dataReportSeriesItem.getData()).isEqualTo(1L); + assertThat(dataReportSeriesItem.getData()).as("Total count of DistributionSet 2 in statistics") + .isEqualTo(1L); final DataReportSeriesItem[] outerData = innerOuterDataReportSeries.getOuterSeries().getData(); - assertThat(outerData).hasSize(1); - assertThat(outerData[0].getType()).isEqualTo("0.0.2"); + assertThat(outerData).as("out series has wrong size").hasSize(1); + assertThat(outerData[0].getType()).as("Version/Item type of DistributionSet 2 in statistics") + .isEqualTo("0.0.2"); } else if (dataReportSeriesItem.getType().equals("ds3")) { - assertThat(dataReportSeriesItem.getData()).isEqualTo(0L); + assertThat(dataReportSeriesItem.getData()).as("Total count of DistributionSet 3 in statistics") + .isEqualTo(0L); final DataReportSeriesItem[] outerData = innerOuterDataReportSeries.getOuterSeries().getData(); - assertThat(outerData).hasSize(1); - assertThat(outerData[0].getType()).isEqualTo("0.0.3"); + assertThat(outerData).as("out series has wrong size").hasSize(1); + assertThat(outerData[0].getType()).as("Version/Item type of DistributionSet 3 in statistics") + .isEqualTo("0.0.3"); } else { fail("no assertion count for distribution set " + dataReportSeriesItem.getType()); } @@ -402,7 +426,8 @@ public class ReportManagementTest extends AbstractIntegrationTest { final DataReportSeriesItem dataReportSeriesItem = innerOuterDataReportSeries.getInnerSeries() .getData()[0]; if (dataReportSeriesItem.getType().equals("ds1")) { - assertThat(dataReportSeriesItem.getData()).isEqualTo(4L); + assertThat(dataReportSeriesItem.getData()).as("Total count of DistributionSet 1 in statistics") + .isEqualTo(4L); } } } @@ -435,29 +460,24 @@ public class ReportManagementTest extends AbstractIntegrationTest { DataReportSeries targetsNotLastPoll = reportManagement.targetsLastPoll(); DataReportSeriesItem[] data = targetsNotLastPoll.getData(); - // for( final DataReportSeriesItem dataReportSeriesItem : - // data ) { - // System.out.println( dataReportSeriesItem.getData() ); - // } - // --- Verfiy --- // verify hour - assertThat(data[0].getType()).isEqualTo(SeriesTime.HOUR); - assertThat(data[0].getData()).isEqualTo((long) knownTargetsPollLastHour); + assertThat(data[0].getType()).as("Series time").isEqualTo(SeriesTime.HOUR); + assertThat(data[0].getData()).as("Targets poll last hour").isEqualTo((long) knownTargetsPollLastHour); // verify day - assertThat(data[1].getType()).isEqualTo(SeriesTime.DAY); - assertThat(data[1].getData()).isEqualTo((long) knownTargetsPollLastDay); + assertThat(data[1].getType()).as("Series time").isEqualTo(SeriesTime.DAY); + assertThat(data[1].getData()).as("Targets poll last day").isEqualTo((long) knownTargetsPollLastDay); // verify week - assertThat(data[2].getType()).isEqualTo(SeriesTime.WEEK); - assertThat(data[2].getData()).isEqualTo((long) knownTargetsPollLastWeek); + assertThat(data[2].getType()).as("Series time").isEqualTo(SeriesTime.WEEK); + assertThat(data[2].getData()).as("Targets poll last week").isEqualTo((long) knownTargetsPollLastWeek); // test cache evict createTargets("hourPoll2", knownTargetsPollLastHour, now.minusMinutes(59)); targetsNotLastPoll = reportManagement.targetsLastPoll(); data = targetsNotLastPoll.getData(); - assertThat(data[0].getType()).isEqualTo(SeriesTime.HOUR); - assertThat(data[0].getData()).isEqualTo((long) knownTargetsPollLastHour * 2); + assertThat(data[0].getType()).as("Series time").isEqualTo(SeriesTime.HOUR); + assertThat(data[0].getData()).as("Targets poll last hour").isEqualTo((long) knownTargetsPollLastHour * 2); } @@ -468,33 +488,26 @@ public class ReportManagementTest extends AbstractIntegrationTest { final int targetCreateAmount = 10; // create targets for another tenant - securityRule.runAs(WithSpringAuthorityRule.withUserAndTenant("user", "anotherTenant"), new Callable() { - @Override - public Void call() throws Exception { - for (int index = 0; index < targetCreateAmount; index++) { - targetManagement.createTarget(new Target("t" + index)); - } - return null; + securityRule.runAs(WithSpringAuthorityRule.withUserAndTenant("user", "anotherTenant"), () -> { + for (int index = 0; index < targetCreateAmount; index++) { + targetManagement.createTarget(new Target("t" + index)); } + return null; }); // ensure targets has been created for 'anotherTenant' final Slice targetsForAnotherTenant = securityRule.runAs( - WithSpringAuthorityRule.withUserAndTenant("user", "anotherTenant"), new Callable>() { - @Override - public Slice call() throws Exception { - return targetManagement.findTargetsAll(new PageRequest(0, 1000)); - } - }); - assertThat(targetsForAnotherTenant).hasSize(targetCreateAmount); + WithSpringAuthorityRule.withUserAndTenant("user", "anotherTenant"), + () -> targetManagement.findTargetsAll(new PageRequest(0, 1000))); + assertThat(targetsForAnotherTenant).as("targets has wrong size").hasSize(targetCreateAmount); final LocalDateTime to = LocalDateTime.now(); final LocalDateTime from = to.minusMonths(targetCreateAmount); // now retrieve the report for the 'mytenant' final DataReportSeries targetsCreatedOverPeriod = reportManagement .targetsCreatedOverPeriod(DateTypes.perMonth(), from, to); - // final no targets should final be created for this tenant - assertThat(targetsCreatedOverPeriod.getData()).hasSize(0); + assertThat(targetsCreatedOverPeriod.getData()).as("final no targets should final be created for this tenant") + .hasSize(0); } @@ -555,7 +568,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/SoftwareManagementTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/SoftwareManagementTest.java index dc9a654c7..49776e392 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/SoftwareManagementTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/SoftwareManagementTest.java @@ -159,10 +159,10 @@ public class SoftwareManagementTest extends AbstractIntegrationTestWithMongoDB { public void hardDeleteOfNotAssignedArtifact() { // [STEP1]: Create SoftwareModuleX with Artifacts - SoftwareModule unassignedModule = createSoftwareModuleWithArtifacts(osType, "moduleX", "3.0.2", 2); - Iterator artifactsIt = unassignedModule.getArtifacts().iterator(); - Artifact artifact1 = artifactsIt.next(); - Artifact artifact2 = artifactsIt.next(); + final SoftwareModule unassignedModule = createSoftwareModuleWithArtifacts(osType, "moduleX", "3.0.2", 2); + final Iterator artifactsIt = unassignedModule.getArtifacts().iterator(); + final Artifact artifact1 = artifactsIt.next(); + final Artifact artifact2 = artifactsIt.next(); // [STEP2]: Delete unassigned SoftwareModule softwareManagement.deleteSoftwareModule(unassignedModule); @@ -185,7 +185,7 @@ public class SoftwareManagementTest extends AbstractIntegrationTestWithMongoDB { public void softDeleteOfAssignedArtifact() { // Init DistributionSet - DistributionSet disSet = distributionSetManagement + final DistributionSet disSet = distributionSetManagement .createDistributionSet(new DistributionSet("ds1", "v1.0", "test ds", standardDsType, null)); // [STEP1]: Create SoftwareModuleX with ArtifactX @@ -200,14 +200,14 @@ public class SoftwareManagementTest extends AbstractIntegrationTestWithMongoDB { // [VERIFY EXPECTED RESULT]: // verify: assignedModule is marked as deleted assignedModule = softwareManagement.findSoftwareModuleById(assignedModule.getId()); - assertTrue(assignedModule.isDeleted()); + assertTrue("The module should be flagged as deleted", assignedModule.isDeleted()); assertThat(softwareManagement.findSoftwareModulesAll(pageReq)).hasSize(0); assertThat(softwareModuleRepository.findAll()).hasSize(1); // verify: binary data is deleted - Iterator artifactsIt = assignedModule.getArtifacts().iterator(); - Artifact artifact1 = artifactsIt.next(); - Artifact artifact2 = artifactsIt.next(); + final Iterator artifactsIt = assignedModule.getArtifacts().iterator(); + final Artifact artifact1 = artifactsIt.next(); + final Artifact artifact2 = artifactsIt.next(); assertArtfiactNull(artifact1, artifact2); // verify: artifact meta data is still available @@ -221,7 +221,7 @@ public class SoftwareManagementTest extends AbstractIntegrationTestWithMongoDB { // Init target and DistributionSet final Target target = targetManagement.createTarget(new Target("test123")); - DistributionSet disSet = distributionSetManagement + final DistributionSet disSet = distributionSetManagement .createDistributionSet(new DistributionSet("ds1", "v1.0", "test ds", standardDsType, null)); // [STEP1]: Create SoftwareModuleX and include the new ArtifactX @@ -242,14 +242,14 @@ public class SoftwareManagementTest extends AbstractIntegrationTestWithMongoDB { // [VERIFY EXPECTED RESULT]: // verify: assignedModule is marked as deleted assignedModule = softwareManagement.findSoftwareModuleById(assignedModule.getId()); - assertTrue(assignedModule.isDeleted()); + assertTrue("The found module should be flagged deleted", assignedModule.isDeleted()); assertThat(softwareManagement.findSoftwareModulesAll(pageReq)).hasSize(0); assertThat(softwareModuleRepository.findAll()).hasSize(1); // verify: binary data is deleted - Iterator artifactsIt = assignedModule.getArtifacts().iterator(); - Artifact artifact1 = artifactsIt.next(); - Artifact artifact2 = artifactsIt.next(); + final Iterator artifactsIt = assignedModule.getArtifacts().iterator(); + final Artifact artifact1 = artifactsIt.next(); + final Artifact artifact2 = artifactsIt.next(); assertArtfiactNull(artifact1, artifact2); // verify: artifact meta data is still available @@ -265,7 +265,7 @@ public class SoftwareManagementTest extends AbstractIntegrationTestWithMongoDB { assertThat(operations.find(new Query())).hasSize(0); // Init artifact binary data, target and DistributionSets - byte[] source = RandomUtils.nextBytes(1024); + final byte[] source = RandomUtils.nextBytes(1024); // [STEP1]: Create SoftwareModuleX and add a new ArtifactX SoftwareModule moduleX = createSoftwareModuleWithArtifacts(osType, "modulex", "v1.0", 0); @@ -273,7 +273,7 @@ public class SoftwareManagementTest extends AbstractIntegrationTestWithMongoDB { // [STEP2]: Create newArtifactX and add it to SoftwareModuleX artifactManagement.createLocalArtifact(new ByteArrayInputStream(source), moduleX.getId(), "artifactx", false); moduleX = softwareManagement.findSoftwareModuleWithDetails(moduleX.getId()); - Artifact artifactX = moduleX.getArtifacts().iterator().next(); + final Artifact artifactX = moduleX.getArtifacts().iterator().next(); // [STEP3]: Create SoftwareModuleY and add the same ArtifactX SoftwareModule moduleY = createSoftwareModuleWithArtifacts(osType, "moduley", "v1.0", 0); @@ -281,7 +281,7 @@ public class SoftwareManagementTest extends AbstractIntegrationTestWithMongoDB { // [STEP4]: Assign the same ArtifactX to SoftwareModuleY artifactManagement.createLocalArtifact(new ByteArrayInputStream(source), moduleY.getId(), "artifactx", false); moduleY = softwareManagement.findSoftwareModuleWithDetails(moduleY.getId()); - Artifact artifactY = moduleY.getArtifacts().iterator().next(); + final Artifact artifactY = moduleY.getArtifacts().iterator().next(); // verify: that only one entry was created in mongoDB assertThat(operations.find(new Query())).hasSize(1); @@ -325,14 +325,14 @@ public class SoftwareManagementTest extends AbstractIntegrationTestWithMongoDB { artifactManagement.createLocalArtifact(new ByteArrayInputStream(source), moduleX.getId(), "artifactx", false); moduleX = softwareManagement.findSoftwareModuleWithDetails(moduleX.getId()); - Artifact artifactX = moduleX.getArtifacts().iterator().next(); + final Artifact artifactX = moduleX.getArtifacts().iterator().next(); // [STEP2]: Create SoftwareModuleY and add the same ArtifactX SoftwareModule moduleY = createSoftwareModuleWithArtifacts(osType, "moduley", "v1.0", 0); artifactManagement.createLocalArtifact(new ByteArrayInputStream(source), moduleY.getId(), "artifactx", false); moduleY = softwareManagement.findSoftwareModuleWithDetails(moduleY.getId()); - Artifact artifactY = moduleY.getArtifacts().iterator().next(); + final Artifact artifactY = moduleY.getArtifacts().iterator().next(); // verify: that only one entry was created in mongoDB assertThat(operations.find(new Query())).hasSize(1); @@ -358,8 +358,8 @@ public class SoftwareManagementTest extends AbstractIntegrationTestWithMongoDB { // verify: SoftwareModuleX and SofwtareModule are marked as deleted assertThat(moduleX).isNotNull(); assertThat(moduleY).isNotNull(); - assertTrue(moduleX.isDeleted()); - assertTrue(moduleY.isDeleted()); + assertTrue("The module should be flagged deleted", moduleX.isDeleted()); + assertTrue("The module should be flagged deleted", moduleY.isDeleted()); assertThat(softwareManagement.findSoftwareModulesAll(pageReq)).hasSize(0); assertThat(softwareModuleRepository.findAll()).hasSize(2); @@ -370,10 +370,10 @@ public class SoftwareManagementTest extends AbstractIntegrationTestWithMongoDB { assertThat(artifactRepository.findOne(artifactY.getId())).isNotNull(); } - private SoftwareModule createSoftwareModuleWithArtifacts(SoftwareModuleType type, String name, String version, - int numberArtifacts) { + private SoftwareModule createSoftwareModuleWithArtifacts(final SoftwareModuleType type, final String name, + final String version, final int numberArtifacts) { - long countSoftwareModule = softwareModuleRepository.count(); + final long countSoftwareModule = softwareModuleRepository.count(); // create SoftwareModule SoftwareModule softwareModule = softwareManagement @@ -388,7 +388,7 @@ public class SoftwareManagementTest extends AbstractIntegrationTestWithMongoDB { softwareModule = softwareManagement.findSoftwareModuleWithDetails(softwareModule.getId()); assertThat(softwareModuleRepository.findAll()).hasSize((int) countSoftwareModule + 1); - List artifacts = softwareModule.getArtifacts(); + final List artifacts = softwareModule.getArtifacts(); assertThat(artifacts).hasSize(numberArtifacts); if (numberArtifacts != 0) { 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 a7b8e673f..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 @@ -10,7 +10,6 @@ package org.eclipse.hawkbit.repository; import static org.fest.assertions.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -26,6 +25,7 @@ import java.util.Set; import java.util.stream.Collectors; import javax.persistence.Query; +import javax.validation.ConstraintViolationException; import org.eclipse.hawkbit.AbstractIntegrationTest; import org.eclipse.hawkbit.TestDataUtil; @@ -65,6 +65,24 @@ public class TargetManagementTest extends AbstractIntegrationTest { } } + @Test + @Description("Verify that a target with empty controller id cannot be created") + public void createTargetWithNoControllerId() { + try { + targetManagement.createTarget(new Target("")); + fail("target with empty controller id should not be created"); + } catch (final ConstraintViolationException e) { + // ok + } + + try { + targetManagement.createTarget(new Target(null)); + fail("target with empty controller id should not be created"); + } catch (final ConstraintViolationException e) { + // ok + } + } + @Test @Description("Ensures that targets can assigned and unassigned to a target tag. Not exists target will be ignored for the assignment.") public void assignAndUnassignTargetsToTag() { @@ -156,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); @@ -203,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 @@ -226,10 +244,10 @@ public class TargetManagementTest extends AbstractIntegrationTest { } } if (strict) { - fail(); + fail("Target does not contain all tags"); } } - fail(); + fail("Target does not contain any tags or the expected tag was not found"); } } @@ -240,7 +258,7 @@ public class TargetManagementTest extends AbstractIntegrationTest { for (final Tag tag : tags) { for (final Tag tt : t.getTags()) { if (tag.getName().equals(tt.getName())) { - fail(); + fail("Target should have no tags"); } } } @@ -256,30 +274,33 @@ public class TargetManagementTest extends AbstractIntegrationTest { final Target target = TestDataUtil.buildTargetFixture(myCtrlID, "the description!"); Target savedTarget = targetManagement.createTarget(target); - assertNotNull(savedTarget); + assertNotNull("The target should not be null", savedTarget); final Long createdAt = savedTarget.getCreatedAt(); Long modifiedAt = savedTarget.getLastModifiedAt(); - assertEquals(createdAt, modifiedAt); - assertNotNull(savedTarget.getCreatedAt()); - assertNotNull(savedTarget.getLastModifiedAt()); - assertEquals(target, savedTarget); + + assertThat(createdAt).as("CreatedAt compared with modifiedAt").isEqualTo(modifiedAt); + assertNotNull("The createdAt attribut of the target should no be null", savedTarget.getCreatedAt()); + assertNotNull("The lastModifiedAt attribut of the target should no be null", savedTarget.getLastModifiedAt()); + assertThat(target).as("Target compared with saved target").isEqualTo(savedTarget); savedTarget.setDescription("changed description"); Thread.sleep(1); savedTarget = targetManagement.updateTarget(savedTarget); - - assertNotNull(savedTarget.getLastModifiedAt()); - assertNotEquals(createdAt, savedTarget.getLastModifiedAt()); - assertNotEquals(modifiedAt, savedTarget.getLastModifiedAt()); + assertNotNull("The lastModifiedAt attribute of the target should not be null", savedTarget.getLastModifiedAt()); + assertThat(createdAt).as("CreatedAt compared with saved modifiedAt") + .isNotEqualTo(savedTarget.getLastModifiedAt()); + assertThat(modifiedAt).as("ModifiedAt compared with saved modifiedAt") + .isNotEqualTo(savedTarget.getLastModifiedAt()); modifiedAt = savedTarget.getLastModifiedAt(); final Target foundTarget = targetManagement.findTargetByControllerID(savedTarget.getControllerId()); - - assertNotNull(foundTarget); - assertEquals(myCtrlID, foundTarget.getControllerId()); - assertEquals(savedTarget, foundTarget); - assertEquals(createdAt, foundTarget.getCreatedAt()); - assertEquals(modifiedAt, foundTarget.getLastModifiedAt()); + assertNotNull("The target should not be null", foundTarget); + assertThat(myCtrlID).as("ControllerId compared with saved controllerId") + .isEqualTo(foundTarget.getControllerId()); + assertThat(savedTarget).as("Target compared with saved target").isEqualTo(foundTarget); + assertThat(createdAt).as("CreatedAt compared with saved createdAt").isEqualTo(foundTarget.getCreatedAt()); + assertThat(modifiedAt).as("LastModifiedAt compared with saved lastModifiedAt") + .isEqualTo(foundTarget.getLastModifiedAt()); } @Test @@ -296,8 +317,11 @@ public class TargetManagementTest extends AbstractIntegrationTest { final Target savedExtra = targetManagement.createTarget(extra); Iterable allFound = targetRepository.findAll(); - assertEquals(firstList.size(), firstSaved.spliterator().getExactSizeIfKnown()); - assertEquals(firstList.size() + 1, allFound.spliterator().getExactSizeIfKnown()); + + assertThat(Long.valueOf(firstList.size())).as("List size of targets") + .isEqualTo(firstSaved.spliterator().getExactSizeIfKnown()); + assertThat(Long.valueOf(firstList.size() + 1)).as("LastModifiedAt compared with saved lastModifiedAt") + .isEqualTo(allFound.spliterator().getExactSizeIfKnown()); // change the objects and save to again to trigger a change on // lastModifiedAt @@ -308,18 +332,23 @@ public class TargetManagementTest extends AbstractIntegrationTest { _founds: for (final Target foundTarget : allFound) { for (final Target changedTarget : firstSaved) { if (changedTarget.getControllerId().equals(foundTarget.getControllerId())) { - assertEquals(changedTarget.getDescription(), foundTarget.getDescription()); - assertTrue(changedTarget.getName().startsWith(foundTarget.getName())); - assertTrue(changedTarget.getName().endsWith("changed")); - assertEquals(changedTarget.getCreatedAt(), foundTarget.getCreatedAt()); - assertThat(changedTarget.getLastModifiedAt()).isNotEqualTo(changedTarget.getCreatedAt()); - + assertThat(changedTarget.getDescription()) + .as("Description of changed target compared with description saved target") + .isEqualTo(foundTarget.getDescription()); + assertThat(changedTarget.getName()).as("Name of changed target starts with name of saved target") + .startsWith(foundTarget.getName()); + assertThat(changedTarget.getName()).as("Name of changed target ends with 'changed'") + .endsWith("changed"); + assertThat(changedTarget.getCreatedAt()).as("CreatedAt compared with saved createdAt") + .isEqualTo(foundTarget.getCreatedAt()); + assertThat(changedTarget.getLastModifiedAt()).as("LastModifiedAt compared with saved createdAt") + .isNotEqualTo(changedTarget.getCreatedAt()); continue _founds; } } if (!foundTarget.getControllerId().equals(savedExtra.getControllerId())) { - fail(); + fail("The controllerId of the found target is not equal to the controllerId of the saved target"); } } @@ -341,8 +370,8 @@ public class TargetManagementTest extends AbstractIntegrationTest { targetManagement.deleteTargets(deletedTargetIDs); allFound = targetManagement.findTargetsAll(new PageRequest(0, 200)).getContent(); - assertEquals(firstSaved.spliterator().getExactSizeIfKnown() - nr2Del, - allFound.spliterator().getExactSizeIfKnown()); + assertThat(firstSaved.spliterator().getExactSizeIfKnown() - nr2Del).as("Size of splited list") + .isEqualTo(allFound.spliterator().getExactSizeIfKnown()); // verify that all undeleted are still found assertThat(allFound).doesNotContain(deletedTargets); @@ -376,15 +405,26 @@ public class TargetManagementTest extends AbstractIntegrationTest { } final Query qry = entityManager.createNativeQuery("select * from sp_target_attributes ta"); final List result = qry.getResultList(); - assertEquals(attribs.size() * ts.spliterator().getExactSizeIfKnown(), result.size()); + + assertThat(attribs.size() * ts.spliterator().getExactSizeIfKnown()).as("Amount of all target attributes") + .isEqualTo(result.size()); for (final Target myT : ts) { final Target t = targetManagement.findTargetByControllerIDWithDetails(myT.getControllerId()); - assertEquals(attribs.size(), t.getTargetInfo().getControllerAttributes().size()); + assertThat(attribs.size()).as("Amount of target attributes per target") + .isEqualTo(t.getTargetInfo().getControllerAttributes().size()); + for (final Entry ca : t.getTargetInfo().getControllerAttributes().entrySet()) { - assertTrue(attribs.containsKey(ca.getKey())); + assertTrue("Attributes list does not contain target attribute key", attribs.containsKey(ca.getKey())); // has the same value: see string concatenation above - assertEquals(String.format("%s-%s", attribs.get(ca.getKey()), t.getControllerId()), ca.getValue()); + // assertThat(String.format("%s-%s", + // attribs.get(ca.getKey()))).as("Value of string + // concatenation") + // .isEqualTo(ca.getValue()); + + assertEquals("The value of the string concatenation is not equal to the value of the target attributes", + String.format("%s-%s", attribs.get(ca.getKey()), t.getControllerId()), ca.getValue()); + } } @@ -656,9 +696,8 @@ public class TargetManagementTest extends AbstractIntegrationTest { final List targetsListWithNoTag = targetManagement .findTargetByFilters(new PageRequest(0, 500), null, null, null, Boolean.TRUE, tagNames).getContent(); - // Total targets - assertEquals(50, targetManagement.findAllTargetIds().size()); - // Targets with no tag - assertEquals(25, targetsListWithNoTag.size()); + assertThat(50).as("Total targets").isEqualTo(targetManagement.findAllTargetIds().size()); + assertThat(25).as("Targets with no tag").isEqualTo(targetsListWithNoTag.size()); + } } diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLActionFieldsTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLActionFieldsTest.java index 71cf511ae..139b0a88d 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLActionFieldsTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLActionFieldsTest.java @@ -72,7 +72,7 @@ public class RSQLActionFieldsTest extends AbstractIntegrationTest { try { assertRSQLQuery(ActionFields.STATUS.name() + "==true", 5); - fail(); + fail("Missing expected RSQLParameterUnsupportedFieldException because status cannot be compared with 'true'"); } catch (final RSQLParameterUnsupportedFieldException e) { } } diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLTargetFieldTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLTargetFieldTest.java index 50b6600e9..2f77346f2 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLTargetFieldTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLTargetFieldTest.java @@ -114,8 +114,9 @@ public class RSQLTargetFieldTest extends AbstractIntegrationTest { assertRSQLQuery(TargetFields.UPDATESTATUS.name() + "!=pending", 3); try { assertRSQLQuery(TargetFields.UPDATESTATUS.name() + "==noExist*", 0); - fail(); + fail("RSQLParameterUnsupportedFieldException was expected since update status unknown"); } catch (final RSQLParameterUnsupportedFieldException e) { + // test ok - exception was excepted } assertRSQLQuery(TargetFields.UPDATESTATUS.name() + "=in=(pending,error)", 1); assertRSQLQuery(TargetFields.UPDATESTATUS.name() + "=out=(pending,error)", 3); diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLUtilityTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLUtilityTest.java index 3b923d167..bcfade8d5 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLUtilityTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLUtilityTest.java @@ -63,7 +63,7 @@ public class RSQLUtilityTest { try { RSQLUtility.parse(wrongRSQL, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock, criteriaQueryMock, criteriaBuilderMock); - fail(); + fail("Missing expected RSQLParameterSyntaxException because of wrong RSQL syntax"); } catch (final RSQLParameterSyntaxException e) { } } @@ -75,7 +75,7 @@ public class RSQLUtilityTest { try { RSQLUtility.parse(wrongRSQL, SoftwareModuleFields.class).toPredicate(baseSoftwareModuleRootMock, criteriaQueryMock, criteriaBuilderMock); - fail(); + fail("Missing an expected RSQLParameterUnsupportedFieldException because of unknown RSQL field"); } catch (final RSQLParameterUnsupportedFieldException e) { } @@ -87,7 +87,7 @@ public class RSQLUtilityTest { try { RSQLUtility.parse(wrongRSQL, TargetFields.class).toPredicate(baseSoftwareModuleRootMock, criteriaQueryMock, criteriaBuilderMock); - fail(); + fail("Missing expected RSQLParameterSyntaxException because of wrong RSQL syntax"); } catch (final RSQLParameterUnsupportedFieldException e) { } @@ -95,7 +95,7 @@ public class RSQLUtilityTest { try { RSQLUtility.parse(wrongRSQL, TargetFields.class).toPredicate(baseSoftwareModuleRootMock, criteriaQueryMock, criteriaBuilderMock); - fail(); + fail("Missing expected RSQLParameterSyntaxException because of wrong RSQL syntax"); } catch (final RSQLParameterUnsupportedFieldException e) { } @@ -103,7 +103,7 @@ public class RSQLUtilityTest { try { RSQLUtility.parse(wrongRSQL, DistributionSetFields.class).toPredicate(baseSoftwareModuleRootMock, criteriaQueryMock, criteriaBuilderMock); - fail(); + fail("Missing expected RSQLParameterSyntaxException because of wrong RSQL syntax"); } catch (final RSQLParameterUnsupportedFieldException e) { } @@ -115,7 +115,7 @@ public class RSQLUtilityTest { try { RSQLUtility.parse(wrongRSQL, TargetFields.class).toPredicate(baseSoftwareModuleRootMock, criteriaQueryMock, criteriaBuilderMock); - fail(); + fail("Missing expected RSQLParameterSyntaxException because of wrong RSQL syntax"); } catch (final RSQLParameterUnsupportedFieldException e) { } @@ -123,7 +123,7 @@ public class RSQLUtilityTest { try { RSQLUtility.parse(wrongRSQL, TargetFields.class).toPredicate(baseSoftwareModuleRootMock, criteriaQueryMock, criteriaBuilderMock); - fail(); + fail("Missing expected RSQLParameterSyntaxException because of wrong RSQL syntax"); } catch (final RSQLParameterUnsupportedFieldException e) { } @@ -131,7 +131,7 @@ public class RSQLUtilityTest { try { RSQLUtility.parse(wrongRSQL, TargetFields.class).toPredicate(baseSoftwareModuleRootMock, criteriaQueryMock, criteriaBuilderMock); - fail(); + fail("Missing expected RSQLParameterSyntaxException because of wrong RSQL syntax"); } catch (final RSQLParameterUnsupportedFieldException e) { } } 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/main/java/org/eclipse/hawkbit/rest/resource/DistributionSetTypeMapper.java b/hawkbit-rest-resource/src/main/java/org/eclipse/hawkbit/rest/resource/DistributionSetTypeMapper.java index 92923cb56..b32302705 100644 --- a/hawkbit-rest-resource/src/main/java/org/eclipse/hawkbit/rest/resource/DistributionSetTypeMapper.java +++ b/hawkbit-rest-resource/src/main/java/org/eclipse/hawkbit/rest/resource/DistributionSetTypeMapper.java @@ -88,7 +88,7 @@ final class DistributionSetTypeMapper { } static List toListResponse(final List types) { - final List response = new ArrayList(); + final List response = new ArrayList<>(); for (final DistributionSetType dsType : types) { response.add(toResponse(dsType)); } diff --git a/hawkbit-rest-resource/src/main/java/org/eclipse/hawkbit/rest/resource/SoftwareModuleResource.java b/hawkbit-rest-resource/src/main/java/org/eclipse/hawkbit/rest/resource/SoftwareModuleResource.java index 9ce1a2975..dfbac1a6f 100644 --- a/hawkbit-rest-resource/src/main/java/org/eclipse/hawkbit/rest/resource/SoftwareModuleResource.java +++ b/hawkbit-rest-resource/src/main/java/org/eclipse/hawkbit/rest/resource/SoftwareModuleResource.java @@ -99,52 +99,6 @@ public class SoftwareModuleResource implements SoftwareModuleRestAPI { return new ResponseEntity<>(SoftwareModuleMapper.artifactsToResponse(module.getArtifacts()), HttpStatus.OK); } - /** - * Handles the GET request for downloading an artifact. - * - * @param softwareModuleId - * of the parent SoftwareModule - * @param artifactId - * of the related LocalArtifact - * @param servletResponse - * of the servlet - * @param request - * of the client - * - * @return responseEntity with status ok if successful - */ - // @RequestMapping(method = RequestMethod.GET, value = - // RestConstants.SOFTWAREMODULE_V1_REQUEST_MAPPING - // + "/{softwareModuleId}/artifacts/{artifactId}/download") - // @ResponseBody - // public ResponseEntity downloadArtifact(@PathVariable final Long - // softwareModuleId, - // @PathVariable final Long artifactId, final HttpServletResponse - // servletResponse, - // final HttpServletRequest request) { - // final SoftwareModule module = - // findSoftwareModuleWithExceptionIfNotFound(softwareModuleId, artifactId); - // - // if (null == module || !module.getLocalArtifact(artifactId).isPresent()) { - // return new ResponseEntity<>(HttpStatus.NOT_FOUND); - // } - // - // final LocalArtifact artifact = module.getLocalArtifact(artifactId).get(); - // final DbArtifact file = - // artifactManagement.loadLocalArtifactBinary(artifact); - // - // final String ifMatch = request.getHeader("If-Match"); - // if (ifMatch != null && - // !RestResourceConversionHelper.matchesHttpHeader(ifMatch, - // artifact.getSha1Hash())) { - // return new ResponseEntity<>(HttpStatus.PRECONDITION_FAILED); - // } - // - // return RestResourceConversionHelper.writeFileResponse(artifact, - // servletResponse, request, file); - // - // } - @Override public ResponseEntity getArtifact(@PathVariable final Long softwareModuleId, @PathVariable final Long artifactId) { diff --git a/hawkbit-rest-resource/src/main/java/org/eclipse/hawkbit/rest/resource/SoftwareModuleTypeMapper.java b/hawkbit-rest-resource/src/main/java/org/eclipse/hawkbit/rest/resource/SoftwareModuleTypeMapper.java index 5a05133b2..bd2c5f1c1 100644 --- a/hawkbit-rest-resource/src/main/java/org/eclipse/hawkbit/rest/resource/SoftwareModuleTypeMapper.java +++ b/hawkbit-rest-resource/src/main/java/org/eclipse/hawkbit/rest/resource/SoftwareModuleTypeMapper.java @@ -59,7 +59,7 @@ final class SoftwareModuleTypeMapper { } static List toListResponse(final Collection types) { - final List response = new ArrayList(); + final List response = new ArrayList<>(); for (final SoftwareModuleType softwareModule : types) { response.add(toResponse(softwareModule)); } diff --git a/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/controller/ArtifactDownloadTest.java b/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/controller/ArtifactDownloadTest.java index a87ce748a..2db088e64 100644 --- a/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/controller/ArtifactDownloadTest.java +++ b/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/controller/ArtifactDownloadTest.java @@ -57,9 +57,6 @@ import ru.yandex.qatools.allure.annotations.Stories; /** * Test artifact downloads from the controller. * - * - * - * */ @ActiveProfiles({ "im", "test" }) @@ -285,7 +282,8 @@ public class ArtifactDownloadTest extends AbstractIntegrationTestWithMongoDB { .andExpect(header().string("Content-Disposition", "attachment;filename=" + artifact.getFilename())) .andReturn(); - assertTrue(Arrays.equals(result.getResponse().getContentAsByteArray(), random)); + assertTrue("The same file that was uploaded is expected when downloaded", + Arrays.equals(result.getResponse().getContentAsByteArray(), random)); // download complete assertThat(downLoadProgress).isEqualTo(10); @@ -393,7 +391,8 @@ public class ArtifactDownloadTest extends AbstractIntegrationTestWithMongoDB { .andExpect(header().longValue("Last-Modified", artifact.getCreatedAt())) .andExpect(header().string("Content-Disposition", "attachment;filename=file1")).andReturn(); - assertTrue(Arrays.equals(result.getResponse().getContentAsByteArray(), random)); + assertTrue("The same file that was uploaded is expected when downloaded", + Arrays.equals(result.getResponse().getContentAsByteArray(), random)); // one (update) action assertThat(actionRepository.findByTargetAndDistributionSet(pageReq, target, ds).getContent()).hasSize(1); 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); diff --git a/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/rest/resource/SortUtilityTest.java b/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/rest/resource/SortUtilityTest.java index 7ca7814b2..d915c4e9e 100644 --- a/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/rest/resource/SortUtilityTest.java +++ b/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/rest/resource/SortUtilityTest.java @@ -8,7 +8,8 @@ */ package org.eclipse.hawkbit.rest.resource; -import static org.junit.Assert.assertEquals; +import static org.fest.assertions.api.Assertions.assertThat; +import static org.junit.Assert.fail; import java.util.List; @@ -16,9 +17,15 @@ import org.eclipse.hawkbit.repository.TargetFields; import org.junit.Test; import org.springframework.data.domain.Sort.Order; +import ru.yandex.qatools.allure.annotations.Description; +import ru.yandex.qatools.allure.annotations.Features; +import ru.yandex.qatools.allure.annotations.Stories; + /** * */ +@Features("Component Tests - Management RESTful API") +@Stories("Sorting parameter") public class SortUtilityTest { private static final String SORT_PARAM_1 = "NAME:ASC"; private static final String SORT_PARAM_2 = "NAME:ASC, DESCRIPTION:DESC"; @@ -29,36 +36,55 @@ public class SortUtilityTest { private static final String WRONG_FIELD_PARAM = "ASDF:ASC"; @Test + @Description("Ascending sorting based on name.") public void parseSortParam1() { - final List parse = SortUtility.parse(TargetFields.class, SORT_PARAM_1); - assertEquals(1, parse.size()); + assertThat(1).as("Count of parsing parameter").isEqualTo(parse.size()); } @Test + @Description("Ascending sorting based on name and descending sorting based on description.") public void parseSortParam2() { final List parse = SortUtility.parse(TargetFields.class, SORT_PARAM_2); - assertEquals(2, parse.size()); - } - - @Test(expected = SortParameterSyntaxErrorException.class) - public void parseWrongSyntaxParam() { - SortUtility.parse(TargetFields.class, SYNTAX_FAILURE_SORT_PARAM); + assertThat(2).as("Count of parsing parameter").isEqualTo(parse.size()); } @Test + @Description("Sorting with wrong syntax leads to SortParameterSyntaxErrorException.") + public void parseWrongSyntaxParam() { + try { + SortUtility.parse(TargetFields.class, SYNTAX_FAILURE_SORT_PARAM); + fail("SortParameterSyntaxErrorException expected because of wrong syntax"); + } catch (final SortParameterSyntaxErrorException e) { + } + } + + @Test + @Description("Sorting based on name with case sensitive is possible.") public void parsingIsNotCaseSensitive() { SortUtility.parse(TargetFields.class, CASE_INSENSITIVE_DIRECTION_PARAM); SortUtility.parse(TargetFields.class, CASE_INSENSITIVE_DIRECTION_PARAM_1); } - @Test(expected = SortParameterUnsupportedDirectionException.class) + @Test + @Description("Sorting with unknown direction order leads to SortParameterUnsupportedDirectionException.") public void parseWrongDirectionParam() { - SortUtility.parse(TargetFields.class, WRONG_DIRECTION_PARAM); + try { + SortUtility.parse(TargetFields.class, WRONG_DIRECTION_PARAM); + fail("SortParameterUnsupportedDirectionException expected because of unknown direction order"); + } catch (final SortParameterUnsupportedDirectionException e) { + } + } - @Test(expected = SortParameterUnsupportedFieldException.class) + @Test + @Description("Sorting with unknown field leads to SortParameterUnsupportedFieldException.") public void parseWrongFieldParam() { - SortUtility.parse(TargetFields.class, WRONG_FIELD_PARAM); + try { + SortUtility.parse(TargetFields.class, WRONG_FIELD_PARAM); + fail("SortParameterUnsupportedFieldException expected because of unknown field"); + } catch (final SortParameterUnsupportedFieldException e) { + } + } } diff --git a/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/rest/resource/model/ExceptionInfoTest.java b/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/rest/resource/model/ExceptionInfoTest.java index e9601d693..ab5012d73 100644 --- a/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/rest/resource/model/ExceptionInfoTest.java +++ b/hawkbit-rest-resource/src/test/java/org/eclipse/hawkbit/rest/resource/model/ExceptionInfoTest.java @@ -32,10 +32,15 @@ public class ExceptionInfoTest { underTest.setMessage(knownMessage); underTest.setParameters(knownParameters); - assertThat(underTest.getErrorCode()).isEqualTo(knownErrorCode); - assertThat(underTest.getExceptionClass()).isEqualTo(knownExceptionClass); - assertThat(underTest.getMessage()).isEqualTo(knownMessage); - assertThat(underTest.getParameters()).isEqualTo(knownParameters); + assertThat(underTest.getErrorCode()).as("The error code should match with the known error code in the test") + .isEqualTo(knownErrorCode); + assertThat(underTest.getExceptionClass()) + .as("The exception class should match with the known error code in the test") + .isEqualTo(knownExceptionClass); + assertThat(underTest.getMessage()).as("The message should match with the known error code in the test") + .isEqualTo(knownMessage); + assertThat(underTest.getParameters()).as("The parameters should match with the known error code in the test") + .isEqualTo(knownParameters); } } diff --git a/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/ExcludePathAwareShallowETagFilterTest.java b/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/ExcludePathAwareShallowETagFilterTest.java index ce663fbfb..d3dc066f1 100644 --- a/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/ExcludePathAwareShallowETagFilterTest.java +++ b/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/ExcludePathAwareShallowETagFilterTest.java @@ -56,7 +56,8 @@ public class ExcludePathAwareShallowETagFilterTest { filterUnderTest.doFilterInternal(servletRequestMock, servletResponseMock, filterChainMock); // verify no eTag header is set and response has not been changed - assertThat(servletResponseMock.getHeader("ETag")).isNull(); + assertThat(servletResponseMock.getHeader("ETag")) + .as("ETag header should not be set during downloading, too expensive").isNull(); // the servlet response must be the same mock! verify(filterChainMock, times(1)).doFilter(servletRequestMock, servletResponseMock); } diff --git a/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/util/IpUtilTest.java b/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/util/IpUtilTest.java index 47e9bfe9a..73995259d 100644 --- a/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/util/IpUtilTest.java +++ b/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/util/IpUtilTest.java @@ -53,7 +53,8 @@ public class IpUtilTest { final URI remoteAddr = IpUtil.getClientIpFromRequest(requestMock, "bumlux"); // verify - assertThat(remoteAddr).isEqualTo(knownRemoteClientIP); + assertThat(remoteAddr).as("The remote address should be as the known client IP address") + .isEqualTo(knownRemoteClientIP); verify(requestMock, times(1)).getHeader("bumlux"); verify(requestMock, times(1)).getRemoteAddr(); } @@ -71,7 +72,8 @@ public class IpUtilTest { final URI remoteAddr = IpUtil.getClientIpFromRequest(requestMock, "X-Forwarded-For"); // verify - assertThat(remoteAddr).isEqualTo(knownRemoteClientIP); + assertThat(remoteAddr).as("The remote address should be as the known client IP address") + .isEqualTo(knownRemoteClientIP); verify(requestMock, times(1)).getHeader(HttpHeaders.X_FORWARDED_FOR); verify(requestMock, times(0)).getRemoteAddr(); } @@ -94,10 +96,10 @@ public class IpUtilTest { } private void assertHttpUri(final String host, final URI httpUri) { - assertTrue(IpUtil.isHttpUri(httpUri)); - assertFalse(IpUtil.isAmqpUri(httpUri)); - assertEquals(host, httpUri.getHost()); - assertEquals("http", httpUri.getScheme()); + assertTrue("The given URI has an http scheme", IpUtil.isHttpUri(httpUri)); + assertFalse("The given URI is not an AMQP scheme", IpUtil.isAmqpUri(httpUri)); + assertEquals("The URI hosts matches the given host", host, httpUri.getHost()); + assertEquals("The given URI scheme is http", "http", httpUri.getScheme()); } @Test @@ -117,23 +119,27 @@ public class IpUtilTest { } private void assertAmqpUri(final String host, final URI amqpUri) { - assertTrue(IpUtil.isAmqpUri(amqpUri)); - assertFalse(IpUtil.isHttpUri(amqpUri)); - assertEquals(host, amqpUri.getHost()); - assertEquals("amqp", amqpUri.getScheme()); - assertEquals("/path", amqpUri.getRawPath()); + assertTrue("The given URI is an AMQP scheme", IpUtil.isAmqpUri(amqpUri)); + assertFalse("The given URI is not an HTTP scheme", IpUtil.isHttpUri(amqpUri)); + assertEquals("The given host matches the URI host", host, amqpUri.getHost()); + assertEquals("The given URI has an AMQP scheme", "amqp", amqpUri.getScheme()); + assertEquals("The given URI has an AMQP path", "/path", amqpUri.getRawPath()); } - @Test(expected = IllegalArgumentException.class) + @Test @Description("Tests create invalid uri") public void testCreateInvalidUri() { final String host = "10.99.99.1"; final URI testUri = IpUtil.createUri("test", host); - assertFalse(IpUtil.isAmqpUri(testUri)); - assertFalse(IpUtil.isHttpUri(testUri)); - assertEquals(host, testUri.getHost()); - IpUtil.createUri(":/", host); - fail(); + assertFalse("The given URI is not an AMQP address", IpUtil.isAmqpUri(testUri)); + assertFalse("The given URI is not an HTTP address", IpUtil.isHttpUri(testUri)); + assertEquals("The given host matches the URI host", host, testUri.getHost()); + try { + IpUtil.createUri(":/", host); + fail("Missing expected IllegalArgumentException due invalid URI"); + } catch (final IllegalArgumentException e) { + // expected + } } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/details/ArtifactDetailsLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/details/ArtifactDetailsLayout.java index d0ba20db6..1bc9da65c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/details/ArtifactDetailsLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/details/ArtifactDetailsLayout.java @@ -208,14 +208,13 @@ public class ArtifactDetailsLayout extends VerticalLayout { } private Container createArtifactLazyQueryContainer() { - final Map queryConfiguration = new HashMap(); + final Map queryConfiguration = new HashMap<>(); return getArtifactLazyQueryContainer(queryConfiguration); } private LazyQueryContainer getArtifactLazyQueryContainer(final Map queryConfig) { - final BeanQueryFactory artifactQF = new BeanQueryFactory( - ArtifactBeanQuery.class); + final BeanQueryFactory artifactQF = new BeanQueryFactory<>(ArtifactBeanQuery.class); artifactQF.setQueryConfiguration(queryConfig); final LazyQueryContainer artifactCont = new LazyQueryContainer(new LazyQueryDefinition(true, 10, "id"), artifactQF); @@ -431,7 +430,7 @@ public class ArtifactDetailsLayout extends VerticalLayout { titleOfArtifactDetails.setContentMode(ContentMode.HTML); } } - final Map queryConfiguration = new HashMap(); + final Map queryConfiguration = new HashMap<>(); if (baseSwModuleId != null) { queryConfiguration.put(SPUIDefinitions.BY_BASE_SOFTWARE_MODULE, baseSwModuleId); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/UploadViewAcceptCriteria.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/UploadViewAcceptCriteria.java index a4ae322fa..a3f045a08 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/UploadViewAcceptCriteria.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/UploadViewAcceptCriteria.java @@ -47,12 +47,6 @@ public class UploadViewAcceptCriteria extends AbstractAcceptCriteria { @Autowired private transient EventBus.SessionEventBus eventBus; - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.AbstractAcceptCriteria#analyseDragComponent - * (com.vaadin.event .dd.DragAndDropEvent, com.vaadin.ui.Component) - */ @Override protected void analyseDragComponent(final Component compsource) { final String sourceID = getComponentId(compsource); @@ -60,24 +54,11 @@ public class UploadViewAcceptCriteria extends AbstractAcceptCriteria { eventBus.publish(this, event); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.AbstractAcceptCriteria#hideDropHints - * () - */ @Override protected void hideDropHints() { eventBus.publish(this, DragEvent.HIDE_DROP_HINT); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.AbstractAcceptCriteria#invalidDrop() - */ @Override protected void invalidDrop() { uiNotification.displayValidationError(SPUILabelDefinitions.ACTION_NOT_ALLOWED); @@ -92,41 +73,23 @@ public class UploadViewAcceptCriteria extends AbstractAcceptCriteria { return id; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.AbstractAcceptCriteria# - * getDropHintConfigurations() - */ @Override protected Map getDropHintConfigurations() { return DROP_HINTS_CONFIGS; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.AbstractAcceptCriteria# - * publishDragStartEvent(java.lang.Object) - */ @Override protected void publishDragStartEvent(final Object event) { eventBus.publish(this, event); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.AbstractAcceptCriteria# - * getDropConfigurations() - */ @Override protected Map> getDropConfigurations() { return DROP_CONFIGS; } private static Map> createDropConfigurations() { - final Map> config = new HashMap>(); + final Map> config = new HashMap<>(); // Delete drop area droppable components config.put(SPUIComponetIdProvider.DELETE_BUTTON_WRAPPER_ID, Arrays.asList( SPUIComponetIdProvider.UPLOAD_SOFTWARE_MODULE_TABLE, SPUIComponetIdProvider.UPLOAD_TYPE_BUTTON_PREFIX)); @@ -135,7 +98,7 @@ public class UploadViewAcceptCriteria extends AbstractAcceptCriteria { } private static Map createDropHintConfigurations() { - final Map config = new HashMap(); + final Map config = new HashMap<>(); config.put(SPUIComponetIdProvider.UPLOAD_TYPE_BUTTON_PREFIX, UploadArtifactUIEvent.SOFTWARE_TYPE_DRAG_START); config.put(SPUIComponetIdProvider.UPLOAD_SOFTWARE_MODULE_TABLE, UploadArtifactUIEvent.SOFTWARE_DRAG_START); return config; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/footer/SMDeleteActionsLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/footer/SMDeleteActionsLayout.java index 841256da4..ef4b17da7 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/footer/SMDeleteActionsLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/footer/SMDeleteActionsLayout.java @@ -8,6 +8,7 @@ */ package org.eclipse.hawkbit.ui.artifacts.footer; +import java.util.HashSet; import java.util.Set; import javax.annotation.PostConstruct; @@ -21,6 +22,7 @@ import org.eclipse.hawkbit.ui.common.footer.AbstractDeleteActionsLayout; import org.eclipse.hawkbit.ui.management.event.DragEvent; import org.eclipse.hawkbit.ui.utils.I18N; import org.eclipse.hawkbit.ui.utils.SPUIComponetIdProvider; +import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions; import org.eclipse.hawkbit.ui.utils.UINotification; import org.springframework.beans.factory.annotation.Autowired; @@ -35,6 +37,7 @@ import com.vaadin.spring.annotation.ViewScope; import com.vaadin.ui.Component; import com.vaadin.ui.Label; import com.vaadin.ui.Table; +import com.vaadin.ui.Table.TableTransferable; import com.vaadin.ui.UI; /** @@ -68,12 +71,7 @@ public class SMDeleteActionsLayout extends AbstractDeleteActionsLayout { @Autowired private UploadViewAcceptCriteria uploadViewAcceptCriteria; - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.DeleteActionsLayout#init() - */ + @Override @PostConstruct protected void init() { super.init(); @@ -131,23 +129,11 @@ public class SMDeleteActionsLayout extends AbstractDeleteActionsLayout { } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.footer.DeleteActionsLayout# - * hasDeletePermission() - */ @Override protected boolean hasDeletePermission() { return permChecker.hasDeleteDistributionPermission(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.footer.DeleteActionsLayout# - * hasUpdatePermission() - */ @Override protected boolean hasUpdatePermission() { /** @@ -158,12 +144,6 @@ public class SMDeleteActionsLayout extends AbstractDeleteActionsLayout { return false; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.footer.DeleteActionsLayout# - * getDeleteAreaLabel() - */ @Override protected String getDeleteAreaLabel() { return i18n.get("label.software.module.drop.area"); @@ -174,29 +154,17 @@ public class SMDeleteActionsLayout extends AbstractDeleteActionsLayout { return SPUIComponetIdProvider.DELETE_BUTTON_WRAPPER_ID; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.footer.DeleteActionsLayout# - * getDeleteLayoutAcceptCriteria() - */ @Override protected AcceptCriterion getDeleteLayoutAcceptCriteria() { return uploadViewAcceptCriteria; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.footer.DeleteActionsLayout# - * processDroppedComponent(com.vaadin .event.dd.DragAndDropEvent) - */ @Override protected void processDroppedComponent(final DragAndDropEvent event) { final Component sourceComponent = event.getTransferable().getSourceComponent(); if (sourceComponent instanceof Table) { final Table sourceTable = (Table) event.getTransferable().getSourceComponent(); - addToDeleteList(sourceTable); + addToDeleteList(sourceTable, (TableTransferable) event.getTransferable()); updateSWActionCount(); } if (sourceComponent.getId().startsWith(SPUIComponetIdProvider.UPLOAD_TYPE_BUTTON_PREFIX)) { @@ -221,41 +189,33 @@ public class SMDeleteActionsLayout extends AbstractDeleteActionsLayout { artifactUploadState.getSelectedDeleteSWModuleTypes().add(swModuleTypeName); } - private void addToDeleteList(final Table sourceTable) { - final Set swModuleIds = (Set) sourceTable.getValue(); - swModuleIds.forEach(id -> { + private void addToDeleteList(final Table sourceTable, final TableTransferable transferable) { + @SuppressWarnings("unchecked") + final Set swModuleSelected = (Set) sourceTable.getValue(); + final Set swModuleIdNameSet = new HashSet<>(); + if (!swModuleSelected.contains(transferable.getData(SPUIDefinitions.ITEMID))) { + swModuleIdNameSet.add((Long) transferable.getData(SPUIDefinitions.ITEMID)); + } else { + swModuleIdNameSet.addAll(swModuleSelected); + } + swModuleIdNameSet.forEach(id -> { final String swModuleName = (String) sourceTable.getContainerDataSource().getItem(id) .getItemProperty(SPUILabelDefinitions.NAME_VERSION).getValue(); artifactUploadState.getDeleteSofwareModules().put(id, swModuleName); }); } - /** - * Update the software module delete count. - */ private void updateSWActionCount() { final int count = artifactUploadState.getDeleteSofwareModules().size() + artifactUploadState.getSelectedDeleteSWModuleTypes().size(); updateActionsCount(count); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.footer.DeleteActionsLayout# - * getNoActionsButtonLabel() - */ @Override protected String getNoActionsButtonLabel() { return i18n.get("button.no.actions"); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.footer.DeleteActionsLayout# - * getActionsButtonLabel() - */ @Override protected String getActionsButtonLabel() { return i18n.get("button.actions"); @@ -266,25 +226,11 @@ public class SMDeleteActionsLayout extends AbstractDeleteActionsLayout { updateSWActionCount(); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * getUnsavedActionsWindowCaption () - */ @Override protected String getUnsavedActionsWindowCaption() { return i18n.get("caption.save.window"); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * unsavedActionsWindowClosed() - */ @Override protected void unsavedActionsWindowClosed() { final String message = uploadViewConfirmationWindowLayout.getConsolidatedMessage(); @@ -293,26 +239,12 @@ public class SMDeleteActionsLayout extends AbstractDeleteActionsLayout { } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * getUnsavedActionsWindowContent () - */ @Override protected Component getUnsavedActionsWindowContent() { uploadViewConfirmationWindowLayout.init(); return uploadViewConfirmationWindowLayout; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * hasUnsavedActions() - */ @Override protected boolean hasUnsavedActions() { return !artifactUploadState.getDeleteSofwareModules().isEmpty() @@ -329,23 +261,11 @@ public class SMDeleteActionsLayout extends AbstractDeleteActionsLayout { return null; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.footer.AbstractDeleteActionsLayout# - * isBulkUploadAllowed() - */ @Override protected boolean hasBulkUploadPermission() { return false; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.footer.AbstractDeleteActionsLayout# - * showBulkUploadWindow() - */ @Override protected void showBulkUploadWindow() { /** @@ -353,12 +273,6 @@ public class SMDeleteActionsLayout extends AbstractDeleteActionsLayout { */ } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.footer.AbstractDeleteActionsLayout# - * restoreBulkUploadStatusCount() - */ @Override protected void restoreBulkUploadStatusCount() { /** diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/BaseSwModuleBeanQuery.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/BaseSwModuleBeanQuery.java index 04339c1a6..bb48c515a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/BaseSwModuleBeanQuery.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/BaseSwModuleBeanQuery.java @@ -32,10 +32,6 @@ import com.google.common.base.Strings; * Simple implementation of generics bean query which dynamically loads a batch * of beans. * - * - * - * - * */ public class BaseSwModuleBeanQuery extends AbstractBeanQuery { private static final long serialVersionUID = 4362142538539335466L; @@ -76,7 +72,7 @@ public class BaseSwModuleBeanQuery extends AbstractBeanQuery loadBeans(final int startIndex, final int count) { final Slice swModuleBeans; - final List proxyBeans = new ArrayList(); + final List proxyBeans = new ArrayList<>(); if (type == null && Strings.isNullOrEmpty(searchText)) { swModuleBeans = getSoftwareManagementService() diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleDetails.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleDetails.java index 674152164..6eb3e3d5d 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleDetails.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleDetails.java @@ -70,6 +70,7 @@ public class SoftwareModuleDetails extends AbstractTableDetailsLayout { /** * Initialize the component. */ + @Override @PostConstruct protected void init() { super.init(); 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..aea80476a 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 @@ -55,8 +55,6 @@ import com.vaadin.ui.UI; /** * Header of Software module table. * - * - * */ @SpringComponent @ViewScope @@ -82,6 +80,7 @@ public class SoftwareModuleTable extends AbstractTable { /** * Initialize the filter layout. */ + @Override @PostConstruct protected void init() { super.init(); @@ -110,37 +109,30 @@ public class SoftwareModuleTable extends AbstractTable { }); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.SPTable#getTableId() - */ @Override protected String getTableId() { return SPUIComponetIdProvider.UPLOAD_SOFTWARE_MODULE_TABLE; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.SPTable#createContainer() - */ @Override protected Container createContainer() { - final Map queryConfiguration = new HashMap(); - artifactUploadState.getSoftwareModuleFilters().getSearchText() - .ifPresent(value -> queryConfiguration.put(SPUIDefinitions.FILTER_BY_TEXT, value)); + final Map queryConfiguration = prepareQueryConfigFilters(); - artifactUploadState.getSoftwareModuleFilters().getSoftwareModuleType() - .ifPresent(type -> queryConfiguration.put(SPUIDefinitions.BY_SOFTWARE_MODULE_TYPE, type)); - - final BeanQueryFactory swQF = new BeanQueryFactory( - BaseSwModuleBeanQuery.class); + final BeanQueryFactory swQF = new BeanQueryFactory<>(BaseSwModuleBeanQuery.class); swQF.setQueryConfiguration(queryConfiguration); - final LazyQueryContainer container = new LazyQueryContainer( - new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, "swId"), swQF); - return container; + return new LazyQueryContainer(new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, "swId"), swQF); + } + + 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 @@ -265,16 +257,9 @@ public class SoftwareModuleTable extends AbstractTable { select(swModule.getId()); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTable#getTableVisibleColumns - * () - */ @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_VERSION, i18n.get("header.version"), 0.1F)); 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..71605ec9f 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 @@ -62,6 +62,7 @@ public class SoftwareModuleTableHeader extends AbstractTableHeader { /** * Initialize the components. */ + @Override @PostConstruct protected void init() { super.init(); @@ -84,55 +85,26 @@ public class SoftwareModuleTableHeader extends AbstractTableHeader { eventbus.unsubscribe(this); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#getHeaderCaption - * () - */ @Override protected String getHeaderCaption() { return i18n.get("upload.swModuleTable.header"); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#getSearchBoxId() - */ @Override protected String getSearchBoxId() { return SPUIComponetIdProvider.SW_MODULE_SEARCH_TEXT_FIELD; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#getSearchRestIconId() - */ @Override protected String getSearchRestIconId() { return SPUIComponetIdProvider.SW_MODULE_SEARCH_RESET_ICON; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#getAddIconId() - */ @Override protected String getAddIconId() { return SPUIComponetIdProvider.SW_MODULE_ADD_BUTTON; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#onLoadSearchBoxValue() - */ @Override protected String onLoadSearchBoxValue() { if (artifactUploadState.getSoftwareModuleFilters().getSearchText().isPresent()) { @@ -141,68 +113,34 @@ public class SoftwareModuleTableHeader extends AbstractTableHeader { return null; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#getDropFilterId( - * ) - */ @Override protected String getDropFilterId() { /* No dropping on software module table header in Upload View */ return null; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#hasCreatePermission() - */ @Override protected boolean hasCreatePermission() { return permChecker.hasCreateDistributionPermission(); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#isDropHintRequired() - */ @Override protected boolean isDropHintRequired() { /* No dropping on software module table header in Upload View */ return false; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#isDropFilterRequired() - */ @Override protected boolean isDropFilterRequired() { /* No dropping on software module table header in Upload View */ return false; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.SPTableHeader# - * getShowFilterButtonLayoutId() - */ @Override protected String getShowFilterButtonLayoutId() { return "show.type.icon"; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#showFilterButtonsLayout - * () - */ @Override protected void showFilterButtonsLayout() { artifactUploadState.setSwTypeFilterClosed(false); @@ -210,37 +148,19 @@ public class SoftwareModuleTableHeader extends AbstractTableHeader { } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#resetSearchText( - * ) - */ @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); + } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#getMaxMinIconId( - * ) - */ @Override protected String getMaxMinIconId() { return SPUIComponetIdProvider.SW_MAX_MIN_TABLE_ICON; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#maximizeTable() - */ @Override public void maximizeTable() { artifactUploadState.setSwModuleTableMaximized(Boolean.TRUE); @@ -248,58 +168,28 @@ public class SoftwareModuleTableHeader extends AbstractTableHeader { } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#minimizeTable() - */ @Override public void minimizeTable() { artifactUploadState.setSwModuleTableMaximized(Boolean.FALSE); eventbus.publish(this, new SoftwareModuleEvent(SoftwareModuleEventType.MINIMIZED, null)); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#onLoadIsTableMaximized( - * ) - */ @Override public Boolean onLoadIsTableMaximized() { return artifactUploadState.isSwModuleTableMaximized(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.SPTableHeader# - * onLoadIsShowFilterButtonDisplayed() - */ @Override public Boolean onLoadIsShowFilterButtonDisplayed() { return artifactUploadState.isSwTypeFilterClosed(); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#searchBy(java.lang. - * String) - */ @Override protected void searchBy(final String newSearchText) { artifactUploadState.getSoftwareModuleFilters().setSearchText(newSearchText); eventbus.publish(this, SMFilterEvent.FILTER_BY_TEXT); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#addNewItem(com.vaadin. - * ui.Button.ClickEvent) - */ @Override protected void addNewItem(final ClickEvent event) { final Window addSoftwareModule = softwareModuleAddUpdateWindow.createAddSoftwareModuleWindow(); @@ -308,11 +198,6 @@ public class SoftwareModuleTableHeader extends AbstractTableHeader { addSoftwareModule.setVisible(Boolean.TRUE); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#canAddNewItem() - */ @Override protected Boolean isAddNewItemAllowed() { return Boolean.TRUE; @@ -333,47 +218,21 @@ public class SoftwareModuleTableHeader extends AbstractTableHeader { return null; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * getBulkUploadIconId() - */ @Override protected String getBulkUploadIconId() { return null; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#bulkUpload(com. - * vaadin.ui.Button.ClickEvent ) - */ @Override protected void bulkUpload(final ClickEvent event) { - /** - * No implementation as no bulk upload is supported. - */ + // No implementation as no bulk upload is supported. } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * isBulkUploadAllowed() - */ @Override protected Boolean isBulkUploadAllowed() { return Boolean.FALSE; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.table.AbstractTableHeader# - * isBulkUploadInProgress() - */ @Override protected boolean isBulkUploadInProgress() { return false; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java index 824faa83b..b79b53ae0 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java @@ -193,7 +193,7 @@ public class CreateUpdateSoftwareTypeLayout extends CustomComponent implements C getPreviewButtonColor(DEFAULT_COLOR); tagColorPreviewBtn.setStyleName(TAG_DYNAMIC_STYLE); - selectors = new HashSet(); + selectors = new HashSet<>(); selectedColor = new Color(44, 151, 32); selPreview = new SpColorPickerPreview(selectedColor); @@ -741,38 +741,17 @@ public class CreateUpdateSoftwareTypeLayout extends CustomComponent implements C return null; } - /* - * (non-Javadoc) - * - * @see com.vaadin.ui.components.colorpicker.HasColorChangeListener# - * addColorChangeListener(com.vaadin - * .ui.components.colorpicker.ColorChangeListener) - */ @Override public void addColorChangeListener(final ColorChangeListener listener) { LOG.debug("inside addColorChangeListener"); } - /* - * (non-Javadoc) - * - * @see com.vaadin.ui.components.colorpicker.HasColorChangeListener# - * removeColorChangeListener(com. - * vaadin.ui.components.colorpicker.ColorChangeListener) - */ @Override public void removeColorChangeListener(final ColorChangeListener listener) { LOG.debug("inside removeColorChangeListener"); } - /* - * (non-Javadoc) - * - * @see - * com.vaadin.ui.components.colorpicker.ColorSelector#setColor(com.vaadin. - * shared.ui.colorpicker .Color) - */ @Override public void setColor(final Color color) { if (color == null) { @@ -788,23 +767,11 @@ public class CreateUpdateSoftwareTypeLayout extends CustomComponent implements C } - /* - * (non-Javadoc) - * - * @see com.vaadin.ui.components.colorpicker.ColorSelector#getColor() - */ @Override public Color getColor() { return null; } - /* - * (non-Javadoc) - * - * @see - * com.vaadin.ui.components.colorpicker.ColorChangeListener#colorChanged(com - * .vaadin.ui.components .colorpicker.ColorChangeEvent) - */ @Override public void colorChanged(final ColorChangeEvent event) { setColor(event.getColor()); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterButtons.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterButtons.java index 43c2452c2..9f2aa9602 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterButtons.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterButtons.java @@ -35,8 +35,6 @@ import com.vaadin.spring.annotation.ViewScope; /** * Software module type filter buttons. * - * - * */ @SpringComponent @ViewScope @@ -59,6 +57,7 @@ public class SMTypeFilterButtons extends AbstractFilterButtons { * @param filterButtonClickBehaviour * the clickable behaviour. */ + @Override public void init(final AbstractFilterButtonClickBehaviour filterButtonClickBehaviour) { super.init(filterButtonClickBehaviour); eventBus.subscribe(this); @@ -86,58 +85,28 @@ public class SMTypeFilterButtons extends AbstractFilterButtons { } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.layouts.SPFilterButtons#getButtonsTableId() - */ @Override protected String getButtonsTableId() { return SPUIComponetIdProvider.SW_MODULE_TYPE_TABLE_ID; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.layouts.SPFilterButtons# - * createButtonsLazyQueryContainer() - */ @Override protected LazyQueryContainer createButtonsLazyQueryContainer() { return HawkbitCommonUtil.createLazyQueryContainer( new BeanQueryFactory(SoftwareModuleTypeBeanQuery.class)); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.layouts.SPFilterButtons#isClickedByDefault(java. - * lang.Long) - */ @Override protected boolean isClickedByDefault(final Long buttonId) { return artifactUploadState.getSoftwareModuleFilters().getSoftwareModuleType().isPresent() && artifactUploadState .getSoftwareModuleFilters().getSoftwareModuleType().get().getId().equals(buttonId); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.layouts.SPFilterButtons#createButtonId(java.lang. - * String) - */ @Override protected String createButtonId(final String name) { return SPUIComponetIdProvider.SM_TYPE_FILTER_BTN_ID + name; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.filterlayout.SPFilterButtons# - * getFilterButtonDropHandler() - */ @Override protected DropHandler getFilterButtonDropHandler() { return new DropHandler() { @@ -155,13 +124,6 @@ public class SMTypeFilterButtons extends AbstractFilterButtons { }; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * getButttonWrapperId() - */ @Override protected String getButttonWrapperIdPrefix() { return SPUIComponetIdProvider.UPLOAD_TYPE_BUTTON_PREFIX; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterHeader.java index d0292dd48..b79ecb742 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterHeader.java @@ -28,9 +28,6 @@ import com.vaadin.ui.Window; /** * Software module type filter buttons header. - * - * - * */ @SpringComponent @ViewScope @@ -53,6 +50,7 @@ public class SMTypeFilterHeader extends AbstractFilterHeader { /** * Initialize the components. */ + @Override @PostConstruct protected void init() { super.init(); @@ -61,32 +59,16 @@ public class SMTypeFilterHeader extends AbstractFilterHeader { } } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.layouts.SPFilterHeader#hasCreateUpdatePermission() - */ @Override protected boolean hasCreateUpdatePermission() { return permChecker.hasCreateDistributionPermission() || permChecker.hasUpdateDistributionPermission(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.layouts.SPFilterHeader#getTitle() - */ @Override protected String getTitle() { return SPUILabelDefinitions.TYPE; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.layouts.SPFilterHeader#settingsIconClicked(com. - * vaadin.ui.Button.ClickEvent ) - */ @Override protected void settingsIconClicked(final ClickEvent event) { final Window addUpdateWindow = createUpdateSWTypeLayout.getWindow(); @@ -94,58 +76,27 @@ public class SMTypeFilterHeader extends AbstractFilterHeader { addUpdateWindow.setVisible(Boolean.TRUE); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.layouts.SPFilterHeader#dropHitsRequired() - */ @Override protected boolean dropHitsRequired() { return false; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.filterlayout.SPFilterHeader# - * hideFilterButtonLayout() - */ @Override protected void hideFilterButtonLayout() { artifactUploadState.setSwTypeFilterClosed(true); eventbus.publish(this, UploadArtifactUIEvent.HIDE_FILTER_BY_TYPE); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.filterlayout.SPFilterHeader# - * getConfigureFilterButtonId() - */ @Override protected String getConfigureFilterButtonId() { return SPUIDefinitions.ADD_SOFTWARE_MODULE_TYPE; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * getHideButtonId() - */ @Override protected String getHideButtonId() { return SPUIComponetIdProvider.SM_SHOW_FILTER_BUTTON_ID; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterHeader# - * isAddTagRequired() - */ @Override protected boolean isAddTagRequired() { return true; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadConfirmationwindow.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadConfirmationwindow.java index 51ac43ba5..f009985f9 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadConfirmationwindow.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadConfirmationwindow.java @@ -56,11 +56,7 @@ import com.vaadin.ui.themes.ValoTheme; /** * Artifact upload confirmation popup. - * - * - * - * - * + * */ public class UploadConfirmationwindow implements Button.ClickListener { @@ -106,7 +102,7 @@ public class UploadConfirmationwindow implements Button.ClickListener { private IndexedContainer tabelContainer; - private final List uploadResultList = new ArrayList(); + private final List uploadResultList = new ArrayList<>(); private VerticalLayout uploadArtifactDetails; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadHandler.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadHandler.java index 834246c63..8c1feeb33 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadHandler.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadHandler.java @@ -108,8 +108,10 @@ public class UploadHandler implements StreamVariable, Receiver, SucceededListene public OutputStream receiveUpload(final String fileName, final String mimeType) { this.fileName = fileName; this.mimeType = mimeType; + //reset has directory flag before upload + view.setHasDirectory(false); try { - if (view.validate()) { + if (view.checkIfSoftwareModuleIsSelected()) { if (view.checkForDuplicate(fileName)) { view.showDuplicateMessage(); } else { @@ -167,7 +169,7 @@ public class UploadHandler implements StreamVariable, Receiver, SucceededListene view.updateActionCount(); // display the duplicate message after streaming all files - view.displayDuplicateMessageAfterStreamingAll(); + view.displayDuplicateValidationMessage(); } /** @@ -292,7 +294,7 @@ public class UploadHandler implements StreamVariable, Receiver, SucceededListene if (view.enableProcessBtn()) { infoWindow.uploadSessionFinished(); } - view.displayDuplicateMessageAfterStreamingAll(); + view.displayDuplicateValidationMessage(); LOG.info("Streaming failed due to :{}", event.getException()); } @@ -316,7 +318,6 @@ public class UploadHandler implements StreamVariable, Receiver, SucceededListene } view.updateActionCount(); infoWindow.uploadFailed(event.getFilename(), failureReason); - LOG.info("Upload failed for file :{}", event.getReason()); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadLayout.java index e570c84c4..41304ddc9 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadLayout.java @@ -46,6 +46,7 @@ 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.vaadin.event.dd.DragAndDropEvent; import com.vaadin.event.dd.DropHandler; import com.vaadin.event.dd.acceptcriteria.AcceptAll; @@ -69,8 +70,6 @@ import com.vaadin.ui.VerticalLayout; /** * Upload files layout. - * - * */ @ViewScope @SpringComponent @@ -102,7 +101,7 @@ public class UploadLayout extends VerticalLayout { private final AtomicInteger numberOfFilesActuallyUpload = new AtomicInteger(); - private final List duplicateFileNamesList = new ArrayList(); + private final List duplicateFileNamesList = new ArrayList<>(); private Button processBtn; @@ -118,6 +117,8 @@ public class UploadLayout extends VerticalLayout { private DragAndDropWrapper dropAreaWrapper; + private Boolean hasDirectory = Boolean.FALSE; + /** * Initialize the upload layout. */ @@ -184,27 +185,60 @@ public class UploadLayout extends VerticalLayout { @Override public void drop(final DragAndDropEvent event) { - if (validate()) { - + if (validate(event)) { final Html5File[] files = ((WrapperTransferable) event.getTransferable()).getFiles(); - if (files != null) { - for (final Html5File file : files) { - if (!checkForDuplicate(file.getFileName())) { - numberOfFileUploadsExpected.incrementAndGet(); - file.setStreamVariable(createStreamVariable(file)); - } - } - if (numberOfFileUploadsExpected.get() > 0) { - processBtn.setEnabled(false); - // reset before we start - uploadInfoWindow.uploadSessionStarted(); - } - // in case if all selected files are duplicate ,then display - // message - displayDuplicateMessageAfterStreamingAll(); + // reset the flag + hasDirectory = Boolean.FALSE; + for (final Html5File file : files) { + processFile(file); + } + if (numberOfFileUploadsExpected.get() > 0) { + processBtn.setEnabled(false); + // reset before we start + uploadInfoWindow.uploadSessionStarted(); + } else { + // If the upload is not started, it signifies all + // dropped files as either duplicate or directory.So + // display message accordingly + displayCompositeMessage(); } } } + + private void processFile(final Html5File file) { + if (!isDirectory(file)) { + if (!checkForDuplicate(file.getFileName())) { + numberOfFileUploadsExpected.incrementAndGet(); + file.setStreamVariable(createStreamVariable(file)); + } + } else { + hasDirectory = Boolean.TRUE; + } + } + } + + private static boolean isDirectory(final Html5File file) { + if (Strings.isNullOrEmpty(file.getType()) && file.getFileSize() % 4096 == 0) { + return true; + } + return false; + } + + private void displayCompositeMessage() { + final String duplicateMessage = getDuplicateFileValidationMessage(); + final StringBuilder compositeMessage = new StringBuilder(); + if (!Strings.isNullOrEmpty(duplicateMessage)) { + compositeMessage.append(duplicateMessage); + } + if (hasDirectory) { + if (compositeMessage.length() > 0) { + compositeMessage.append("
"); + } + compositeMessage.append(i18n.get("message.no.directory.upload")); + } + if (!compositeMessage.toString().isEmpty()) { + uiNotification.displayValidationError(compositeMessage.toString()); + } } private VerticalLayout createDropAreaLayout() { @@ -315,10 +349,33 @@ public class UploadLayout extends VerticalLayout { } } - Boolean validate() { + Boolean validate(DragAndDropEvent event) { + // check if drop is valid.If valid ,check if software module is + // selected. + if(!isFilesDropped(event)){ + uiNotification.displayValidationError(i18n.get("message.action.not.allowed")); + return false; + } + return checkIfSoftwareModuleIsSelected(); + } + + private boolean isFilesDropped(DragAndDropEvent event) { + if (event.getTransferable() instanceof WrapperTransferable) { + final Html5File[] files = ((WrapperTransferable) event.getTransferable()).getFiles(); + // other components can also be wrapped in WrapperTransferable , so + // additional check on files + if (files == null) { + return false; + } + return true; + } else { + return false; + } + } + + Boolean checkIfSoftwareModuleIsSelected() { if (!isSoftwareModuleSelected()) { uiNotification.displayValidationError(i18n.get("message.error.noSwModuleSelected")); - return false; } return true; @@ -383,27 +440,30 @@ public class UploadLayout extends VerticalLayout { } } - void displayDuplicateMessageAfterStreamingAll() { + void displayDuplicateValidationMessage() { // check if streaming of all dropped files are completed if (numberOfFilesActuallyUpload.intValue() == numberOfFileUploadsExpected.intValue()) { - showDuplicateMessage(); + displayCompositeMessage(); } } - /** - * Show duplicate file selected message. - */ - public void showDuplicateMessage() { + private String getDuplicateFileValidationMessage() { + StringBuilder message = new StringBuilder(); if (!duplicateFileNamesList.isEmpty()) { final String fileNames = StringUtils.collectionToCommaDelimitedString(duplicateFileNamesList); if (duplicateFileNamesList.size() == 1) { - uiNotification.displayValidationError(i18n.get("message.no.duplicateFile") + fileNames); + message.append(i18n.get("message.no.duplicateFile") + fileNames); } else if (duplicateFileNamesList.size() > 1) { - uiNotification.displayValidationError(i18n.get("message.no.duplicateFiles")); + message.append(i18n.get("message.no.duplicateFiles")); } duplicateFileNamesList.clear(); } + return message.toString(); + } + + public void showDuplicateMessage() { + uiNotification.displayValidationError(getDuplicateFileValidationMessage()); } void increaseNumberOfFileUploadsExpected() { @@ -595,4 +655,8 @@ public class UploadLayout extends VerticalLayout { return uiNotification; } + + public void setHasDirectory(Boolean hasDirectory) { + this.hasDirectory = hasDirectory; + } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadResultWindow.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadResultWindow.java index a4470b8e1..c5319a221 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadResultWindow.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadResultWindow.java @@ -44,7 +44,7 @@ public class UploadResultWindow implements Button.ClickListener { private static final long serialVersionUID = 5205927189362269027L; - private List uploadResultList = new ArrayList(); + private List uploadResultList = new ArrayList<>(); private Button closeBtn; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/ConfirmationDialog.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/ConfirmationDialog.java index 7ee6de97c..c0f42909d 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/ConfirmationDialog.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/ConfirmationDialog.java @@ -29,9 +29,6 @@ import com.vaadin.ui.themes.ValoTheme; * * module. * - * - * - * */ public class ConfirmationDialog implements Button.ClickListener { /** Serial version UID. */ @@ -127,6 +124,7 @@ public class ConfirmationDialog implements Button.ClickListener { * @param event * the click event. */ + @Override public void buttonClick(final ClickEvent event) { if (window.getParent() != null) { UI.getCurrent().removeWindow(window); @@ -146,6 +144,7 @@ public class ConfirmationDialog implements Button.ClickListener { /** * Interface for confirmation dialog callbacks. */ + @FunctionalInterface public interface ConfirmationDialogCallback { /** * The user response. diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/DistributionSetTypeBeanQuery.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/DistributionSetTypeBeanQuery.java index 787e51d83..b09255bc7 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/DistributionSetTypeBeanQuery.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/DistributionSetTypeBeanQuery.java @@ -83,7 +83,7 @@ public class DistributionSetTypeBeanQuery extends AbstractBeanQuery loadBeans(final int startIndex, final int count) { Page typeBeans; - final List distSetTypeList = new ArrayList(); + final List distSetTypeList = new ArrayList<>(); if (startIndex == 0 && firstPageDistSetType != null) { typeBeans = firstPageDistSetType; } else { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/DistributionTagToken.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/DistributionTagToken.java index ebcd097c3..c8824e455 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/DistributionTagToken.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/DistributionTagToken.java @@ -45,8 +45,6 @@ import com.vaadin.ui.UI; /** * Implementation of target/ds tag token layout. - * - * * */ @SpringComponent @@ -80,6 +78,7 @@ public class DistributionTagToken extends AbstractTagToken { // To Be Done : have to set this value based on view??? private static final Boolean NOTAGS_SELECTED = Boolean.FALSE; + @Override @PostConstruct protected void init() { super.init(); @@ -88,34 +87,16 @@ public class DistributionTagToken extends AbstractTagToken { } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.tagDetails.AbstractTagToken#getTagStyleName - * () - */ @Override protected String getTagStyleName() { return "distribution-tag-"; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.tagDetails.AbstractTagToken# - * getTokenInputPrompt() - */ @Override protected String getTokenInputPrompt() { return i18n.get("combo.type.tag.name"); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.tagDetails.AbstractTagToken#assignTag(java. - * lang.String) - */ @Override protected void assignTag(final String tagNameSelected) { if (tagNameSelected != null) { @@ -129,7 +110,7 @@ public class DistributionTagToken extends AbstractTagToken { } private DistributionSetTagAssigmentResult toggleAssignment(final String tagNameSelected) { - final Set distributionList = new HashSet(); + final Set distributionList = new HashSet<>(); distributionList.add(selectedDS.getId()); final DistributionSetTagAssigmentResult result = distributionSetManagement.toggleTagAssignment(distributionList, tagNameSelected); @@ -137,12 +118,6 @@ public class DistributionTagToken extends AbstractTagToken { return result; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.tagDetails.AbstractTagToken#unassignTag( - * java.lang.String) - */ @Override protected void unassignTag(final String tagName) { final DistributionSetTagAssigmentResult result = toggleAssignment(tagName); @@ -160,26 +135,14 @@ public class DistributionTagToken extends AbstractTagToken { /* To Be Done : this implementation will vary in views */ private List getClickedTagList() { - return new ArrayList(); + return new ArrayList<>(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.tagDetails.AbstractTagToken# - * hasUpdatePermission() - */ @Override protected Boolean isToggleTagAssignmentAllowed() { return spChecker.hasUpdateDistributionPermission(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.tagDetails.AbstractTagToken# - * displayAlreadyAssignedTags() - */ @Override public void displayAlreadyAssignedTags() { removePreviouslyAddedTokens(); @@ -190,12 +153,6 @@ public class DistributionTagToken extends AbstractTagToken { } } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.tagDetails.AbstractTagToken# - * populateContainer() - */ @Override protected void populateContainer() { container.removeAllItems(); 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..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 @@ -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; @@ -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 = null; - 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); } @@ -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/decorators/SPUIButtonStylePrimarySmall.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStylePrimarySmall.java index e96a2824f..ee0fa0a93 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStylePrimarySmall.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStylePrimarySmall.java @@ -14,29 +14,11 @@ import com.vaadin.ui.themes.ValoTheme; /** * Style for button: Primary. - * - * - * - * - * - * */ public class SPUIButtonStylePrimarySmall implements SPUIButtonDecorator { - /** - * Decorate Button and return. - * - * @param button - * as Button - * @param style - * as String - * @param setStyle - * as String - * @param icon - * as resource - * @return Button - */ - public Button decorate(Button button, String style, boolean setStyle, Resource icon) { + @Override + public Button decorate(final Button button, final String style, final boolean setStyle, final Resource icon) { button.addStyleName(ValoTheme.BUTTON_PRIMARY + " " + ValoTheme.BUTTON_SMALL); // Set Style if (null != style) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleSmall.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleSmall.java index 5b67572c9..6166dbf5a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleSmall.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleSmall.java @@ -14,29 +14,12 @@ import com.vaadin.ui.themes.ValoTheme; /** * Style for button: Small. - * - * - * - * - * * */ public class SPUIButtonStyleSmall implements SPUIButtonDecorator { - /** - * Decorate Button and return. - * - * @param button - * as Button - * @param style - * as String - * @param setStyle - * as String - * @param icon - * as resource - * @return Button - */ - public Button decorate(Button button, String style, boolean setStyle, Resource icon) { + @Override + public Button decorate(final Button button, final String style, final boolean setStyle, final Resource icon) { button.addStyleName(ValoTheme.BUTTON_SMALL); // Set Style if (null != style) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleSmallNoBorderUH.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleSmallNoBorderUH.java index 612f954cf..5b4dae0a3 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleSmallNoBorderUH.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleSmallNoBorderUH.java @@ -14,29 +14,12 @@ import com.vaadin.ui.themes.ValoTheme; /** * Style for button: Small NoBorder Height UnDefined. - * - * - * - * - * * */ public class SPUIButtonStyleSmallNoBorderUH implements SPUIButtonDecorator { - /** - * Decorate Button and return. - * - * @param button - * as Button - * @param style - * as String - * @param setStyle - * as String - * @param icon - * as resource - * @return Button - */ - public Button decorate(Button button, String style, boolean setStyle, Resource icon) { + @Override + public Button decorate(final Button button, final String style, final boolean setStyle, final Resource icon) { button.addStyleName(ValoTheme.BUTTON_SMALL); button.addStyleName(ValoTheme.BUTTON_BORDERLESS_COLORED); button.setHeightUndefined(); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleSmallNoBorderUHS.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleSmallNoBorderUHS.java index e75fdcfa8..f06fbd413 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleSmallNoBorderUHS.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleSmallNoBorderUHS.java @@ -14,29 +14,12 @@ import com.vaadin.ui.themes.ValoTheme; /** * Style for button: Small NoBorder Height and size UnDefined. - * - * - * - * - * * */ public class SPUIButtonStyleSmallNoBorderUHS implements SPUIButtonDecorator { - /** - * Decorate Button and return. - * - * @param button - * as Button - * @param style - * as String - * @param setStyle - * as String - * @param icon - * as resource - * @return Button - */ - public Button decorate(Button button, String style, boolean setStyle, Resource icon) { + @Override + public Button decorate(final Button button, final String style, final boolean setStyle, final Resource icon) { button.addStyleName(ValoTheme.BUTTON_SMALL); button.addStyleName(ValoTheme.BUTTON_BORDERLESS); button.setHeightUndefined(); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleTiny.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleTiny.java index 4dbe4b304..eaa319929 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleTiny.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleTiny.java @@ -14,29 +14,12 @@ import com.vaadin.ui.themes.ValoTheme; /** * Style for button: Small. - * - * - * - * - * * */ public class SPUIButtonStyleTiny implements SPUIButtonDecorator { - /** - * Decorate Button and return. - * - * @param button - * as Button - * @param style - * as String - * @param setStyle - * as String - * @param icon - * as resource - * @return Button - */ - public Button decorate(Button button, String style, boolean setStyle, Resource icon) { + @Override + public Button decorate(final Button button, final String style, final boolean setStyle, final Resource icon) { button.addStyleName(ValoTheme.BUTTON_TINY); // Set Style if (null != style) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUITagButtonStyle.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUITagButtonStyle.java index 2ecca2b4f..014bdbfb9 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUITagButtonStyle.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUITagButtonStyle.java @@ -16,27 +16,10 @@ import com.vaadin.ui.themes.ValoTheme; /** * Style for button: Tag. - * - * - * - * - * - * */ public class SPUITagButtonStyle implements SPUIButtonDecorator { - /** - * Decorate Button and return. - * - * @param button - * as Button - * @param style - * as String - * @param setStyle - * as String - * @param icon - * as resource - * @return Button - */ + + @Override public Button decorate(final Button button, final String style, final boolean setStyle, final Resource icon) { /** diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java index 3cd1764e3..4fed0dd4b 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java @@ -79,8 +79,6 @@ import com.vaadin.ui.themes.ValoTheme; /** * Window for create update Distribution Set Type. - * - * */ @SpringComponent @ViewScope @@ -221,7 +219,7 @@ public class CreateUpdateDistSetTypeLayout extends CustomComponent implements Co getPreviewButtonColor(DEFAULT_COLOR); - selectors = new HashSet(); + selectors = new HashSet<>(); selectedColor = new Color(44, 151, 32); selPreview = new SpColorPickerPreview(selectedColor); @@ -457,6 +455,7 @@ public class CreateUpdateDistSetTypeLayout extends CustomComponent implements Co sourceTable.setItemDescriptionGenerator(new ItemDescriptionGenerator() { private static final long serialVersionUID = 1L; + @Override public String generateDescription(final Component source, final Object itemId, final Object propertyId) { final Item item = sourceTable.getItem(itemId); final String description = (String) item.getItemProperty(DIST_TYPE_DESCRIPTION).getValue(); @@ -475,7 +474,7 @@ public class CreateUpdateDistSetTypeLayout extends CustomComponent implements Co @SuppressWarnings("unchecked") private void getSelectedTableItemData(final Long id) { - Item saveTblitem = null; + Item saveTblitem; if (null != selectedTablecontainer) { saveTblitem = selectedTablecontainer.addItem(id); saveTblitem.getItemProperty(DIST_TYPE_NAME).setValue( @@ -657,10 +656,10 @@ public class CreateUpdateDistSetTypeLayout extends CustomComponent implements Co DistributionSetType newDistType = new DistributionSetType(typeKeyValue, typeNameValue, typeDescValue); for (final Long id : itemIds) { final Item item = selectedTable.getItem(id); - final String dist_type_name = (String) item.getItemProperty(DIST_TYPE_NAME).getValue(); + final String distTypeName = (String) item.getItemProperty(DIST_TYPE_NAME).getValue(); final CheckBox mandatoryCheckBox = (CheckBox) item.getItemProperty(DIST_TYPE_MANDATORY).getValue(); final Boolean isMandatory = mandatoryCheckBox.getValue(); - final SoftwareModuleType swModuleType = softwareManagement.findSoftwareModuleTypeByName(dist_type_name); + final SoftwareModuleType swModuleType = softwareManagement.findSoftwareModuleTypeByName(distTypeName); if (isMandatory) { newDistType.addMandatoryModuleType(swModuleType); @@ -1032,7 +1031,6 @@ public class CreateUpdateDistSetTypeLayout extends CustomComponent implements Co * as the selected tag from combo */ private void setTypeTagCombo(final String distSetTypeSelected) { - boolean mandatory = false; typeName.setValue(distSetTypeSelected); getSourceTableData(); selectedTable.getContainerDataSource().removeAllItems(); @@ -1053,13 +1051,11 @@ public class CreateUpdateDistSetTypeLayout extends CustomComponent implements Co saveDistSetType.setEnabled(false); } for (final SoftwareModuleType swModuleType : selectedTypeTag.getOptionalModuleTypes()) { - mandatory = false; - addTargetTableforUpdate(swModuleType, mandatory); + addTargetTableforUpdate(swModuleType, false); } for (final SoftwareModuleType swModuleType : selectedTypeTag.getMandatoryModuleTypes()) { - mandatory = true; - addTargetTableforUpdate(swModuleType, mandatory); + addTargetTableforUpdate(swModuleType, true); } if (null == selectedTypeTag.getColour()) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterButtons.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterButtons.java index 542c4c12d..cd36918e8 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterButtons.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterButtons.java @@ -60,44 +60,24 @@ public class DSTypeFilterButtons extends AbstractFilterButtons { * @param filterButtonClickBehaviour * the clickable behaviour. */ + @Override public void init(final AbstractFilterButtonClickBehaviour filterButtonClickBehaviour) { super.init(filterButtonClickBehaviour); eventBus.subscribe(this); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * getButtonsTableId() - */ @Override protected String getButtonsTableId() { return SPUIComponetIdProvider.DISTRIBUTION_SET_TYPE_TABLE_ID; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * createButtonsLazyQueryContainer () - */ @Override protected LazyQueryContainer createButtonsLazyQueryContainer() { return HawkbitCommonUtil.createLazyQueryContainer( new BeanQueryFactory(DistributionSetTypeBeanQuery.class)); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * isClickedByDefault(java.lang .Long) - */ @Override protected boolean isClickedByDefault(final Long buttonId) { @@ -105,26 +85,12 @@ public class DSTypeFilterButtons extends AbstractFilterButtons { && manageDistUIState.getManageDistFilters().getClickedDistSetType().getId().equals(buttonId); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * createButtonId(java.lang. String) - */ @Override protected String createButtonId(final String name) { return SPUIComponetIdProvider.DS_TYPE_FILTER_BTN_ID + name; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * getFilterButtonDropHandler() - */ @Override protected DropHandler getFilterButtonDropHandler() { @@ -148,13 +114,6 @@ public class DSTypeFilterButtons extends AbstractFilterButtons { return null; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * getButttonWrapperId() - */ @Override protected String getButttonWrapperIdPrefix() { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterHeader.java index 9092293db..068c28065 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterHeader.java @@ -27,9 +27,6 @@ import com.vaadin.ui.Window; /** * Distribution Set Type filter buttons header. - * - * - * */ @SpringComponent @ViewScope @@ -49,9 +46,7 @@ public class DSTypeFilterHeader extends AbstractFilterHeader { @Autowired private CreateUpdateDistSetTypeLayout createUpdateDistSetTypeLayout; - /** - * Initialize the components. - */ + @Override @PostConstruct public void init() { super.init(); @@ -60,37 +55,16 @@ public class DSTypeFilterHeader extends AbstractFilterHeader { } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * hasCreateUpdatePermission() - */ @Override protected boolean hasCreateUpdatePermission() { - return permChecker.hasCreateDistributionPermission() || permChecker.hasUpdateDistributionPermission(); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.filterlayout.AbstractFilterHeader#getTitle( - * ) - */ @Override protected String getTitle() { return SPUILabelDefinitions.TYPE; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * settingsIconClicked(com.vaadin .ui.Button.ClickEvent) - */ @Override protected void settingsIconClicked(final ClickEvent event) { final Window addUpdateWindow = createUpdateDistSetTypeLayout.getWindow(); @@ -99,25 +73,11 @@ public class DSTypeFilterHeader extends AbstractFilterHeader { } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * dropHitsRequired() - */ @Override protected boolean dropHitsRequired() { return false; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * hideFilterButtonLayout() - */ @Override protected void hideFilterButtonLayout() { manageDistUIState.setDistTypeFilterClosed(true); @@ -125,38 +85,17 @@ public class DSTypeFilterHeader extends AbstractFilterHeader { } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * getConfigureFilterButtonId() - */ @Override protected String getConfigureFilterButtonId() { return SPUIDefinitions.ADD_DISTRIBUTION_TYPE_TAG; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * getHideButtonId() - */ @Override protected String getHideButtonId() { - return SPUIDefinitions.HIDE_FILTER_DIST_TYPE; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterHeader# - * isAddTagRequired() - */ @Override protected boolean isAddTagRequired() { return true; 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 b8e0d286a..8d22f6782 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 @@ -74,8 +74,6 @@ import com.vaadin.ui.UI; /** * Distribution set table. * - * - * */ @SpringComponent @ViewScope @@ -136,49 +134,36 @@ public class DistributionSetTable extends AbstractTable { } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.AbstractTable#getTableId() - */ @Override protected String getTableId() { return SPUIComponetIdProvider.DIST_TABLE_ID; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.AbstractTable#createContainer( - * ) - */ @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); return new LazyQueryContainer( new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_DIST_ID_NAME), distributionQF); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTable#addContainerProperties - * (com.vaadin.data.Container ) - */ + 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; + } + @Override protected void addContainerProperties(final Container container) { HawkbitCommonUtil.getDsTableColumnProperties(container); @@ -186,12 +171,6 @@ public class DistributionSetTable extends AbstractTable { Boolean.class, null, false, true); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTable# - * addCustomGeneratedColumns () - */ @Override protected void addCustomGeneratedColumns() { /** @@ -199,23 +178,12 @@ public class DistributionSetTable extends AbstractTable { */ } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTable# - * isFirstRowSelectedOnLoad () - */ @Override protected boolean isFirstRowSelectedOnLoad() { return !manageDistUIState.getSelectedDistributions().isPresent() || manageDistUIState.getSelectedDistributions().get().isEmpty(); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTable#getItemIdToSelect() - */ @Override protected Object getItemIdToSelect() { if (manageDistUIState.getSelectedDistributions().isPresent()) { @@ -224,12 +192,6 @@ public class DistributionSetTable extends AbstractTable { return null; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.AbstractTable#onValueChange() - */ @Override protected void onValueChange() { eventBus.publish(this, DragEvent.HIDE_DROP_HINT); @@ -264,33 +226,16 @@ public class DistributionSetTable extends AbstractTable { } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.AbstractTable#isMaximized() - */ @Override protected boolean isMaximized() { return manageDistUIState.isDsTableMaximized(); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTable#getTableVisibleColumns - * () - */ @Override protected List getTableVisibleColumns() { return HawkbitCommonUtil.getTableVisibleColumns(isMaximized(), false, i18n); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTable#getTableDropHandler() - */ @Override protected DropHandler getTableDropHandler() { return new DropHandler() { 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..f8cb7a45b 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 @@ -36,8 +36,6 @@ import com.vaadin.ui.Window; /** * Distribution table header. - * - * */ @SpringComponent @ViewScope @@ -60,9 +58,7 @@ public class DistributionSetTableHeader extends AbstractTableHeader { @Autowired private DistributionAddUpdateWindowLayout addUpdateWindowLayout; - /** - * Initialize the component. - */ + @Override @PostConstruct protected void init() { super.init(); @@ -76,54 +72,26 @@ public class DistributionSetTableHeader extends AbstractTableHeader { } } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#getHeaderCaption( - * ) - */ @Override protected String getHeaderCaption() { return i18n.get("header.dist.table"); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#getSearchBoxId() - */ @Override protected String getSearchBoxId() { return SPUIComponetIdProvider.DIST_SEARCH_TEXTFIELD; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * getSearchRestIconId() - */ @Override protected String getSearchRestIconId() { return SPUIComponetIdProvider.DIST_SEARCH_ICON; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#getAddIconId() - */ @Override protected String getAddIconId() { return SPUIComponetIdProvider.DIST_ADD_ICON; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * onLoadSearchBoxValue() - */ @Override protected String onLoadSearchBoxValue() { if (manageDistUIstate.getManageDistFilters().getSearchText().isPresent()) { @@ -132,11 +100,6 @@ public class DistributionSetTableHeader extends AbstractTableHeader { return null; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#getDropFilterId() - */ @Override protected String getDropFilterId() { return null; @@ -170,9 +133,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 @@ -222,11 +186,6 @@ public class DistributionSetTableHeader extends AbstractTableHeader { eventbus.unsubscribe(this); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#canAddNewItem() - */ @Override protected Boolean isAddNewItemAllowed() { return Boolean.TRUE; @@ -247,47 +206,21 @@ public class DistributionSetTableHeader extends AbstractTableHeader { return null; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * getBulkUploadIconId() - */ @Override protected String getBulkUploadIconId() { return null; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#bulkUpload(com. - * vaadin.ui.Button.ClickEvent ) - */ @Override protected void bulkUpload(final ClickEvent event) { - /** - * No implementation as no bulk upload is supported. - */ + // No implementation as no bulk upload is supported. } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * isBulkUploadAllowed() - */ @Override protected Boolean isBulkUploadAllowed() { return Boolean.FALSE; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.table.AbstractTableHeader# - * isBulkUploadInProgress() - */ @Override protected boolean isBulkUploadInProgress() { return false; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/ManageDistBeanQuery.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/ManageDistBeanQuery.java index 7c0d367f8..60b547285 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/ManageDistBeanQuery.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/ManageDistBeanQuery.java @@ -37,8 +37,6 @@ import com.google.common.base.Strings; /** * Manage Distributions table bean query. * - * - * */ public class ManageDistBeanQuery extends AbstractBeanQuery { @@ -83,28 +81,15 @@ public class ManageDistBeanQuery extends AbstractBeanQuery { } } - /* - * (non-Javadoc) - * - * @see - * org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#constructBean() - */ @Override protected ProxyDistribution constructBean() { return new ProxyDistribution(); } - /* - * (non-Javadoc) - * - * @see - * org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#loadBeans(int, - * int) - */ @Override protected List loadBeans(final int startIndex, final int count) { Page distBeans; - final List proxyDistributions = new ArrayList(); + final List proxyDistributions = new ArrayList<>(); if (startIndex == 0 && firstPageDistributionSets != null) { distBeans = firstPageDistributionSets; } else if (Strings.isNullOrEmpty(searchText)) { @@ -136,24 +121,12 @@ public class ManageDistBeanQuery extends AbstractBeanQuery { return proxyDistributions; } - /* - * (non-Javadoc) - * - * @see - * org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#saveBeans(java. - * util.List, java.util.List, java.util.List) - */ @Override protected void saveBeans(final List arg0, final List arg1, final List arg2) { // Add,Delete and Update are performed through repository methods } - /* - * (non-Javadoc) - * - * @see org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#size() - */ @Override public int size() { if (Strings.isNullOrEmpty(searchText) && null == distributionSetType) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionsViewAcceptCriteria.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionsViewAcceptCriteria.java index 6a8296c0f..5b79b96f4 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionsViewAcceptCriteria.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionsViewAcceptCriteria.java @@ -28,8 +28,6 @@ import com.vaadin.ui.Component; /** * Distributions View for Accept criteria. * - * - * */ @SpringComponent @ViewScope @@ -47,12 +45,6 @@ public class DistributionsViewAcceptCriteria extends AbstractAcceptCriteria { @Autowired private transient EventBus.SessionEventBus eventBus; - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.AbstractAcceptCriteria#analyseDragComponent - * (com.vaadin.event .dd.DragAndDropEvent, com.vaadin.ui.Component) - */ @Override protected void analyseDragComponent(final Component compsource) { final String sourceID = getComponentId(compsource); @@ -60,24 +52,11 @@ public class DistributionsViewAcceptCriteria extends AbstractAcceptCriteria { eventBus.publish(this, event); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.AbstractAcceptCriteria#hideDropHints - * () - */ @Override protected void hideDropHints() { eventBus.publish(this, DragEvent.HIDE_DROP_HINT); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.AbstractAcceptCriteria#invalidDrop() - */ @Override protected void invalidDrop() { uiNotification.displayValidationError(SPUILabelDefinitions.ACTION_NOT_ALLOWED); @@ -94,34 +73,16 @@ public class DistributionsViewAcceptCriteria extends AbstractAcceptCriteria { return id; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.AbstractAcceptCriteria# - * getDropHintConfigurations() - */ @Override protected Map getDropHintConfigurations() { return DROP_HINTS_CONFIGS; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.AbstractAcceptCriteria# - * publishDragStartEvent(java.lang.Object) - */ @Override protected void publishDragStartEvent(final Object event) { eventBus.publish(this, event); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.AbstractAcceptCriteria# - * getDropConfigurations() - */ @Override protected Map> getDropConfigurations() { return DROP_CONFIGS; @@ -137,7 +98,7 @@ public class DistributionsViewAcceptCriteria extends AbstractAcceptCriteria { } private static Map> createDropConfigurations() { - final Map> config = new HashMap>(); + final Map> config = new HashMap<>(); // Delete drop area droppable components config.put(SPUIComponetIdProvider.DELETE_BUTTON_WRAPPER_ID, @@ -153,7 +114,7 @@ public class DistributionsViewAcceptCriteria extends AbstractAcceptCriteria { } private static Map createDropHintConfigurations() { - final Map config = new HashMap(); + final Map config = new HashMap<>(); config.put(SPUIDefinitions.DISTRIBUTION_TYPE_ID_PREFIXS, DragEvent.DISTRIBUTION_TYPE_DRAG); config.put(SPUIComponetIdProvider.DIST_TABLE_ID, DragEvent.DISTRIBUTION_DRAG); config.put(SPUIComponetIdProvider.UPLOAD_SOFTWARE_MODULE_TABLE, DragEvent.SOFTWAREMODULE_DRAG); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleBeanQuery.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleBeanQuery.java index 1581bfadd..859febbce 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleBeanQuery.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleBeanQuery.java @@ -32,9 +32,6 @@ import com.google.common.base.Strings; /** * Simple implementation of generics bean query which dynamically loads a batch * of beans. - * - * - * * */ public class SwModuleBeanQuery extends AbstractBeanQuery { @@ -77,17 +74,10 @@ public class SwModuleBeanQuery extends AbstractBeanQuery return new ProxyBaseSwModuleItem(); } - /* - * (non-Javadoc) - * - * @see - * org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#loadBeans(int, - * int) - */ @Override protected List loadBeans(final int startIndex, final int count) { final Slice swModuleBeans; - final List proxyBeans = new ArrayList(); + final List proxyBeans = new ArrayList<>(); swModuleBeans = getSoftwareManagement().findSoftwareModuleOrderByDistribution( new OffsetBasedPageRequest(startIndex, count, new Sort(Direction.ASC, "name", "version")), diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleDetails.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleDetails.java index 9d31763ff..3b1a2cad6 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleDetails.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleDetails.java @@ -39,9 +39,6 @@ import com.vaadin.ui.Window; /** * Implementation of software module details block using generic abstract * details style . - * - * - * */ @SpringComponent @ViewScope @@ -70,9 +67,7 @@ public class SwModuleDetails extends AbstractTableDetailsLayout { private SoftwareModule selectedSwModule; - /** - * Initialize the component. - */ + @Override @PostConstruct protected void init() { super.init(); @@ -133,49 +128,21 @@ public class SwModuleDetails extends AbstractTableDetailsLayout { detailsTab.addTab(createLogLayout(), i18n.get("caption.logs.tab"), null); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.detailslayout.TableDetailsLayout# - * getDefaultCaption() - */ @Override protected String getDefaultCaption() { return i18n.get("upload.swModuleTable.header"); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.detailslayout.TableDetailsLayout# - * onLoadIsSwModuleSelected() - */ @Override protected Boolean onLoadIsTableRowSelected() { return !manageDistUIState.getSelectedSoftwareModules().isEmpty(); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.detailslayout.TableDetailsLayout# - * onLoadIsTableMaximized() - */ @Override protected Boolean onLoadIsTableMaximized() { return manageDistUIState.isSwModuleTableMaximized(); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.detailslayout.TableDetailsLayout# - * populateDetailsWidget() - */ @Override protected void populateDetailsWidget() { populateDetailsWidget(selectedSwModule); @@ -191,12 +158,6 @@ public class SwModuleDetails extends AbstractTableDetailsLayout { return permissionChecker.hasUpdateDistributionPermission(); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.detailslayout.AbstractTableDetailsLayout# - * getTabSheetId() - */ @Override protected String getTabSheetId() { return null; 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..9218198b9 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 @@ -67,8 +67,6 @@ import com.vaadin.ui.Window; /** * Implementation of software module table using generic abstract table styles . - * - * * */ @SpringComponent @@ -98,6 +96,7 @@ public class SwModuleTable extends AbstractTable { /** * Initialize the filter layout. */ + @Override @PostConstruct protected void init() { super.init(); @@ -158,50 +157,35 @@ public class SwModuleTable extends AbstractTable { } } - /* All Override methods */ - - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.SPTable#getTableId() - */ @Override protected String getTableId() { return SPUIComponetIdProvider.UPLOAD_SOFTWARE_MODULE_TABLE; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.SPTable#createContainer() - */ @Override protected Container createContainer() { - final Map queryConfiguration = new HashMap(); - manageDistUIState.getSoftwareModuleFilters().getSearchText() - .ifPresent(value -> queryConfiguration.put(SPUIDefinitions.FILTER_BY_TEXT, value)); + final Map queryConfiguration = prepareQueryConfigFilters(); - 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 BeanQueryFactory swQF = new BeanQueryFactory( - SwModuleBeanQuery.class); + final BeanQueryFactory swQF = new BeanQueryFactory<>(SwModuleBeanQuery.class); swQF.setQueryConfiguration(queryConfiguration); - final LazyQueryContainer container = new LazyQueryContainer( - new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, "swId"), swQF); - return container; + return new LazyQueryContainer(new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, "swId"), swQF); + } + + 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) - * - * @see hawkbit.server.ui.common.table.SPTable#addContainerProperties(com. - * vaadin.data.Container) - */ @Override protected void addContainerProperties(final Container container) { final LazyQueryContainer lazyContainer = (LazyQueryContainer) container; @@ -220,11 +204,6 @@ public class SwModuleTable extends AbstractTable { lazyContainer.addContainerProperty(SPUILabelDefinitions.VAR_SOFT_TYPE_ID, Long.class, null, false, true); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTable#addCustomGeneratedColumns() - */ @Override protected void addCustomGeneratedColumns() { @@ -243,32 +222,16 @@ public class SwModuleTable extends AbstractTable { }); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTable#isFirstRowSelectedOnLoad() - */ @Override protected boolean isFirstRowSelectedOnLoad() { return manageDistUIState.getSelectedSoftwareModules().isEmpty(); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTable#getItemIdToSelect() - */ @Override protected Object getItemIdToSelect() { return manageDistUIState.getSelectedSoftwareModules(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.SPTable#isMaximized() - */ @Override protected boolean isMaximized() { return manageDistUIState.isSwModuleTableMaximized(); @@ -300,16 +263,9 @@ public class SwModuleTable extends AbstractTable { } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTable#getTableVisibleColumns - * () - */ @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_VERSION, i18n.get("header.version"), 0.1F)); @@ -364,11 +320,6 @@ public class SwModuleTable extends AbstractTable { } - /** - * @param color - * @param isAssigned - * @return - */ private String getTableStyle(final Long typeId, final boolean isAssigned, final String color) { if (isAssigned) { addTypeStyle(typeId, color); @@ -385,11 +336,6 @@ public class SwModuleTable extends AbstractTable { + "{background-color:" + color + " !important;background-image:none !important }"))); } - /** - * @param itemId - * @param propertyId - * @return - */ private String createTableStyle(final Object itemId, final Object propertyId) { if (null == propertyId) { final Item item = getItem(itemId); @@ -423,12 +369,6 @@ public class SwModuleTable extends AbstractTable { return name + "." + version; } - /** - * Add new software module to table. - * - * @param swModule - * new software module - */ @SuppressWarnings("unchecked") private void addSoftwareModule(final SoftwareModule swModule) { final Object addItem = addItem(); @@ -455,11 +395,6 @@ public class SwModuleTable extends AbstractTable { select(swModule.getId()); } - /** - * @param itemId - * @param nameVersionStr - * @return - */ private void showArtifactDetailsWindow(final Long itemId, final String nameVersionStr) { final Window atrifactDtlsWindow = new Window(); atrifactDtlsWindow.setCaption(HawkbitCommonUtil.getArtifactoryDetailsLabelId(nameVersionStr)); 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..56d7706fc 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 @@ -36,9 +36,6 @@ import com.vaadin.ui.Window; /** * Implementation of software module Header block using generic abstract details * style . - * - * - * */ @SpringComponent @ViewScope @@ -61,9 +58,7 @@ public class SwModuleTableHeader extends AbstractTableHeader { @Autowired private SoftwareModuleAddUpdateWindow softwareModuleAddUpdateWindow; - /** - * Initialize the components. - */ + @Override @PostConstruct protected void init() { super.init(); @@ -82,45 +77,21 @@ public class SwModuleTableHeader extends AbstractTableHeader { } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#getHeaderCaption - * () - */ @Override protected String getHeaderCaption() { return i18n.get("upload.swModuleTable.header"); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#getSearchBoxId() - */ @Override protected String getSearchBoxId() { return SPUIComponetIdProvider.SW_MODULE_SEARCH_TEXT_FIELD; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#getSearchRestIconId() - */ @Override protected String getSearchRestIconId() { return SPUIComponetIdProvider.SW_MODULE_SEARCH_RESET_ICON; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#getAddIconId() - */ @Override protected String getAddIconId() { return SPUIComponetIdProvider.SW_MODULE_ADD_BUTTON; @@ -134,97 +105,47 @@ public class SwModuleTableHeader extends AbstractTableHeader { return null; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#getDropFilterId( - * ) - */ @Override protected String getDropFilterId() { /* not required */ return null; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * isDropHintRequired() - */ @Override protected boolean isDropHintRequired() { - /* not required */ return false; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#isDropFilterRequired() - */ @Override protected boolean isDropFilterRequired() { /* Not Yet Implemented */ return false; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.SPTableHeader# - * getShowFilterButtonLayoutId() - */ @Override protected String getShowFilterButtonLayoutId() { return "show.type.icon"; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#showFilterButtonsLayout - * () - */ @Override protected void showFilterButtonsLayout() { manageDistUIState.setSwTypeFilterClosed(false); eventbus.publish(this, DistributionsUIEvent.SHOW_SM_FILTER_BY_TYPE); - } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#resetSearchText( - * ) - */ @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); + } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#getMaxMinIconId( - * ) - */ @Override protected String getMaxMinIconId() { return SPUIComponetIdProvider.SW_MAX_MIN_TABLE_ICON; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#maximizeTable() - */ @Override public void maximizeTable() { manageDistUIState.setSwModuleTableMaximized(Boolean.TRUE); @@ -232,58 +153,28 @@ public class SwModuleTableHeader extends AbstractTableHeader { } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.SPTableHeader#minimizeTable() - */ @Override public void minimizeTable() { manageDistUIState.setSwModuleTableMaximized(Boolean.FALSE); eventbus.publish(this, new SoftwareModuleEvent(SoftwareModuleEventType.MINIMIZED, null)); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#onLoadIsTableMaximized( - * ) - */ @Override public Boolean onLoadIsTableMaximized() { return manageDistUIState.isSwModuleTableMaximized(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.SPTableHeader# - * onLoadIsShowFilterButtonDisplayed() - */ @Override public Boolean onLoadIsShowFilterButtonDisplayed() { return manageDistUIState.isSwTypeFilterClosed(); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#searchBy(java.lang. - * String) - */ @Override protected void searchBy(final String newSearchText) { manageDistUIState.getSoftwareModuleFilters().setSearchText(newSearchText); eventbus.publish(this, SMFilterEvent.FILTER_BY_TEXT); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#addNewItem(com.vaadin. - * ui.Button.ClickEvent) - */ @Override protected void addNewItem(final ClickEvent event) { final Window addSoftwareModule = softwareModuleAddUpdateWindow.createAddSoftwareModuleWindow(); @@ -292,22 +183,11 @@ public class SwModuleTableHeader extends AbstractTableHeader { addSoftwareModule.setVisible(Boolean.TRUE); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.SPTableHeader#hasCreatePermission() - */ @Override protected boolean hasCreatePermission() { return permChecker.hasCreateDistributionPermission(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * isAddNewItemAllowed() - */ @Override protected Boolean isAddNewItemAllowed() { return true; @@ -328,47 +208,21 @@ public class SwModuleTableHeader extends AbstractTableHeader { return null; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * getBulkUploadIconId() - */ @Override protected String getBulkUploadIconId() { return null; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#bulkUpload(com. - * vaadin.ui.Button.ClickEvent ) - */ @Override protected void bulkUpload(final ClickEvent event) { - /** - * No implementation as no bulk upload is supported. - */ + // No implementation as no bulk upload is supported. } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * isBulkUploadAllowed() - */ @Override protected Boolean isBulkUploadAllowed() { return Boolean.FALSE; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.table.AbstractTableHeader# - * isBulkUploadInProgress() - */ @Override protected boolean isBulkUploadInProgress() { return false; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterButtons.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterButtons.java index 18fafad2d..d3251cf9b 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterButtons.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterButtons.java @@ -40,8 +40,6 @@ import com.vaadin.spring.annotation.ViewScope; /** * Software Module Type filter buttons. * - * - * */ @SpringComponent @ViewScope @@ -58,46 +56,24 @@ public class DistSMTypeFilterButtons extends AbstractFilterButtons { @Autowired private DistributionsViewAcceptCriteria distributionsViewAcceptCriteria; - /** - * Initialize component. - * - * @param filterButtonClickBehaviour - * the clickable behaviour. - */ + @Override public void init(final AbstractFilterButtonClickBehaviour filterButtonClickBehaviour) { super.init(filterButtonClickBehaviour); eventBus.subscribe(this); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * getButtonsTableId() - */ @Override protected String getButtonsTableId() { - return SPUIComponetIdProvider.SW_MODULE_TYPE_TABLE_ID; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * createButtonsLazyQueryContainer () - */ @Override protected LazyQueryContainer createButtonsLazyQueryContainer() { - final Map queryConfig = new HashMap(); - final BeanQueryFactory typeQF = new BeanQueryFactory( + final Map queryConfig = new HashMap<>(); + final BeanQueryFactory typeQF = new BeanQueryFactory<>( SoftwareModuleTypeBeanQuery.class); typeQF.setQueryConfiguration(queryConfig); - final LazyQueryContainer lazyQueryContainer = new LazyQueryContainer( - new LazyQueryDefinition(true, 20, SPUILabelDefinitions.VAR_NAME), typeQF); - return lazyQueryContainer; + return new LazyQueryContainer(new LazyQueryDefinition(true, 20, SPUILabelDefinitions.VAR_NAME), typeQF); } @Override @@ -105,13 +81,6 @@ public class DistSMTypeFilterButtons extends AbstractFilterButtons { return null; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * isClickedByDefault(java.lang .Long) - */ @Override protected boolean isClickedByDefault(final Long buttonId) { @@ -119,25 +88,11 @@ public class DistSMTypeFilterButtons extends AbstractFilterButtons { && manageDistUIState.getSoftwareModuleFilters().getSoftwareModuleType().get().getId().equals(buttonId); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * createButtonId(java.lang. String) - */ @Override protected String createButtonId(final String name) { return SPUIComponetIdProvider.SM_TYPE_FILTER_BTN_ID + name; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * getFilterButtonDropHandler() - */ @Override protected DropHandler getFilterButtonDropHandler() { @@ -156,16 +111,8 @@ public class DistSMTypeFilterButtons extends AbstractFilterButtons { }; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * getButttonWrapperId() - */ @Override protected String getButttonWrapperIdPrefix() { - return SPUIDefinitions.SOFTWARE_MODULE_TAG_ID_PREFIXS; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterHeader.java index 316d30f64..edf20b206 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterHeader.java @@ -29,9 +29,6 @@ import com.vaadin.ui.Window; /** * Software Module Type filter buttons header. - * - * - * */ @SpringComponent @ViewScope @@ -51,9 +48,7 @@ public class DistSMTypeFilterHeader extends AbstractFilterHeader { @Autowired private CreateUpdateSoftwareTypeLayout createUpdateSWTypeLayout; - /** - * Initialize the components. - */ + @Override @PostConstruct public void init() { super.init(); @@ -62,50 +57,21 @@ public class DistSMTypeFilterHeader extends AbstractFilterHeader { } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * getHideButtonId() - */ @Override protected String getHideButtonId() { return SPUIComponetIdProvider.SM_SHOW_FILTER_BUTTON_ID; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * hasCreateUpdatePermission() - */ @Override protected boolean hasCreateUpdatePermission() { - return permChecker.hasCreateDistributionPermission() || permChecker.hasUpdateDistributionPermission(); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.filterlayout.AbstractFilterHeader#getTitle( - * ) - */ @Override protected String getTitle() { - return SPUILabelDefinitions.TYPE; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * settingsIconClicked(com.vaadin .ui.Button.ClickEvent) - */ @Override protected void settingsIconClicked(final ClickEvent event) { final Window addUpdateWindow = createUpdateSWTypeLayout.getWindow(); @@ -114,51 +80,22 @@ public class DistSMTypeFilterHeader extends AbstractFilterHeader { } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * dropHitsRequired() - */ @Override protected boolean dropHitsRequired() { - return false; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * hideFilterButtonLayout() - */ @Override protected void hideFilterButtonLayout() { manageDistUIState.setSwTypeFilterClosed(true); eventBus.publish(this, DistributionsUIEvent.HIDE_SM_FILTER_BY_TYPE); - } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * getConfigureFilterButtonId() - */ @Override protected String getConfigureFilterButtonId() { return SPUIDefinitions.ADD_SOFTWARE_MODULE_TYPE; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterHeader# - * isAddTagRequired() - */ @Override protected boolean isAddTagRequired() { return true; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/state/ManageDistFilters.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/state/ManageDistFilters.java index 7dbfafa7d..c63393fac 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/state/ManageDistFilters.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/state/ManageDistFilters.java @@ -20,8 +20,6 @@ import com.vaadin.spring.annotation.VaadinSessionScope; /** * Distribution table filter state. - * - * */ @SpringComponent @VaadinSessionScope @@ -31,9 +29,9 @@ public class ManageDistFilters implements Serializable { private String searchText; - private List distSetTags = new ArrayList(); + private List distSetTags = new ArrayList<>(); - private List clickedDistSetTags = new ArrayList(); + private List clickedDistSetTags = new ArrayList<>(); private DistributionSetType clickedDistSetType; @@ -61,17 +59,10 @@ public class ManageDistFilters implements Serializable { this.clickedDistSetTags = clickedDistSetTags; } - /** - * @return the searchText - */ public Optional getSearchText() { return searchText == null ? Optional.empty() : Optional.of(searchText); } - /** - * @param searchText - * the searchText to set - */ public void setSearchText(final String searchText) { this.searchText = searchText; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CreateOrUpdateFilterHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CreateOrUpdateFilterHeader.java index 45ddb7383..43f5919ef 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CreateOrUpdateFilterHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CreateOrUpdateFilterHeader.java @@ -8,8 +8,6 @@ */ package org.eclipse.hawkbit.ui.filtermanagement; - -import java.awt.event.FocusListener; import java.util.concurrent.Executor; import javax.annotation.PostConstruct; @@ -123,7 +121,7 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button private LayoutClickListener nameLayoutClickListner; private boolean validationFailed = false; - + /** * Initialize the Campaign Status History Header. */ @@ -149,20 +147,18 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button } @EventBusListenerMethod(scope = EventScope.SESSION) - void onEvent(final CustomFilterUIEvent custFUIEvent) { - if (custFUIEvent == CustomFilterUIEvent.TARGET_FILTER_DETAIL_VIEW) { - populateComponents(); - eventBus.publish(this, CustomFilterUIEvent.TARGET_DETAILS_VIEW); - } else if (custFUIEvent == CustomFilterUIEvent.CREATE_NEW_FILTER_CLICK) { - setUpCaptionLayout(true); - resetComponents(); - } else if (custFUIEvent == CustomFilterUIEvent.TARGET_FILTER_STATUS_HIDE) { - this.getUI().access(() -> updateStatusIconAfterTablePopulated()); - } - } + void onEvent(final CustomFilterUIEvent custFUIEvent) { + if (custFUIEvent == CustomFilterUIEvent.TARGET_FILTER_DETAIL_VIEW) { + populateComponents(); + eventBus.publish(this, CustomFilterUIEvent.TARGET_DETAILS_VIEW); + } else if (custFUIEvent == CustomFilterUIEvent.CREATE_NEW_FILTER_CLICK) { + setUpCaptionLayout(true); + resetComponents(); + } else if (custFUIEvent == CustomFilterUIEvent.UPDATE_TARGET_FILTER_SEARCH_ICON) { + UI.getCurrent().access(() -> updateStatusIconAfterTablePopulated()); + } + } - - private void populateComponents() { if (filterManagementUIState.getTfQuery().isPresent()) { queryTextField.setValue(filterManagementUIState.getTfQuery().get().getQuery()); @@ -220,8 +216,7 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button closeIcon = createSearchResetIcon(); } - - + private TextField createNameTextField() { final TextField nameField = SPUIComponentProvider.getTextField("", ValoTheme.TEXTFIELD_TINY, false, null, i18n.get("textfield.customfiltername"), true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH); @@ -331,22 +326,28 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button validationIcon.addStyleName("show-status-label"); showValidationInProgress(); onQueryChange(event.getText()); - executor.execute(new StatusCircledAsync()); + executor.execute(new StatusCircledAsync(UI.getCurrent())); } }); } class StatusCircledAsync implements Runnable { + private final UI current; + + public StatusCircledAsync(final UI current) { + this.current = current; + } + @Override public void run() { + UI.setCurrent(current); eventBus.publish(this, CustomFilterUIEvent.FILTER_TARGET_BY_QUERY); } } - private void onQueryChange(final String text) { - if (!Strings.isNullOrEmpty(text)) { - final String input = text.toLowerCase(); + private void onQueryChange(final String input) { + if (!Strings.isNullOrEmpty(input)) { final ValidationResult validationResult = FilterQueryValidation.getExpectedTokens(input); if (!validationResult.getIsValidationFailed()) { filterManagementUIState.setFilterQueryValue(input); @@ -361,17 +362,16 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button } enableDisableSaveButton(validationFailed, input); } else { - setInitialStatusIconStyle(validationIcon); + setInitialStatusIconStyle(validationIcon); filterManagementUIState.setFilterQueryValue(null); filterManagementUIState.setIsFilterByInvalidFilterQuery(Boolean.TRUE); } - queryTextField.setValue(text); + queryTextField.setValue(input); } private void enableDisableSaveButton(final boolean validationFailed, final String query) { - if (validationFailed - || (isNameAndQueryEmpty(nameTextField.getValue(), query) || (query.equals(oldFilterQuery) && nameTextField - .getValue().equals(oldFilterName)))) { + if (validationFailed || (isNameAndQueryEmpty(nameTextField.getValue(), query) + || (query.equals(oldFilterQuery) && nameTextField.getValue().equals(oldFilterName)))) { saveButton.setEnabled(false); } else { if (hasSavePermission()) { @@ -387,10 +387,9 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button return false; } - private void showValidationSuccesIcon() { - validationIcon.setValue(FontAwesome.CHECK_CIRCLE.getHtml()); - validationIcon.setStyleName(SPUIStyleDefinitions.SUCCESS_ICON); + validationIcon.setValue(FontAwesome.CHECK_CIRCLE.getHtml()); + validationIcon.setStyleName(SPUIStyleDefinitions.SUCCESS_ICON); } private void showValidationFailureIcon() { @@ -471,8 +470,8 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button targetFilterQuery.setName(nameTextField.getValue()); targetFilterQuery.setQuery(queryTextField.getValue()); targetFilterQueryManagement.createTargetFilterQuery(targetFilterQuery); - notification.displaySuccess(i18n.get("message.create.filter.success", - new Object[] { targetFilterQuery.getName() })); + notification.displaySuccess( + i18n.get("message.create.filter.success", new Object[] { targetFilterQuery.getName() })); eventBus.publish(this, CustomFilterUIEvent.CREATE_TARGET_FILTER_QUERY); } @@ -513,12 +512,12 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button } return true; } - - private void updateStatusIconAfterTablePopulated() { - queryTextField.focus(); - if (!validationFailed && !Strings.isNullOrEmpty(queryTextField.getValue())) { - showValidationSuccesIcon(); - } - } + + private void updateStatusIconAfterTablePopulated() { + queryTextField.focus(); + if (!validationFailed && !Strings.isNullOrEmpty(queryTextField.getValue())) { + showValidationSuccesIcon(); + } + } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CreateOrUpdateFilterTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CreateOrUpdateFilterTable.java index 2939c6867..ebeb95957 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CreateOrUpdateFilterTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CreateOrUpdateFilterTable.java @@ -37,7 +37,6 @@ import org.vaadin.spring.events.annotation.EventBusListenerMethod; import com.google.common.base.Strings; import com.vaadin.data.Item; import com.vaadin.server.FontAwesome; -import com.vaadin.server.Sizeable.Unit; import com.vaadin.shared.ui.label.ContentMode; import com.vaadin.spring.annotation.SpringComponent; import com.vaadin.spring.annotation.ViewScope; @@ -101,18 +100,16 @@ public class CreateOrUpdateFilterTable extends Table { || custFUIEvent == CustomFilterUIEvent.CREATE_NEW_FILTER_CLICK) { UI.getCurrent().access(() -> populateTableData()); } else if (custFUIEvent == CustomFilterUIEvent.FILTER_TARGET_BY_QUERY) { - this.getUI().access(() -> onQuery()); + UI.getCurrent().access(() -> onQuery()); } } - - - private void restoreOnLoad() { + private void restoreOnLoad() { if (filterManagementUIState.isCreateFilterViewDisplayed()) { filterManagementUIState.setFilterQueryValue(null); } else { - filterManagementUIState.getTfQuery().ifPresent( - value -> filterManagementUIState.setFilterQueryValue(value.getQuery())); + filterManagementUIState.getTfQuery() + .ifPresent(value -> filterManagementUIState.setFilterQueryValue(value.getQuery())); } } @@ -128,8 +125,9 @@ public class CreateOrUpdateFilterTable extends Table { targetQF.setQueryConfiguration(queryConfig); // create lazy query container with lazy defination and query - final LazyQueryContainer targetTableContainer = new LazyQueryContainer(new LazyQueryDefinition(true, - SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_CONT_ID_NAME), targetQF); + final LazyQueryContainer targetTableContainer = new LazyQueryContainer( + new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_CONT_ID_NAME), + targetQF); targetTableContainer.getQueryView().getQueryDefinition().setMaxNestedPropertyDepth(PROPERTY_DEPT); return targetTableContainer; @@ -182,16 +180,16 @@ public class CreateOrUpdateFilterTable extends Table { private List getVisbleColumns() { final List columnList = new ArrayList<>(); - columnList.add(new TableColumn(SPUILabelDefinitions.NAME, i18n.get("header.name"),0.15f)); + columnList.add(new TableColumn(SPUILabelDefinitions.NAME, i18n.get("header.name"), 0.15f)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_BY, i18n.get("header.createdBy"), 0.1f)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_DATE, i18n.get("header.createdDate"), 0.1F)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY, i18n.get("header.modifiedBy"), 0.1F)); - columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, i18n.get("header.modifiedDate"), - 0.1F)); - columnList.add(new TableColumn(SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_NAME_VER, i18n - .get("header.assigned.ds"), 0.125F)); - columnList.add(new TableColumn(SPUILabelDefinitions.INSTALLED_DISTRIBUTION_NAME_VER, i18n - .get("header.installed.ds"), 0.125F)); + columnList.add( + new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, i18n.get("header.modifiedDate"), 0.1F)); + columnList.add(new TableColumn(SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_NAME_VER, + i18n.get("header.assigned.ds"), 0.125F)); + columnList.add(new TableColumn(SPUILabelDefinitions.INSTALLED_DISTRIBUTION_NAME_VER, + i18n.get("header.installed.ds"), 0.125F)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_DESC, i18n.get("header.description"), 0.1F)); columnList.add(new TableColumn(SPUILabelDefinitions.STATUS_ICON, i18n.get("header.status"), 0.1F)); return columnList; @@ -199,8 +197,8 @@ public class CreateOrUpdateFilterTable extends Table { private Component getStatusIcon(final Object itemId) { final Item row1 = getItem(itemId); - final TargetUpdateStatus targetStatus = (TargetUpdateStatus) row1.getItemProperty( - SPUILabelDefinitions.VAR_TARGET_STATUS).getValue(); + final TargetUpdateStatus targetStatus = (TargetUpdateStatus) row1 + .getItemProperty(SPUILabelDefinitions.VAR_TARGET_STATUS).getValue(); final Label label = SPUIComponentProvider.getLabel("", SPUILabelDefinitions.SP_LABEL_SIMPLE); label.setContentMode(ContentMode.HTML); if (targetStatus == TargetUpdateStatus.PENDING) { @@ -241,9 +239,9 @@ public class CreateOrUpdateFilterTable extends Table { protected void addCustomGeneratedColumns() { addGeneratedColumn(SPUILabelDefinitions.STATUS_ICON, (source, itemId, columnId) -> getStatusIcon(itemId)); } - + private void onQuery() { - populateTableData(); - eventBus.publish(this, CustomFilterUIEvent.TARGET_FILTER_STATUS_HIDE); - } + populateTableData(); + eventBus.publish(this, CustomFilterUIEvent.UPDATE_TARGET_FILTER_SEARCH_ICON); + } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CustomTargetBeanQuery.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CustomTargetBeanQuery.java index 51e384946..bf5fdbe54 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CustomTargetBeanQuery.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CustomTargetBeanQuery.java @@ -32,7 +32,8 @@ import org.vaadin.addons.lazyquerycontainer.QueryDefinition; import com.google.common.base.Strings; /** - * + * Simple implementation of generics bean query which dynamically loads + * {@link ProxyTarget} batch of beans. * */ public class CustomTargetBeanQuery extends AbstractBeanQuery { @@ -43,7 +44,6 @@ public class CustomTargetBeanQuery extends AbstractBeanQuery { private FilterManagementUIState filterManagementUIState; private transient I18N i18N; private String filterQuery; - private Boolean isInvalidFilterQuery; /** * Parametric Constructor. @@ -63,7 +63,6 @@ public class CustomTargetBeanQuery extends AbstractBeanQuery { if (HawkbitCommonUtil.mapCheckStrKey(queryConfig)) { filterQuery = (String) queryConfig.get(SPUIDefinitions.FILTER_BY_QUERY); - isInvalidFilterQuery = (Boolean) queryConfig.get(SPUIDefinitions.FILTER_BY_INVALID_QUERY); } if (HawkbitCommonUtil.checkBolArray(sortStates)) { // Initalize Sor @@ -164,16 +163,11 @@ public class CustomTargetBeanQuery extends AbstractBeanQuery { */ @Override public int size() { - final long totSize = getTargetManagement().countTargetsAll(); - long size; + long size = 0; if (!Strings.isNullOrEmpty(filterQuery)) { size = getTargetManagement().countTargetByTargetFilterQuery(filterQuery); - } else if (getFilterManagementUIState().isCreateFilterViewDisplayed() || isInvalidFilterQuery) { - size = 0; - } else { - size = totSize; } - getFilterManagementUIState().setTargetsCountAll(totSize); + getFilterManagementUIState().setTargetsCountAll(size); if (size > SPUIDefinitions.MAX_TARGET_TABLE_ENTRIES) { getFilterManagementUIState().setTargetsTruncated(size - SPUIDefinitions.MAX_TARGET_TABLE_ENTRIES); size = SPUIDefinitions.MAX_TARGET_TABLE_ENTRIES; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterBeanQuery.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterBeanQuery.java index 7dbe3467e..9c50640cd 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterBeanQuery.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterBeanQuery.java @@ -34,7 +34,6 @@ import com.google.common.base.Strings; * * */ - public class TargetFilterBeanQuery extends AbstractBeanQuery { private static final long serialVersionUID = 1845964596238990987L; @@ -76,8 +75,8 @@ public class TargetFilterBeanQuery extends AbstractBeanQuery @Override protected List loadBeans(final int startIndex, final int count) { - Slice targetFilterQuery = null; - final List proxyTargetFilter = new ArrayList(); + Slice targetFilterQuery; + final List proxyTargetFilter = new ArrayList<>(); if (startIndex == 0 && firstPageTargetFilter != null) { targetFilterQuery = firstPageTargetFilter; } else if (Strings.isNullOrEmpty(searchText)) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterTable.java index a251521f5..17bfefe56 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterTable.java @@ -41,7 +41,6 @@ import org.vaadin.spring.events.annotation.EventBusListenerMethod; import com.vaadin.data.Container; import com.vaadin.data.Item; import com.vaadin.server.FontAwesome; -import com.vaadin.server.Sizeable.Unit; import com.vaadin.spring.annotation.SpringComponent; import com.vaadin.spring.annotation.ViewScope; import com.vaadin.ui.Button; @@ -84,20 +83,20 @@ public class TargetFilterTable extends Table { * Initialize the Action History Table. */ @PostConstruct - public void init() { - setStyleName("sp-table"); - setSizeFull(); - setImmediate(true); - setHeight(100.0f, Unit.PERCENTAGE); - addStyleName(ValoTheme.TABLE_NO_VERTICAL_LINES); - addStyleName(ValoTheme.TABLE_SMALL); - addCustomGeneratedColumns(); - populateTableData(); - setColumnCollapsingAllowed(true); - setColumnProperties(); - setId(SPUIComponetIdProvider.TAEGET_FILTER_TABLE_ID); - eventBus.subscribe(this); - } + public void init() { + setStyleName("sp-table"); + setSizeFull(); + setImmediate(true); + setHeight(100.0f, Unit.PERCENTAGE); + addStyleName(ValoTheme.TABLE_NO_VERTICAL_LINES); + addStyleName(ValoTheme.TABLE_SMALL); + addCustomGeneratedColumns(); + populateTableData(); + setColumnCollapsingAllowed(true); + setColumnProperties(); + setId(SPUIComponetIdProvider.TAEGET_FILTER_TABLE_ID); + eventBus.subscribe(this); + } @PreDestroy void destroy() { @@ -114,20 +113,14 @@ public class TargetFilterTable extends Table { } } - /** - * Create a empty HierarchicalContainer. - * - * - */ private Container createContainer() { final Map queryConfig = prepareQueryConfigFilters(); - final BeanQueryFactory targetQF = new BeanQueryFactory( - TargetFilterBeanQuery.class); + final BeanQueryFactory targetQF = new BeanQueryFactory<>(TargetFilterBeanQuery.class); targetQF.setQueryConfiguration(queryConfig); // create lazy query container with lazy defination and query - final LazyQueryContainer targetFilterContainer = new LazyQueryContainer(new LazyQueryDefinition(true, - SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_ID), targetQF); + final LazyQueryContainer targetFilterContainer = new LazyQueryContainer( + new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_ID), targetQF); targetFilterContainer.getQueryView().getQueryDefinition().setMaxNestedPropertyDepth(PROPERTY_DEPT); return targetFilterContainer; @@ -135,15 +128,12 @@ public class TargetFilterTable extends Table { } private Map prepareQueryConfigFilters() { - final Map queryConfig = new HashMap(); - filterManagementUIState.getCustomFilterSearchText().ifPresent( - value -> queryConfig.put(SPUIDefinitions.FILTER_BY_TEXT, value)); + final Map queryConfig = new HashMap<>(); + filterManagementUIState.getCustomFilterSearchText() + .ifPresent(value -> queryConfig.put(SPUIDefinitions.FILTER_BY_TEXT, value)); return queryConfig; } - /** - * Create a empty HierarchicalContainer. - */ private void addContainerproperties() { /* Create HierarchicalContainer container */ container.addContainerProperty(SPUILabelDefinitions.NAME, Link.class, null); @@ -154,7 +144,7 @@ public class TargetFilterTable extends Table { } private List getVisbleColumns() { - final List columnList = new ArrayList(); + final List columnList = new ArrayList<>(); columnList.add(new TableColumn(SPUILabelDefinitions.NAME, i18n.get("header.name"), 0.2F)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_USER, i18n.get("header.createdBy"), 0.15F)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_DATE, i18n.get("header.createdDate"), 0.2F)); @@ -165,7 +155,6 @@ public class TargetFilterTable extends Table { } - /* re -create the container and get the data and set it to the table */ private void refreshContainer() { populateTableData(); @@ -187,10 +176,6 @@ public class TargetFilterTable extends Table { .toString(); } - /** - * @param event - * @return - */ private void onDelete(final ClickEvent event) { /* Display the confirmation */ final ConfirmationDialog confirmDialog = new ConfirmationDialog(i18n.get("caption.filter.delete.confirmbox"), @@ -206,8 +191,8 @@ public class TargetFilterTable extends Table { * of the deleted custom filter. */ - notification.displaySuccess(i18n.get("message.delete.filter.success", - new Object[] { deletedFilterName })); + notification.displaySuccess( + i18n.get("message.delete.filter.success", new Object[] { deletedFilterName })); refreshContainer(); } }); @@ -236,10 +221,6 @@ public class TargetFilterTable extends Table { return updateIcon; } - /** - * @param event - * @return - */ private void onClickOfDetailButton(final ClickEvent event) { final String targetFilterName = (String) ((Button) event.getComponent()).getData(); final TargetFilterQuery targetFilterQuery = targetFilterQueryManagement diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/event/CustomFilterUIEvent.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/event/CustomFilterUIEvent.java index fa9b24dc8..57de12aca 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/event/CustomFilterUIEvent.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/event/CustomFilterUIEvent.java @@ -15,5 +15,5 @@ package org.eclipse.hawkbit.ui.filtermanagement.event; * */ public enum CustomFilterUIEvent { - FILTER_TARGET_BY_QUERY, FILTER_BY_CUST_FILTER_TEXT, FILTER_BY_CUST_FILTER_TEXT_REMOVE, CREATE_NEW_FILTER_CLICK, EXIT_CREATE_OR_UPDATE_FILTRER_VIEW, TARGET_FILTER_DETAIL_VIEW, TARGET_DETAILS_VIEW, CREATE_TARGET_FILTER_QUERY, UPDATED_TARGET_FILTER_QUERY, TARGET_FILTER_STATUS_HIDE + FILTER_TARGET_BY_QUERY, FILTER_BY_CUST_FILTER_TEXT, FILTER_BY_CUST_FILTER_TEXT_REMOVE, CREATE_NEW_FILTER_CLICK, EXIT_CREATE_OR_UPDATE_FILTRER_VIEW, TARGET_FILTER_DETAIL_VIEW, TARGET_DETAILS_VIEW, CREATE_TARGET_FILTER_QUERY, UPDATED_TARGET_FILTER_QUERY, UPDATE_TARGET_FILTER_SEARCH_ICON } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/footer/TargetFilterCountMessageLabel.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/footer/TargetFilterCountMessageLabel.java index febb0c5b4..322d32a45 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/footer/TargetFilterCountMessageLabel.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/footer/TargetFilterCountMessageLabel.java @@ -11,7 +11,6 @@ package org.eclipse.hawkbit.ui.filtermanagement.footer; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; -import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.ui.filtermanagement.event.CustomFilterUIEvent; import org.eclipse.hawkbit.ui.filtermanagement.state.FilterManagementUIState; import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil; @@ -46,9 +45,6 @@ public class TargetFilterCountMessageLabel extends Label { @Autowired private FilterManagementUIState filterManagementUIState; - @Autowired - private transient TargetManagement targetManagement; - @Autowired private I18N i18n; @@ -75,7 +71,7 @@ public class TargetFilterCountMessageLabel extends Label { if (custFUIEvent == CustomFilterUIEvent.TARGET_DETAILS_VIEW || custFUIEvent == CustomFilterUIEvent.CREATE_NEW_FILTER_CLICK || custFUIEvent == CustomFilterUIEvent.EXIT_CREATE_OR_UPDATE_FILTRER_VIEW - || custFUIEvent == CustomFilterUIEvent.FILTER_TARGET_BY_QUERY) { + || custFUIEvent == CustomFilterUIEvent.UPDATE_TARGET_FILTER_SEARCH_ICON) { UI.getCurrent().access(() -> displayTargetFilterMessage()); } } @@ -90,8 +86,7 @@ public class TargetFilterCountMessageLabel extends Label { long totalTargets = 0; if (filterManagementUIState.isCreateFilterViewDisplayed() || filterManagementUIState.isEditViewDisplayed()) { if (null != filterManagementUIState.getFilterQueryValue()) { - totalTargets = targetManagement - .countTargetByTargetFilterQuery(filterManagementUIState.getFilterQueryValue()); + totalTargets = filterManagementUIState.getTargetsCountAll().get(); } final StringBuilder targetMessage = new StringBuilder(i18n.get("label.target.filtered.total")); if (filterManagementUIState.getTargetsTruncated() != null) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/actionhistory/ActionHistoryTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/actionhistory/ActionHistoryTable.java index e3b84aac6..df9d8a60d 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/actionhistory/ActionHistoryTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/actionhistory/ActionHistoryTable.java @@ -202,16 +202,8 @@ public class ActionHistoryTable extends TreeTable implements Handler { hierarchicalContainer.addContainerProperty(SPUIDefinitions.ACTION_HIS_TBL_ROLLOUT_NAME, String.class, null); } - /** - * Get Action based on status. - * - * @param type - * as Action.Type - * - * @return List of Actions - */ private List getVisbleColumns() { - final List visibleColumnIds = new ArrayList(); + final List visibleColumnIds = new ArrayList<>(); visibleColumnIds.add(SPUIDefinitions.ACTION_HIS_TBL_ACTIVE); visibleColumnIds.add(SPUIDefinitions.ACTION_HIS_TBL_DIST); visibleColumnIds.add(SPUIDefinitions.ACTION_HIS_TBL_DATETIME); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionBeanQuery.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionBeanQuery.java index f3b68bce6..7b49ddcb2 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionBeanQuery.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionBeanQuery.java @@ -96,7 +96,7 @@ public class DistributionBeanQuery extends AbstractBeanQuery @Override protected List loadBeans(final int startIndex, final int count) { Page distBeans; - final List proxyDistributions = new ArrayList(); + final List proxyDistributions = new ArrayList<>(); if (startIndex == 0 && firstPageDistributionSets != null) { distBeans = firstPageDistributionSets; } else if (pinnedControllerId != null) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionDetails.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionDetails.java index 54d549055..ecc4a26c6 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionDetails.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionDetails.java @@ -39,9 +39,6 @@ import com.vaadin.ui.Window; /** * Distribution set details layout. - * - * - * */ @SpringComponent @ViewScope @@ -75,9 +72,7 @@ public class DistributionDetails extends AbstractTableDetailsLayout { private UI ui; - /** - * softwareLayout Initialize the component. - */ + @Override @PostConstruct protected void init() { eventBus.subscribe(this); @@ -116,23 +111,11 @@ public class DistributionDetails extends AbstractTableDetailsLayout { } } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.detailslayout.AbstractTableDetailsLayout# - * getDefaultCaption() - */ @Override protected String getDefaultCaption() { return i18n.get("distribution.details.header"); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.detailslayout.AbstractTableDetailsLayout# - * addTabs(com.vaadin. ui.TabSheet) - */ @Override protected void addTabs(final TabSheet detailsTab) { detailsTab.addTab(createDetailsLayout(), i18n.get("caption.tab.details"), null); @@ -142,12 +125,6 @@ public class DistributionDetails extends AbstractTableDetailsLayout { detailsTab.addTab(createLogLayout(), i18n.get("caption.logs.tab"), null); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.detailslayout.AbstractTableDetailsLayout# - * onEdit(com.vaadin.ui .Button.ClickEvent) - */ @Override protected void onEdit(final ClickEvent event) { final Window newDistWindow = distributionAddUpdateWindowLayout.getWindow(); @@ -157,79 +134,37 @@ public class DistributionDetails extends AbstractTableDetailsLayout { newDistWindow.setVisible(Boolean.TRUE); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.detailslayout.AbstractTableDetailsLayout# - * getEditButtonId() - */ @Override protected String getEditButtonId() { return SPUIComponetIdProvider.DS_EDIT_BUTTON; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.detailslayout.AbstractTableDetailsLayout# - * onLoadIsTableRowSelected () - */ @Override protected Boolean onLoadIsTableRowSelected() { return !(managementUIState.getSelectedDsIdName().isPresent() && managementUIState.getSelectedDsIdName().get().isEmpty()); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.detailslayout.AbstractTableDetailsLayout# - * onLoadIsTableMaximized () - */ @Override protected Boolean onLoadIsTableMaximized() { return managementUIState.isDsTableMaximized(); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.detailslayout.AbstractTableDetailsLayout# - * populateDetailsWidget() - */ @Override protected void populateDetailsWidget() { populateDetailsWidget(selectedDsModule); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.detailslayout.AbstractTableDetailsLayout# - * clearDetails() - */ @Override protected void clearDetails() { populateDetailsWidget(null); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.detailslayout.AbstractTableDetailsLayout# - * hasEditPermission() - */ @Override protected Boolean hasEditPermission() { return permissionChecker.hasUpdateDistributionPermission(); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.detailslayout.AbstractTableDetailsLayout# - * getTabSheetId() - */ @Override protected String getTabSheetId() { return SPUIComponetIdProvider.DISTRIBUTION_DETAILS_TABSHEET; 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..4f4aa8b2f 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 @@ -73,9 +73,6 @@ import com.vaadin.ui.UI; /** * Distribution set table. - * - * - * */ @SpringComponent @ViewScope @@ -113,9 +110,7 @@ public class DistributionTable extends AbstractTable { private Button distributinPinnedBtn; - /** - * Initialize the distribution table. - */ + @Override @PostConstruct protected void init() { super.init(); @@ -219,44 +214,37 @@ public class DistributionTable extends AbstractTable { */ @Override protected Container createContainer() { - final Map queryConfiguration = new HashMap(); + final Map queryConfiguration = prepareQueryConfigFilters(); + + final BeanQueryFactory distributionQF = new BeanQueryFactory<>( + DistributionBeanQuery.class); + distributionQF.setQueryConfiguration(queryConfiguration); + return new LazyQueryContainer( + new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_DIST_ID_NAME), + distributionQF); + } + + private Map prepareQueryConfigFilters() { + final Map queryConfig = new HashMap<>(); managementUIState.getDistributionTableFilters().getSearchText() - .ifPresent(value -> queryConfiguration.put(SPUIDefinitions.FILTER_BY_TEXT, value)); + .ifPresent(value -> queryConfig.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, + .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()); } - queryConfiguration.put(SPUIDefinitions.FILTER_BY_TAG, list); - final BeanQueryFactory distributionQF = new BeanQueryFactory( - DistributionBeanQuery.class); - distributionQF.setQueryConfiguration(queryConfiguration); - final LazyQueryContainer distributionContainer = new LazyQueryContainer( - new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_DIST_ID_NAME), - distributionQF); - return distributionContainer; + queryConfig.put(SPUIDefinitions.FILTER_BY_TAG, list); + return queryConfig; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTable#addContainerProperties( - * com.vaadin.data.Container ) - */ @Override protected void addContainerProperties(final Container container) { HawkbitCommonUtil.getDsTableColumnProperties(container); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTable# - * addCustomGeneratedColumns() - */ @Override protected void addCustomGeneratedColumns() { addGeneratedColumn(SPUILabelDefinitions.PIN_COLUMN, new Table.ColumnGenerator() { @@ -269,23 +257,12 @@ public class DistributionTable extends AbstractTable { }); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTable# - * isFirstRowSelectedOnLoad() - */ @Override protected boolean isFirstRowSelectedOnLoad() { return !managementUIState.getSelectedDsIdName().isPresent() || managementUIState.getSelectedDsIdName().get().isEmpty(); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTable#getItemIdToSelect() - */ @Override protected Object getItemIdToSelect() { if (managementUIState.getSelectedDsIdName().isPresent()) { @@ -294,16 +271,9 @@ public class DistributionTable extends AbstractTable { return null; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.AbstractTable#onValueChange() - */ @Override protected void onValueChange() { eventBus.publish(this, DragEvent.HIDE_DROP_HINT); - @SuppressWarnings("unchecked") final Set values = HawkbitCommonUtil.getSelectedDSDetails(this); DistributionSetIdName value = null; if (values != null && !values.isEmpty()) { @@ -312,10 +282,7 @@ public class DistributionTable extends AbstractTable { while (iterator.hasNext()) { value = iterator.next(); } - /** - * Adding null check to make to avoid NPE.Its weird that at times - * getValue returns null. - */ + if (null != value) { managementUIState.setSelectedDsIdName(values); managementUIState.setLastSelectedDsIdName(value); @@ -332,33 +299,16 @@ public class DistributionTable extends AbstractTable { } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.table.AbstractTable#isMaximized() - */ @Override protected boolean isMaximized() { return managementUIState.isDsTableMaximized(); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTable#getTableVisibleColumns( - * ) - */ @Override protected List getTableVisibleColumns() { return HawkbitCommonUtil.getTableVisibleColumns(isMaximized(), true, i18n); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTable#getTableDropHandler() - */ @Override protected DropHandler getTableDropHandler() { return new DropHandler() { @@ -396,7 +346,7 @@ public class DistributionTable extends AbstractTable { final com.vaadin.event.dd.TargetDetails taregtDet = event.getTargetDetails(); final Table distTable = (Table) taregtDet.getTarget(); final Set distsSelected = HawkbitCommonUtil.getSelectedDSDetails(distTable); - final Set distList = new HashSet(); + final Set distList = new HashSet<>(); final AbstractSelectTargetDetails dropData = (AbstractSelectTargetDetails) event.getTargetDetails(); final Object distItemId = dropData.getItemIdOver(); @@ -428,7 +378,7 @@ public class DistributionTable extends AbstractTable { // assign dist to those targets final List assignedTargets = targetService.findTargetsByTag(targetTagName); if (!assignedTargets.isEmpty()) { - final Set targetDetailsList = new HashSet(); + final Set targetDetailsList = new HashSet<>(); assignedTargets.forEach(target -> targetDetailsList .add(new TargetIdName(target.getId(), target.getControllerId(), target.getName()))); assignTargetToDs(getItem(distItemId), targetDetailsList); @@ -441,7 +391,7 @@ public class DistributionTable extends AbstractTable { final TableTransferable transferable = (TableTransferable) event.getTransferable(); final Table source = transferable.getSourceComponent(); final Set targetsSelected = HawkbitCommonUtil.getSelectedTargetDetails(source); - final Set targetDetailsList = new HashSet(); + final Set targetDetailsList = new HashSet<>(); if (!targetsSelected.contains(transferable.getData("itemId"))) { targetDetailsList.add((TargetIdName) transferable.getData("itemId")); @@ -467,13 +417,6 @@ public class DistributionTable extends AbstractTable { } } - /** - * Validate event. - * - * @param dragEvent - * as event - * @return boolean as flag - */ private Boolean doValidation(final DragAndDropEvent dragEvent) { final Component compsource = dragEvent.getTransferable().getSourceComponent(); if (compsource instanceof Table) { @@ -521,15 +464,6 @@ public class DistributionTable extends AbstractTable { return false; } - /** - * Validate the assignment. - * - * @param targetDetailsList - * @param source - * @param distId - * @param distName - * @return String as indicator - */ private String validate(final Set targetDetailsList, final DistributionSetIdName distributionSetIdName) { String pendingActionMessage = null; @@ -548,17 +482,6 @@ public class DistributionTable extends AbstractTable { return pendingActionMessage; } - /** - * Message for Pending Action. - * - * @param message - * as msg - * @param targId - * as ID - * @param distName - * as Dist Set Name - * @return String as message - */ private String getPendingActionMessage(final String message, final String targId, final String distNameVersion) { String pendActionMsg = i18n.get("message.target.assigned.pending"); if (null == message) { @@ -567,12 +490,6 @@ public class DistributionTable extends AbstractTable { return pendActionMsg; } - /** - * Show or Hide Popup Notification Message. - * - * @param message - * as msg - */ private void showOrHidePopupAndNotification(final String message) { if (null != managementUIState.getAssignedList() && !managementUIState.getAssignedList().isEmpty()) { eventBus.publish(this, ManagementUIEvent.UPDATE_COUNT); @@ -629,19 +546,6 @@ public class DistributionTable extends AbstractTable { } } - /** - * Added by Saumya Get Pin style. - * - * @param itemId - * as item clicked - * @param propertyId - * as property - * @param installedDistItemIds - * as set - * @param assignedDistTableItemIds - * as set - * @return String as Style - */ private String getPinnedDistributionStyle(final Long installedDistItemIds, final Long assignedDistTableItemIds, final Object itemId) { final Long distId = ((DistributionSetIdName) itemId).getId(); @@ -655,10 +559,6 @@ public class DistributionTable extends AbstractTable { } } - /** - * @param itemId - * @return - */ private Object getPinButton(final Object itemId) { final DistributionSetIdName dist = (DistributionSetIdName) getContainerDataSource().getItem(itemId) .getItemProperty(SPUILabelDefinitions.VAR_DIST_ID_NAME).getValue(); @@ -677,12 +577,6 @@ public class DistributionTable extends AbstractTable { } } - /** - * Add listener to pin. - * - * @param pinBtn - * as event - */ private void addPinClickListener(final ClickEvent event) { eventBus.publish(this, DragEvent.HIDE_DROP_HINT); checkifAlreadyPinned(event.getButton()); @@ -694,12 +588,6 @@ public class DistributionTable extends AbstractTable { } - /** - * Check already pinned. - * - * @param eventBtn - * as button - */ private void checkifAlreadyPinned(final Button eventBtn) { final Long newPinnedDistItemId = ((DistributionSetIdName) eventBtn.getData()).getId(); Long pinnedDistId = null; @@ -751,9 +639,6 @@ public class DistributionTable extends AbstractTable { } } - /** - * set style to distribution set table. - */ private void styleDistributionSetTable() { setCellStyleGenerator(new Table.CellStyleGenerator() { private static final long serialVersionUID = 1L; @@ -765,12 +650,6 @@ public class DistributionTable extends AbstractTable { }); } - /** - * Apply pin style to pin. - * - * @param eventBtn - * as button - */ private void applyPinStyle(final Button eventBtn) { final StringBuilder style = new StringBuilder(SPUIComponentProvider.getPinButtonStyle()); style.append(' ').append(SPUIStyleDefinitions.DIST_PIN).append(' ').append("tablePin").append(' ') @@ -815,14 +694,9 @@ public class DistributionTable extends AbstractTable { * @param assignedDistTableItemIds * Item ids of assigned distribution set */ - @SuppressWarnings("serial") public void styleDistributionSetTable(final Long installedDistItemId, final Long assignedDistTableItemId) { - setCellStyleGenerator(new Table.CellStyleGenerator() { - @Override - public String getStyle(final Table source, final Object itemId, final Object propertyId) { - return getPinnedDistributionStyle(installedDistItemId, assignedDistTableItemId, itemId); - } - }); + setCellStyleGenerator((source, itemId, propertyId) -> getPinnedDistributionStyle(installedDistItemId, + assignedDistTableItemId, itemId)); } public void setDistributinPinnedBtn(final Button distributinPinnedBtn) { 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..d2ac628a8 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 @@ -58,9 +58,7 @@ public class DistributionTableHeader extends AbstractTableHeader { @Autowired private DistributionAddUpdateWindowLayout distributionAddUpdateWindowLayout; - /** - * Initialize the component. - */ + @Override @PostConstruct protected void init() { super.init(); @@ -81,54 +79,26 @@ public class DistributionTableHeader extends AbstractTableHeader { } } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#getHeaderCaption( - * ) - */ @Override protected String getHeaderCaption() { return i18n.get("header.dist.table"); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#getSearchBoxId() - */ @Override protected String getSearchBoxId() { return SPUIComponetIdProvider.DIST_SEARCH_TEXTFIELD; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * getSearchRestIconId() - */ @Override protected String getSearchRestIconId() { return SPUIComponetIdProvider.DIST_SEARCH_ICON; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#getAddIconId() - */ @Override protected String getAddIconId() { return SPUIComponetIdProvider.DIST_ADD_ICON; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * onLoadSearchBoxValue() - */ @Override protected String onLoadSearchBoxValue() { if (managementUIState.getDistributionTableFilters().getSearchText().isPresent()) { @@ -137,155 +107,78 @@ public class DistributionTableHeader extends AbstractTableHeader { return null; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#getDropFilterId() - */ @Override protected String getDropFilterId() { return null; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * hasCreatePermission() - */ @Override protected boolean hasCreatePermission() { return permChecker.hasCreateDistributionPermission(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * isDropHintRequired() - */ @Override protected boolean isDropHintRequired() { return true; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * isDropFilterRequired() - */ @Override protected boolean isDropFilterRequired() { return false; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * getShowFilterButtonLayoutId() - */ @Override protected String getShowFilterButtonLayoutId() { return "show.dist.tags.icon"; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * showFilterButtonsLayout() - */ @Override protected void showFilterButtonsLayout() { managementUIState.setDistTagFilterClosed(false); eventbus.publish(this, ManagementUIEvent.SHOW_DISTRIBUTION_TAG_LAYOUT); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#resetSearchText() - */ @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); + } } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#getMaxMinIconId() - */ @Override protected String getMaxMinIconId() { return SPUIComponetIdProvider.DS_MAX_MIN_TABLE_ICON; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#maximizeTable() - */ @Override public void maximizeTable() { managementUIState.setDsTableMaximized(Boolean.TRUE); eventbus.publish(this, new DistributionTableEvent(DistributionComponentEvent.MAXIMIZED, null)); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#minimizeTable() - */ @Override public void minimizeTable() { managementUIState.setDsTableMaximized(Boolean.FALSE); eventbus.publish(this, new DistributionTableEvent(DistributionComponentEvent.MINIMIZED, null)); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * onLoadIsTableMaximized() - */ @Override public Boolean onLoadIsTableMaximized() { return managementUIState.isDsTableMaximized(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * onLoadIsShowFilterButtonDisplayed() - */ @Override public Boolean onLoadIsShowFilterButtonDisplayed() { return managementUIState.isDistTagFilterClosed(); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#searchBy(java. - * lang.String) - */ @Override protected void searchBy(final String newSearchText) { managementUIState.getDistributionTableFilters().setSearchText(newSearchText); eventbus.publish(this, DistributionTableFilterEvent.FILTER_BY_TEXT); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#addNewItem(com. - * vaadin.ui.Button.ClickEvent ) - */ @Override protected void addNewItem(final ClickEvent event) { final Window newDistWindow = distributionAddUpdateWindowLayout.getWindow(); @@ -295,12 +188,6 @@ public class DistributionTableHeader extends AbstractTableHeader { eventbus.publish(this, DragEvent.HIDE_DROP_HINT); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * isAddNewItemAllowed() - */ @Override protected Boolean isAddNewItemAllowed() { return Boolean.FALSE; @@ -321,47 +208,21 @@ public class DistributionTableHeader extends AbstractTableHeader { return null; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * getBulkUploadIconId() - */ @Override protected String getBulkUploadIconId() { return null; } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.table.AbstractTableHeader#bulkUpload(com. - * vaadin.ui.Button.ClickEvent ) - */ @Override protected void bulkUpload(final ClickEvent event) { - /** - * No implementation as no bulk upload is supported. - */ + // No implementation as no bulk upload is supported. } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * isBulkUploadAllowed() - */ @Override protected Boolean isBulkUploadAllowed() { return Boolean.FALSE; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.table.AbstractTableHeader# - * isBulkUploadInProgress() - */ @Override protected boolean isBulkUploadInProgress() { return false; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagBeanQuery.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagBeanQuery.java index 1df06e603..8be9548f7 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagBeanQuery.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagBeanQuery.java @@ -75,7 +75,7 @@ public class DistributionTagBeanQuery extends AbstractBeanQuery { @Override protected List loadBeans(final int startIndex, final int count) { Page dsTagBeans; - final List tagList = new ArrayList(); + final List tagList = new ArrayList<>(); if (startIndex == 0 && firstPageDsTag != null) { dsTagBeans = firstPageDsTag; } else { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagButtons.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagButtons.java index 9866ba577..98c48d235 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagButtons.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagButtons.java @@ -64,12 +64,7 @@ public class DistributionTagButtons extends AbstractFilterButtons { @Autowired private ManagementUIState managementUIState; - /** - * Initialize component. - * - * @param filterButtonClickBehaviour - * the clickable behaviour. - */ + @Override public void init(final AbstractFilterButtonClickBehaviour filterButtonClickBehaviour) { super.init(filterButtonClickBehaviour); addNewTag(new DistributionSetTag("NO TAG")); @@ -98,7 +93,6 @@ public class DistributionTagButtons extends AbstractFilterButtons { @EventBusListenerMethod(scope = EventScope.SESSION) void onEvent(final DragEvent dragEvent) { - if (dragEvent == DragEvent.DISTRIBUTION_DRAG) { UI.getCurrent().access(() -> addStyleName(SPUIStyleDefinitions.SHOW_DROP_HINT_FILTER_BUTTON)); } else { @@ -106,34 +100,18 @@ public class DistributionTagButtons extends AbstractFilterButtons { } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * getButtonsTableId() - */ @Override protected String getButtonsTableId() { return SPUIComponetIdProvider.DISTRIBUTION_TAG_TABLE_ID; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * createButtonsLazyQueryContainer () - */ @Override protected LazyQueryContainer createButtonsLazyQueryContainer() { - final Map queryConfig = new HashMap(); - final BeanQueryFactory tagQF = new BeanQueryFactory( - DistributionTagBeanQuery.class); + final Map queryConfig = new HashMap<>(); + final BeanQueryFactory tagQF = new BeanQueryFactory<>(DistributionTagBeanQuery.class); tagQF.setQueryConfiguration(queryConfig); - final LazyQueryContainer tagContainer = HawkbitCommonUtil.createDSLazyQueryContainer( + return HawkbitCommonUtil.createDSLazyQueryContainer( new BeanQueryFactory(DistributionTagBeanQuery.class)); - return tagContainer; } @@ -142,13 +120,6 @@ public class DistributionTagButtons extends AbstractFilterButtons { return SPUIDefinitions.DISTRIBUTION_TAG_BUTTON; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * isClickedByDefault(java.lang .Long) - */ @Override protected boolean isClickedByDefault(final Long buttonId) { final DistributionSetTag dsTagObject = tagMgmtService.findDistributionSetTagById(buttonId); @@ -161,37 +132,16 @@ public class DistributionTagButtons extends AbstractFilterButtons { return managementUIState.getDistributionTableFilters().isNoTagSelected(); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * createButtonId(java.lang. String) - */ @Override protected String createButtonId(final String name) { return name; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * getFilterButtonDropHandler() - */ @Override protected DropHandler getFilterButtonDropHandler() { return spDistTagDropEvent; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * getButttonWrapperId() - */ @Override protected String getButttonWrapperIdPrefix() { return SPUIDefinitions.DISTRIBUTION_TAG_ID_PREFIXS; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagHeader.java index 5e19e05f8..2d58849dc 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagHeader.java @@ -50,9 +50,7 @@ public class DistributionTagHeader extends AbstractFilterHeader { @Autowired private CreateUpdateDistributionTagLayoutWindow createORUpdateDistributionTagLayout; - /** - * Initialize the components. - */ + @Override @PostConstruct public void init() { super.init(); @@ -61,100 +59,45 @@ public class DistributionTagHeader extends AbstractFilterHeader { } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * getHideButtonId() - */ @Override protected String getHideButtonId() { return "hide.distribution.tags"; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * hasCreateUpdatePermission() - */ @Override protected boolean hasCreateUpdatePermission() { return permChecker.hasCreateDistributionPermission() || permChecker.hasUpdateDistributionPermission(); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.filterlayout.AbstractFilterHeader#getTitle( - * ) - */ @Override protected String getTitle() { return i18n.get("header.filter.tag", new Object[] {}); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * settingsIconClicked(com.vaadin .ui.Button.ClickEvent) - */ @Override protected void settingsIconClicked(final ClickEvent event) { final Window addUpdateWindow = createORUpdateDistributionTagLayout.getWindow(); UI.getCurrent().addWindow(addUpdateWindow); addUpdateWindow.setModal(true); addUpdateWindow.setVisible(Boolean.TRUE); - } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * dropHitsRequired() - */ @Override protected boolean dropHitsRequired() { return true; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * hideFilterButtonLayout() - */ @Override protected void hideFilterButtonLayout() { managementUIState.setDistTagFilterClosed(true); eventbus.publish(this, ManagementUIEvent.HIDE_DISTRIBUTION_TAG_LAYOUT); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * getConfigureFilterButtonId() - */ @Override protected String getConfigureFilterButtonId() { return SPUIComponetIdProvider.ADD_DISTRIBUTION_TAG; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterHeader# - * isAddTagRequired() - */ @Override protected boolean isAddTagRequired() { return true; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/DistributionTagDropEvent.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/DistributionTagDropEvent.java index c87a5eec9..21013a55e 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/DistributionTagDropEvent.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/DistributionTagDropEvent.java @@ -86,20 +86,13 @@ public class DistributionTagDropEvent implements DropHandler { private Boolean isNoTagAssigned(final DragAndDropEvent event) { final String tagName = ((DragAndDropWrapper) (event.getTargetDetails().getTarget())).getData().toString(); if (tagName.equals(SPUIDefinitions.DISTRIBUTION_TAG_BUTTON)) { - notification.displayValidationError(i18n.get("message.tag.cannot.be.assigned", - new Object[] { i18n.get("label.no.tag.assigned") })); + notification.displayValidationError( + i18n.get("message.tag.cannot.be.assigned", new Object[] { i18n.get("label.no.tag.assigned") })); return false; } return true; } - /** - * Validate the drop. - * - * @param event - * DragAndDropEvent reference - * @return Boolean - */ private Boolean validate(final DragAndDropEvent event) { final Component compsource = event.getTransferable().getSourceComponent(); if (!(compsource instanceof Table)) { @@ -116,11 +109,6 @@ public class DistributionTagDropEvent implements DropHandler { return true; } - /** - * validate the update permission. - * - * @return boolean - */ private boolean checkForDSUpdatePermission() { if (!permChecker.hasUpdateDistributionPermission()) { @@ -131,13 +119,6 @@ public class DistributionTagDropEvent implements DropHandler { return true; } - /** - * validate the source tables. - * - * @param source - * table - * @return boolean - */ private boolean validateIfSourceIsDs(final Table source) { if (!source.getId().equals(SPUIComponetIdProvider.DIST_TABLE_ID)) { notification.displayValidationError(i18n.get(SPUILabelDefinitions.ACTION_NOT_ALLOWED)); @@ -146,12 +127,6 @@ public class DistributionTagDropEvent implements DropHandler { return true; } - /** - * Process target Drop event. - * - * @param event - * DragAndDropEvent - */ private void processDistributionDrop(final DragAndDropEvent event) { final com.vaadin.event.dd.TargetDetails targetDetails = event.getTargetDetails(); @@ -161,7 +136,7 @@ public class DistributionTagDropEvent implements DropHandler { @SuppressWarnings("unchecked") final Set distSelected = (Set) source.getValue(); - final Set distributionList = new HashSet(); + final Set distributionList = new HashSet<>(); if (!distSelected.contains(transferable.getData(ITEMID))) { distributionList.add(((DistributionSetIdName) transferable.getData(ITEMID)).getId()); } else { @@ -172,8 +147,8 @@ public class DistributionTagDropEvent implements DropHandler { SPUIDefinitions.DISTRIBUTION_TAG_ID_PREFIXS); final List tagsClickedList = distFilterParameters.getDistSetTags(); - final DistributionSetTagAssigmentResult result = distributionSetManagement.toggleTagAssignment( - distributionList, distTagName); + final DistributionSetTagAssigmentResult result = distributionSetManagement.toggleTagAssignment(distributionList, + distTagName); notification.displaySuccess(HawkbitCommonUtil.getDistributionTagAssignmentMsg(distTagName, result, i18n)); if (result.getUnassigned() >= 1 && !tagsClickedList.isEmpty()) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/ManagementViewAcceptCriteria.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/ManagementViewAcceptCriteria.java index f5f890253..1c44014e8 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/ManagementViewAcceptCriteria.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/ManagementViewAcceptCriteria.java @@ -47,12 +47,6 @@ public class ManagementViewAcceptCriteria extends AbstractAcceptCriteria { @Autowired private transient EventBus.SessionEventBus eventBus; - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.AbstractAcceptCriteria#analyseDragComponent - * (com.vaadin.event .dd.DragAndDropEvent, com.vaadin.ui.Component) - */ @Override protected void analyseDragComponent(final Component compsource) { final String sourceID = getComponentId(compsource); @@ -60,24 +54,11 @@ public class ManagementViewAcceptCriteria extends AbstractAcceptCriteria { eventBus.publish(this, event); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.AbstractAcceptCriteria#hideDropHints - * () - */ @Override protected void hideDropHints() { eventBus.publish(this, DragEvent.HIDE_DROP_HINT); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.AbstractAcceptCriteria#invalidDrop() - */ @Override protected void invalidDrop() { uiNotification.displayValidationError(SPUILabelDefinitions.ACTION_NOT_ALLOWED); @@ -94,60 +75,31 @@ public class ManagementViewAcceptCriteria extends AbstractAcceptCriteria { return id; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.AbstractAcceptCriteria# - * getDropHintConfigurations() - */ @Override protected Map getDropHintConfigurations() { return DROP_HINTS_CONFIGS; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.AbstractAcceptCriteria# - * publishDragStartEvent(java.lang.Object) - */ @Override protected void publishDragStartEvent(final Object event) { eventBus.publish(this, event); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.AbstractAcceptCriteria# - * getDropConfigurations() - */ @Override protected Map> getDropConfigurations() { return DROP_CONFIGS; } - /** - * @param id - * @return - */ private boolean isDistributionTagId(final String id) { return id != null && id.startsWith(SPUIDefinitions.DISTRIBUTION_TAG_ID_PREFIXS); } - /** - * @param id - * @return - */ private boolean isTargetTagId(final String id) { return id != null && id.startsWith(SPUIDefinitions.TARGET_TAG_ID_PREFIXS); } - /** - * @return - */ private static Map> createDropConfigurations() { - final Map> config = new HashMap>(); + final Map> config = new HashMap<>(); // Delete drop area acceptable components config.put(SPUIComponetIdProvider.DELETE_BUTTON_WRAPPER_ID, @@ -174,7 +126,7 @@ public class ManagementViewAcceptCriteria extends AbstractAcceptCriteria { } private static Map createDropHintConfigurations() { - final Map config = new HashMap(); + final Map config = new HashMap<>(); config.put(SPUIDefinitions.TARGET_TAG_ID_PREFIXS, DragEvent.TARGET_TAG_DRAG); config.put(SPUIComponetIdProvider.TARGET_TABLE_ID, DragEvent.TARGET_DRAG); config.put(SPUIComponetIdProvider.DIST_TABLE_ID, DragEvent.DISTRIBUTION_DRAG); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/DeleteActionsLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/DeleteActionsLayout.java index ec35463d7..1786429a1 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/DeleteActionsLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/DeleteActionsLayout.java @@ -19,7 +19,6 @@ import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.model.DistributionSetIdName; import org.eclipse.hawkbit.repository.model.TargetIdName; import org.eclipse.hawkbit.ui.common.footer.AbstractDeleteActionsLayout; -import org.eclipse.hawkbit.ui.management.dstable.DistributionTable; import org.eclipse.hawkbit.ui.management.event.BulkUploadPopupEvent; import org.eclipse.hawkbit.ui.management.event.DragEvent; import org.eclipse.hawkbit.ui.management.event.ManagementUIEvent; @@ -28,7 +27,6 @@ import org.eclipse.hawkbit.ui.management.event.SaveActionWindowEvent; import org.eclipse.hawkbit.ui.management.event.TargetTableEvent; import org.eclipse.hawkbit.ui.management.event.TargetTableEvent.TargetComponentEvent; import org.eclipse.hawkbit.ui.management.state.ManagementUIState; -import org.eclipse.hawkbit.ui.management.targettable.TargetTable; import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil; import org.eclipse.hawkbit.ui.utils.I18N; import org.eclipse.hawkbit.ui.utils.SPUIComponetIdProvider; @@ -85,12 +83,7 @@ public class DeleteActionsLayout extends AbstractDeleteActionsLayout { @Autowired private CountMessageLabel countMessageLabel; - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.DeleteActionsLayout#init() - */ + @Override @PostConstruct protected void init() { super.init(); @@ -172,73 +165,31 @@ public class DeleteActionsLayout extends AbstractDeleteActionsLayout { } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * hasDeletePermission() - */ @Override protected boolean hasDeletePermission() { return permChecker.hasDeleteDistributionPermission() || permChecker.hasDeleteTargetPermission(); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * hasUpdatePermission() - */ @Override protected boolean hasUpdatePermission() { return permChecker.hasUpdateTargetPermission() && permChecker.hasReadDistributionPermission(); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * getDeleteAreaLabel() - */ @Override protected String getDeleteAreaLabel() { return i18n.get("label.components.drop.area"); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * getDeleteAreaId() - */ @Override protected String getDeleteAreaId() { return SPUIComponetIdProvider.DELETE_BUTTON_WRAPPER_ID; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * getDeleteLayoutAcceptCriteria () - */ @Override protected AcceptCriterion getDeleteLayoutAcceptCriteria() { return managementViewAcceptCriteria; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * processDroppedComponent(com .vaadin.event.dd.DragAndDropEvent) - */ @Override protected void processDroppedComponent(final DragAndDropEvent event) { final Component source = event.getTransferable().getSourceComponent(); @@ -275,61 +226,26 @@ public class DeleteActionsLayout extends AbstractDeleteActionsLayout { return true; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * getNoActionsButtonLabel() - */ @Override protected String getNoActionsButtonLabel() { return i18n.get("button.no.actions"); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * getActionsButtonLabel() - */ @Override protected String getActionsButtonLabel() { return i18n.get("button.actions"); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * reloadActionCount() - */ @Override protected void restoreActionCount() { updateActionCount(); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * getUnsavedActionsWindowCaption () - */ @Override protected String getUnsavedActionsWindowCaption() { return i18n.get("caption.save.window"); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * unsavedActionsWindowClosed() - */ @Override protected void unsavedActionsWindowClosed() { final String message = manangementConfirmationWindowLayout.getConsolidatedMessage(); @@ -338,26 +254,12 @@ public class DeleteActionsLayout extends AbstractDeleteActionsLayout { } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * getUnsavedActionsWindowContent () - */ @Override protected Component getUnsavedActionsWindowContent() { manangementConfirmationWindowLayout.init(); return manangementConfirmationWindowLayout; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * hasUnsavedActions() - */ @Override protected boolean hasUnsavedActions() { if (!managementUIState.getDeletedDistributionList().isEmpty() @@ -368,25 +270,11 @@ public class DeleteActionsLayout extends AbstractDeleteActionsLayout { return false; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * hasCountMessage() - */ @Override protected boolean hasCountMessage() { return permChecker.hasTargetReadPermission(); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.footer.AbstractDeleteActionsLayout# - * getCountMessageLabel() - */ @Override protected Label getCountMessageLabel() { return countMessageLabel; @@ -413,19 +301,9 @@ public class DeleteActionsLayout extends AbstractDeleteActionsLayout { } } - /** - * - * Prepare deleted distribution set . - * - * @param sourceTable - * {@link DistributionTable} - * @param transferable - * {@link TableTransferable} - * - */ private void addInDeleteDistributionList(final Table sourceTable, final TableTransferable transferable) { final Set distSelected = HawkbitCommonUtil.getSelectedDSDetails(sourceTable); - final Set distributionIdNameSet = new HashSet(); + final Set distributionIdNameSet = new HashSet<>(); if (!distSelected.contains(transferable.getData(SPUIDefinitions.ITEMID))) { distributionIdNameSet.add((DistributionSetIdName) transferable.getData(SPUIDefinitions.ITEMID)); @@ -477,15 +355,6 @@ public class DeleteActionsLayout extends AbstractDeleteActionsLayout { return false; } - /** - * Prepare deleted target list. - * - * @param sourceTable - * {@link TargetTable} - * @param transferable - * {@link TableTransferable} - * - */ private void addInDeleteTargetList(final Table sourceTable, final TableTransferable transferable) { final Set targetSelected = HawkbitCommonUtil.getSelectedTargetDetails(sourceTable); @@ -521,9 +390,6 @@ public class DeleteActionsLayout extends AbstractDeleteActionsLayout { } } - /** - * Update the software module delete count. - */ private void updateActionCount() { final int count = managementUIState.getDeletedTargetList().size() + managementUIState.getDeletedDistributionList().size() + managementUIState.getAssignedList().size(); @@ -546,34 +412,16 @@ public class DeleteActionsLayout extends AbstractDeleteActionsLayout { return true; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.footer.AbstractDeleteActionsLayout# - * hasBulkUploadPermission() - */ @Override protected boolean hasBulkUploadPermission() { return permChecker.hasCreateTargetPermission(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.footer.AbstractDeleteActionsLayout# - * showBulkUploadWindow() - */ @Override protected void showBulkUploadWindow() { eventBus.publish(this, BulkUploadPopupEvent.MAXIMIMIZED); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.footer.AbstractDeleteActionsLayout# - * restoreBulkUploadStatusCount() - */ @Override protected void restoreBulkUploadStatusCount() { final Long failedCount = managementUIState.getTargetTableFilters().getBulkUpload().getFailedUploadCount(); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/state/DistributionTableFilters.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/state/DistributionTableFilters.java index f4c825283..b4ca40da9 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/state/DistributionTableFilters.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/state/DistributionTableFilters.java @@ -33,9 +33,9 @@ public class DistributionTableFilters implements Serializable { private String pinnedTargetId; - private final List distSetTags = new ArrayList(); + private final List distSetTags = new ArrayList<>(); - private List clickedDistSetTags = new ArrayList(); + private List clickedDistSetTags = new ArrayList<>(); private Boolean noTagSelected = Boolean.FALSE; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/state/TargetFilterParameters.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/state/TargetFilterParameters.java index 4adeb52ed..4f23b410c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/state/TargetFilterParameters.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/state/TargetFilterParameters.java @@ -30,9 +30,9 @@ public class TargetFilterParameters implements Serializable { private String searchText; - private final List status = new ArrayList(); + private final List status = new ArrayList<>(); - private List targetTags = new ArrayList(); + private List targetTags = new ArrayList<>(); private Long distributionSetId; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/state/TargetTableFilters.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/state/TargetTableFilters.java index 1e65caba9..6d8297345 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/state/TargetTableFilters.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/state/TargetTableFilters.java @@ -22,9 +22,6 @@ import com.vaadin.spring.annotation.VaadinSessionScope; /** * Target Table Filters. - * - * - * */ @VaadinSessionScope @SpringComponent @@ -32,8 +29,8 @@ public class TargetTableFilters implements Serializable { private static final long serialVersionUID = -5251492630546463593L; - private final List clickedTargetTags = new ArrayList(); - private final List clickedStatusTargetTags = new ArrayList(); + private final List clickedTargetTags = new ArrayList<>(); + private final List clickedStatusTargetTags = new ArrayList<>(); private String searchText; private DistributionSetIdName distributionSet; private Long pinnedDistId; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBeanQuery.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBeanQuery.java index be98ef3bc..dac50ab0d 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBeanQuery.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBeanQuery.java @@ -39,10 +39,6 @@ import com.google.common.base.Strings; * Simple implementation of generics bean query which dynamically loads a batch * of beans. * - * - * - * - * */ public class TargetBeanQuery extends AbstractBeanQuery { private static final long serialVersionUID = -5645680058303167558L; @@ -105,7 +101,7 @@ public class TargetBeanQuery extends AbstractBeanQuery { @Override protected List loadBeans(final int startIndex, final int count) { Slice targetBeans; - final List proxyTargetBeans = new ArrayList(); + final List proxyTargetBeans = new ArrayList<>(); if (pinnedDistId != null) { targetBeans = getTargetManagement().findTargetsAllOrderByLinkedDistributionSet( new OffsetBasedPageRequest(startIndex, SPUIDefinitions.PAGE_SIZE, sort), pinnedDistId, 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..960553a6a 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; @@ -73,8 +74,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 +105,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); @@ -138,6 +141,8 @@ public class TargetTable extends AbstractTable implements Handler { private Boolean isTargetPinned = Boolean.FALSE; private ShortcutAction actionSelectAll; private ShortcutAction actionUnSelectAll; + + @Override @PostConstruct @@ -271,7 +276,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 +399,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 +474,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 +486,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 +527,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 +538,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 +599,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 +610,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 +649,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 +706,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 +832,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 +1020,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 +1081,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 +1129,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/management/targettable/TargetTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java index a1b094f99..05b6bfe4d 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 @@ -56,9 +56,6 @@ import com.vaadin.ui.themes.ValoTheme; /** * Target table header layout. - * - * - * */ @SpringComponent @ViewScope @@ -92,9 +89,7 @@ public class TargetTableHeader extends AbstractTableHeader { private Boolean isComplexFilterViewDisplayed = Boolean.FALSE; - /** - * Initialization of Target Header Component. - */ + @Override @PostConstruct protected void init() { super.init(); @@ -258,8 +253,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() { @@ -335,6 +332,11 @@ public class TargetTableHeader extends AbstractTableHeader { @Override protected DropHandler getDropFilterHandler() { return new DropHandler() { + /** + * + */ + private static final long serialVersionUID = 1L; + @Override public void drop(final DragAndDropEvent event) { filterByDroppedDist(event); @@ -393,10 +395,9 @@ public class TargetTableHeader extends AbstractTableHeader { } private Set getDropppedDistributionDetails(final TableTransferable transferable) { - @SuppressWarnings("unchecked") final Set distSelected = HawkbitCommonUtil .getSelectedDSDetails(transferable.getSourceComponent()); - final Set distributionIdSet = new HashSet(); + final Set distributionIdSet = new HashSet<>(); if (!distSelected.contains(transferable.getData("itemId"))) { distributionIdSet.add((DistributionSetIdName) transferable.getData("itemId")); } else { @@ -441,12 +442,6 @@ public class TargetTableHeader extends AbstractTableHeader { eventBus.publish(this, TargetFilterEvent.REMOVE_FILTER_BY_DISTRIBUTION); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * displayFilterDropedInfoOnLoad() - */ @Override protected void displayFilterDropedInfoOnLoad() { if (managementUIState.getTargetTableFilters().getDistributionSet().isPresent()) { @@ -454,23 +449,11 @@ public class TargetTableHeader extends AbstractTableHeader { } } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableHeader# - * getFilterIconStyle() - */ @Override protected String getFilterIconStyle() { return null; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.table.AbstractTableHeader# - * isBulkUploadInProgress() - */ @Override protected boolean isBulkUploadInProgress() { return managementUIState.getTargetTableFilters().getBulkUpload().getSucessfulUploadCount() != 0 diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagBeanQuery.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagBeanQuery.java index ec2cff7fa..5164a409a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagBeanQuery.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagBeanQuery.java @@ -75,7 +75,7 @@ public class TargetTagBeanQuery extends AbstractBeanQuery { @Override protected List loadBeans(final int startIndex, final int count) { Page targetTagBeans; - final List targetTagList = new ArrayList(); + final List targetTagList = new ArrayList<>(); if (startIndex == 0 && firstPageTargetTag != null) { targetTagBeans = firstPageTargetTag; } else { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterButtons.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterButtons.java index c9a2c945c..9d93962da 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterButtons.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterButtons.java @@ -57,9 +57,6 @@ import com.vaadin.ui.UI; /** * Target Tag filter buttons table. - * - * - * */ @SpringComponent @ViewScope @@ -129,40 +126,18 @@ public class TargetTagFilterButtons extends AbstractFilterButtons { } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * getButtonsTableId() - */ @Override protected String getButtonsTableId() { return SPUIComponetIdProvider.TARGET_TAG_TABLE_ID; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * createButtonsLazyQueryContainer () - */ @Override protected LazyQueryContainer createButtonsLazyQueryContainer() { - final LazyQueryContainer tagContainer = HawkbitCommonUtil + return HawkbitCommonUtil .createDSLazyQueryContainer(new BeanQueryFactory(TargetTagBeanQuery.class)); - return tagContainer; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * isClickedByDefault(java.lang .Long) - */ @Override protected boolean isClickedByDefault(final Long buttonId) { final TargetTag newTagClickedObj = tagMgmtService.findTargetTagById(buttonId); @@ -175,26 +150,12 @@ public class TargetTagFilterButtons extends AbstractFilterButtons { return managementUIState.getTargetTableFilters().isNoTagSelected(); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * createButtonId(java.lang. String) - */ @Override protected String createButtonId(final String name) { return name; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * getFilterButtonDropHandler() - */ @Override protected DropHandler getFilterButtonDropHandler() { @@ -267,21 +228,14 @@ public class TargetTagFilterButtons extends AbstractFilterButtons { return true; } - /** - * Process target Drop event. - * - * @param event - * DragAndDropEvent - */ private void processTargetDrop(final DragAndDropEvent event) { final com.vaadin.event.dd.TargetDetails targetDetails = event.getTargetDetails(); final TableTransferable transferable = (TableTransferable) event.getTransferable(); final Table source = transferable.getSourceComponent(); - @SuppressWarnings("unchecked") final Set targetSelected = HawkbitCommonUtil.getSelectedTargetDetails(source); - final Set targetList = new HashSet(); + final Set targetList = new HashSet<>(); if (transferable.getData(ITEMID) != null) { if (!targetSelected.contains(transferable.getData(ITEMID))) { targetList.add(((TargetIdName) transferable.getData(ITEMID)).getControllerId()); @@ -306,13 +260,6 @@ public class TargetTagFilterButtons extends AbstractFilterButtons { } } - /** - * validate the source tables. - * - * @param source - * table - * @return boolean - */ private boolean validateIfSourceisTargetTable(final Table source) { if (!source.getId().equals(SPUIComponetIdProvider.TARGET_TABLE_ID)) { notification.displayValidationError(i18n.get(SPUILabelDefinitions.ACTION_NOT_ALLOWED)); @@ -321,13 +268,6 @@ public class TargetTagFilterButtons extends AbstractFilterButtons { return true; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterButtons# - * getButttonWrapperId() - */ @Override protected String getButttonWrapperIdPrefix() { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterHeader.java index 5175f5f60..7d0b5c76c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterHeader.java @@ -25,9 +25,6 @@ import com.vaadin.ui.Button.ClickEvent; /** * Target Tag filter by Tag Header. - * - * - * */ @SpringComponent @ViewScope @@ -50,9 +47,7 @@ public class TargetTagFilterHeader extends AbstractFilterHeader { @Autowired private ManagementUIState managementUIState; - /** - * Initialize Tag Header. - */ + @Override @PostConstruct public void init() { super.init(); @@ -61,101 +56,45 @@ public class TargetTagFilterHeader extends AbstractFilterHeader { } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * getHideButtonId() - */ @Override protected String getHideButtonId() { return SPUIComponetIdProvider.HIDE_TARGET_TAGS; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * hasCreateUpdatePermission() - */ @Override protected boolean hasCreateUpdatePermission() { return permChecker.hasCreateTargetPermission() || permChecker.hasUpdateTargetPermission(); } - /* - * (non-Javadoc) - * - * @see hawkbit.server.ui.common.filterlayout.AbstractFilterHeader#getTitle( - * ) - */ @Override protected String getTitle() { return i18n.get("header.target.filter.tag", new Object[] {}); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * settingsIconClicked(com.vaadin .ui.Button.ClickEvent) - */ @Override protected void settingsIconClicked(final ClickEvent event) { - /** - * Add tag icon not displayed. - */ + // Add tag icon not displayed. } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * dropHitsRequired() - */ @Override protected boolean dropHitsRequired() { return true; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * hideFilterButtonLayout() - */ @Override protected void hideFilterButtonLayout() { managementUIState.setTargetTagFilterClosed(true); eventbus.publish(this, ManagementUIEvent.HIDE_TARGET_TAG_LAYOUT); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.server.ui.common.filterlayout.AbstractFilterHeader# - * getConfigureFilterButtonId() - */ @Override protected String getConfigureFilterButtonId() { return null; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterHeader# - * isAddTagRequired() - */ @Override protected boolean isAddTagRequired() { return false; 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/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/ProxyRollout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/ProxyRollout.java index efe065b85..92f30293a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/ProxyRollout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/ProxyRollout.java @@ -24,10 +24,6 @@ public class ProxyRollout extends Rollout { private String modifiedDate; - private String createdBy; - - private String lastModifiedBy; - private Long numberOfGroups; private Long runningTargetsCount; @@ -106,36 +102,6 @@ public class ProxyRollout extends Rollout { this.modifiedDate = modifiedDate; } - /** - * @return the createdBy - */ - public String getCreatedBy() { - return createdBy; - } - - /** - * @param createdBy - * the createdBy to set - */ - public void setCreatedBy(final String createdBy) { - this.createdBy = createdBy; - } - - /** - * @return the lastModifiedBy - */ - public String getLastModifiedBy() { - return lastModifiedBy; - } - - /** - * @param lastModifiedBy - * the lastModifiedBy to set - */ - public void setLastModifiedBy(final String lastModifiedBy) { - this.lastModifiedBy = lastModifiedBy; - } - /** * @return the runningTargetsCount */ diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/ProxyRolloutGroup.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/ProxyRolloutGroup.java index 8373fcf08..da49d843a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/ProxyRolloutGroup.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/ProxyRolloutGroup.java @@ -22,10 +22,6 @@ public class ProxyRolloutGroup extends RolloutGroup { private String modifiedDate; - private String createdBy; - - private String lastModifiedBy; - private String finishedPercentage; private Long runningTargetsCount; @@ -74,36 +70,6 @@ public class ProxyRolloutGroup extends RolloutGroup { this.modifiedDate = modifiedDate; } - /** - * @return the createdBy - */ - public String getCreatedBy() { - return createdBy; - } - - /** - * @param createdBy - * the createdBy to set - */ - public void setCreatedBy(final String createdBy) { - this.createdBy = createdBy; - } - - /** - * @return the lastModifiedBy - */ - public String getLastModifiedBy() { - return lastModifiedBy; - } - - /** - * @param lastModifiedBy - * the lastModifiedBy to set - */ - public void setLastModifiedBy(final String lastModifiedBy) { - this.lastModifiedBy = lastModifiedBy; - } - /** * @return the finishedPercentage */ diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListHeader.java index 562569136..19a504384 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListHeader.java @@ -53,6 +53,7 @@ public class RolloutGroupTargetsListHeader extends AbstractSimpleTableHeader { private Button rolloutsGroupViewLink; private Label headerCaption; + @Override @PostConstruct protected void init() { super.init(); @@ -78,8 +79,8 @@ public class RolloutGroupTargetsListHeader extends AbstractSimpleTableHeader { headerCaption.setCaption(rolloutGroup.getName()); } - rolloutsGroupViewLink.setCaption(rolloutUiState.getRolloutName().isPresent() ? rolloutUiState.getRolloutName() - .get() : ""); + rolloutsGroupViewLink + .setCaption(rolloutUiState.getRolloutName().isPresent() ? rolloutUiState.getRolloutName().get() : ""); } @Override @@ -103,9 +104,7 @@ public class RolloutGroupTargetsListHeader extends AbstractSimpleTableHeader { @Override protected void searchBy(final String newSearchText) { - /** - * No implementation required. - */ + // No implementation required. } @@ -162,12 +161,6 @@ public class RolloutGroupTargetsListHeader extends AbstractSimpleTableHeader { return false; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.rollout.AbstractSimpleTableHeader# - * getHeaderCaptionLayout() - */ @Override protected HorizontalLayout getHeaderCaptionLayout() { headerCaption = SPUIComponentProvider.getLabel("", SPUILabelDefinitions.SP_WIDGET_CAPTION); @@ -204,12 +197,6 @@ public class RolloutGroupTargetsListHeader extends AbstractSimpleTableHeader { eventBus.publish(this, RolloutEvent.SHOW_ROLLOUTS); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.ui.rollout.AbstractSimpleTableHeader#restoreCaption() - */ @Override protected void restoreCaption() { setCaptionDetails(); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListTable.java index 95eba8380..bb037231b 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListTable.java @@ -61,6 +61,7 @@ public class RolloutGroupTargetsListTable extends AbstractSimpleTable { @Autowired private transient RolloutUIState rolloutUIState; + @Override @PostConstruct protected void init() { super.init(); @@ -88,8 +89,8 @@ public class RolloutGroupTargetsListTable extends AbstractSimpleTable { columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_DATE, i18n.get("header.createdDate"), 0.15f)); columnList .add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY, i18n.get("header.modifiedBy"), 0.15f)); - columnList.add(new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, i18n.get("header.modifiedDate"), - 0.15f)); + columnList.add( + new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, i18n.get("header.modifiedDate"), 0.15f)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_DESC, i18n.get("header.description"), 0.15f)); columnList.add(new TableColumn(SPUILabelDefinitions.VAR_TARGET_STATUS, i18n.get("header.status"), 0.1f)); @@ -101,15 +102,16 @@ public class RolloutGroupTargetsListTable extends AbstractSimpleTable { protected Container createContainer() { final BeanQueryFactory rolloutgrouBeanQueryFactory = new BeanQueryFactory<>( RolloutGroupTargetsBeanQuery.class); - return new LazyQueryContainer(new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, - SPUILabelDefinitions.VAR_ID), rolloutgrouBeanQueryFactory); + return new LazyQueryContainer( + new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_ID), + rolloutgrouBeanQueryFactory); } @Override protected void addContainerProperties(final Container container) { final LazyQueryContainer rolloutGroupTargetTableContainer = (LazyQueryContainer) container; - rolloutGroupTargetTableContainer.addContainerProperty(SPUILabelDefinitions.VAR_CONT_ID, String.class, "", - false, false); + rolloutGroupTargetTableContainer.addContainerProperty(SPUILabelDefinitions.VAR_CONT_ID, String.class, "", false, + false); rolloutGroupTargetTableContainer.addContainerProperty(SPUILabelDefinitions.VAR_NAME, String.class, "", false, true); rolloutGroupTargetTableContainer.addContainerProperty(SPUILabelDefinitions.VAR_STATUS, Status.class, @@ -124,10 +126,10 @@ public class RolloutGroupTargetsListTable extends AbstractSimpleTable { false, true); rolloutGroupTargetTableContainer.addContainerProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY, String.class, null, false, true); - rolloutGroupTargetTableContainer.addContainerProperty(SPUILabelDefinitions.VAR_CREATED_DATE, String.class, + rolloutGroupTargetTableContainer.addContainerProperty(SPUILabelDefinitions.VAR_CREATED_DATE, String.class, null, + false, true); + rolloutGroupTargetTableContainer.addContainerProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, String.class, null, false, true); - rolloutGroupTargetTableContainer.addContainerProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, - String.class, null, false, true); rolloutGroupTargetTableContainer.addContainerProperty(SPUILabelDefinitions.VAR_DESC, String.class, "", false, true); } @@ -140,23 +142,20 @@ public class RolloutGroupTargetsListTable extends AbstractSimpleTable { @Override protected void onValueChange() { - /** - * No implementation required. - */ + // No implementation required. } @Override protected void addCustomGeneratedColumns() { - addGeneratedColumn(SPUILabelDefinitions.VAR_TARGET_STATUS, (source, itemId, columnId) -> getStatusLabel(itemId)); + addGeneratedColumn(SPUILabelDefinitions.VAR_TARGET_STATUS, + (source, itemId, columnId) -> getStatusLabel(itemId)); setColumnAlignment(SPUILabelDefinitions.VAR_TARGET_STATUS, Align.CENTER); } @Override protected void setCollapsiblecolumns() { - /** - * No implementation required. - */ + // No implementation required. } private Label getStatusLabel(final Object itemId) { @@ -171,8 +170,8 @@ public class RolloutGroupTargetsListTable extends AbstractSimpleTable { private void setStatusIcon(final Object itemId, final Label statusLabel) { final Item item = getItem(itemId); - final RolloutGroup rolloutGroup = rolloutUIState.getRolloutGroup().isPresent() ? rolloutUIState - .getRolloutGroup().get() : null; + final RolloutGroup rolloutGroup = rolloutUIState.getRolloutGroup().isPresent() + ? rolloutUIState.getRolloutGroup().get() : null; if (item != null) { final Status status = (Status) item.getItemProperty(SPUILabelDefinitions.VAR_STATUS).getValue(); if (status == null) { @@ -184,10 +183,10 @@ public class RolloutGroupTargetsListTable extends AbstractSimpleTable { statusLabel.setValue(FontAwesome.MINUS_CIRCLE.getHtml()); statusLabel.addStyleName("statusIconBlue"); - final String dsNameVersion = (String) item.getItemProperty( - SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_NAME_VER).getValue(); - statusLabel.setDescription(i18n - .get("message.dist.already.assigned", new Object[] { dsNameVersion })); + final String dsNameVersion = (String) item + .getItemProperty(SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_NAME_VER).getValue(); + statusLabel + .setDescription(i18n.get("message.dist.already.assigned", new Object[] { dsNameVersion })); } } else { setRolloutStatusIcon(status, statusLabel); @@ -197,36 +196,36 @@ public class RolloutGroupTargetsListTable extends AbstractSimpleTable { } private void setRolloutStatusIcon(final Status targetUpdateStatus, final Label statusLabel) { - switch (targetUpdateStatus) { - case ERROR: - statusLabel.setValue(FontAwesome.EXCLAMATION_CIRCLE.getHtml()); - statusLabel.addStyleName("statusIconRed"); - break; - case SCHEDULED: - statusLabel.setValue(FontAwesome.BULLSEYE.getHtml()); - statusLabel.addStyleName("statusIconBlue"); - break; - case FINISHED: - statusLabel.setValue(FontAwesome.CHECK_CIRCLE.getHtml()); - statusLabel.addStyleName("statusIconGreen"); - break; - case RUNNING: - case RETRIEVED: - case WARNING: - case DOWNLOAD: - statusLabel.setValue(FontAwesome.ADJUST.getHtml()); - statusLabel.addStyleName("statusIconYellow"); - break; - case CANCELED: - statusLabel.setValue(FontAwesome.TIMES_CIRCLE.getHtml()); - statusLabel.addStyleName("statusIconGreen"); - break; - case CANCELING: - statusLabel.setValue(FontAwesome.TIMES_CIRCLE.getHtml()); - statusLabel.addStyleName("statusIconPending"); - break; - default: - break; - } + switch (targetUpdateStatus) { + case ERROR: + statusLabel.setValue(FontAwesome.EXCLAMATION_CIRCLE.getHtml()); + statusLabel.addStyleName("statusIconRed"); + break; + case SCHEDULED: + statusLabel.setValue(FontAwesome.BULLSEYE.getHtml()); + statusLabel.addStyleName("statusIconBlue"); + break; + case FINISHED: + statusLabel.setValue(FontAwesome.CHECK_CIRCLE.getHtml()); + statusLabel.addStyleName("statusIconGreen"); + break; + case RUNNING: + case RETRIEVED: + case WARNING: + case DOWNLOAD: + statusLabel.setValue(FontAwesome.ADJUST.getHtml()); + statusLabel.addStyleName("statusIconYellow"); + break; + case CANCELED: + statusLabel.setValue(FontAwesome.TIMES_CIRCLE.getHtml()); + statusLabel.addStyleName("statusIconGreen"); + break; + case CANCELING: + statusLabel.setValue(FontAwesome.TIMES_CIRCLE.getHtml()); + statusLabel.addStyleName("statusIconPending"); + break; + default: + break; + } } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupsListHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupsListHeader.java index 58cc2a753..3c89518e1 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupsListHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupsListHeader.java @@ -52,6 +52,7 @@ public class RolloutGroupsListHeader extends AbstractSimpleTableHeader { private Label headerCaption; + @Override @PostConstruct protected void init() { super.init(); @@ -71,54 +72,42 @@ public class RolloutGroupsListHeader extends AbstractSimpleTableHeader { } private void setCaptionDetails() { - headerCaption.setCaption(rolloutUiState.getRolloutName().isPresent() ? rolloutUiState.getRolloutName().get() - : ""); + headerCaption + .setCaption(rolloutUiState.getRolloutName().isPresent() ? rolloutUiState.getRolloutName().get() : ""); } @Override protected void resetSearchText() { - /** - * No implementation required. - */ + // No implementation required. } @Override protected String getSearchBoxId() { - /** - * No implementation required. - */ + // No implementation required. return null; } @Override protected String getSearchRestIconId() { - /** - * No implementation required. - */ + // No implementation required. return null; } @Override protected void searchBy(final String newSearchText) { - /** - * No implementation required. - */ + // No implementation required. } @Override protected String getAddIconId() { - /** - * No implementation required. - */ + // No implementation required. return null; } @Override protected void addNewItem(final ClickEvent event) { - /** - * No implementation required. - */ + // No implementation required. } @Override @@ -129,7 +118,6 @@ public class RolloutGroupsListHeader extends AbstractSimpleTableHeader { @Override protected boolean hasCreatePermission() { - return true; } @@ -140,7 +128,6 @@ public class RolloutGroupsListHeader extends AbstractSimpleTableHeader { @Override protected boolean showCloseButton() { - return true; } @@ -159,12 +146,6 @@ public class RolloutGroupsListHeader extends AbstractSimpleTableHeader { return false; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.rollout.AbstractSimpleTableHeader# - * getHeaderCaptionLayout() - */ @Override protected HorizontalLayout getHeaderCaptionLayout() { headerCaption = SPUIComponentProvider.getLabel("", SPUILabelDefinitions.SP_WIDGET_CAPTION); @@ -184,12 +165,6 @@ public class RolloutGroupsListHeader extends AbstractSimpleTableHeader { return headerCaptionLayout; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.ui.rollout.AbstractSimpleTableHeader#restoreCaption() - */ @Override protected void restoreCaption() { setCaptionDetails(); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutListHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutListHeader.java index 6abfdb584..26bf021c4 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutListHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutListHeader.java @@ -50,9 +50,7 @@ public class RolloutListHeader extends AbstractSimpleTableHeader { @Autowired private AddUpdateRolloutWindowLayout addUpdateRolloutWindow; - /** - * Initialization of Target Header Component. - */ + @Override @PostConstruct protected void init() { super.init(); @@ -101,9 +99,7 @@ public class RolloutListHeader extends AbstractSimpleTableHeader { @Override protected void onClose(final ClickEvent event) { - /** - * No implementation required. - */ + // No implementation required. } @Override @@ -133,16 +129,9 @@ public class RolloutListHeader extends AbstractSimpleTableHeader { @Override protected boolean isRollout() { - return true; } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.rollout.AbstractSimpleTableHeader# - * getHeaderCaptionLayout() - */ @Override protected HorizontalLayout getHeaderCaptionLayout() { final Label headerCaption = SPUIComponentProvider.getLabel(getHeaderCaption(), @@ -153,17 +142,9 @@ public class RolloutListHeader extends AbstractSimpleTableHeader { return headerCaptionLayout; } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.hawkbit.ui.rollout.AbstractSimpleTableHeader#restoreCaption() - */ @Override protected void restoreCaption() { - /** - * No implementation required. - */ + // No implementation required. } } diff --git a/hawkbit-ui/src/main/resources/messages.properties b/hawkbit-ui/src/main/resources/messages.properties index 08617bd58..c63b0ba8a 100644 --- a/hawkbit-ui/src/main/resources/messages.properties +++ b/hawkbit-ui/src/main/resources/messages.properties @@ -313,7 +313,7 @@ soft.module.os =OS message.error.noFileSelected = No file selected for upload message.error.noProvidedName = Please provide custom file name message.error.noSwModuleSelected = Please select a software module -message.no.duplicateFiles = duplicate files selected +message.no.duplicateFiles = Duplicate files selected message.no.duplicateFile = Duplicate file selected : message.delete.artifact = Are you sure that you want to delete artifact {0} ? message.duplicate.filename = Duplicate file name diff --git a/hawkbit-ui/src/main/resources/messages_de.properties b/hawkbit-ui/src/main/resources/messages_de.properties index c1d9a850f..9ff2e5e75 100644 --- a/hawkbit-ui/src/main/resources/messages_de.properties +++ b/hawkbit-ui/src/main/resources/messages_de.properties @@ -310,7 +310,7 @@ soft.module.os =OS message.error.noFileSelected = No file selected for upload message.error.noProvidedName = Please provide custom file name message.error.noSwModuleSelected = Please select a software module -message.no.duplicateFiles = duplicate files selected +message.no.duplicateFiles = Duplicate files selected message.no.duplicateFile = Duplicate file selected : message.delete.artifact = Are you sure that you want to delete artifact {0} ? message.duplicate.filename = Duplicate file name diff --git a/hawkbit-ui/src/main/resources/messages_en.properties b/hawkbit-ui/src/main/resources/messages_en.properties index b1f95cb45..762b68c56 100644 --- a/hawkbit-ui/src/main/resources/messages_en.properties +++ b/hawkbit-ui/src/main/resources/messages_en.properties @@ -305,7 +305,7 @@ soft.module.os =OS message.error.noFileSelected = No file selected for upload message.error.noProvidedName = Please provide custom file name message.error.noSwModuleSelected = Please select a software module -message.no.duplicateFiles = duplicate files selected +message.no.duplicateFiles = Duplicate files selected message.no.duplicateFile = Duplicate file selected : message.delete.artifact = Are you sure that you want to delete artifact {0} ? message.duplicate.filename = Duplicate file name diff --git a/hawkbit-ui/src/test/java/org/eclipse/hawkbit/ui/utils/NamingThreadFactoryTest.java b/hawkbit-ui/src/test/java/org/eclipse/hawkbit/ui/utils/NamingThreadFactoryTest.java index d351f976d..1ff1b3d33 100644 --- a/hawkbit-ui/src/test/java/org/eclipse/hawkbit/ui/utils/NamingThreadFactoryTest.java +++ b/hawkbit-ui/src/test/java/org/eclipse/hawkbit/ui/utils/NamingThreadFactoryTest.java @@ -19,24 +19,32 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; +import org.springframework.context.annotation.Description; +import ru.yandex.qatools.allure.annotations.Features; +import ru.yandex.qatools.allure.annotations.Stories; + +@Features("Component Tests - UI") +@Stories("Threads with NamingThreadFactory") @RunWith(MockitoJUnitRunner.class) public class NamingThreadFactoryTest { @Mock private final Runnable runnableMock = mock(Runnable.class); @Test + @Description("Correct name of threads when created through NamingThreadFactory.") public void setsNameForThreads() { final String knownName = "knownName"; final ThreadFactory threadFactory = new NamingThreadFactory(knownName); final Thread newThread1 = threadFactory.newThread(runnableMock); final Thread newThread2 = threadFactory.newThread(runnableMock); - assertThat(newThread1.getName()).isEqualTo(NamingThreadFactory.SP_PREFIX + knownName); - assertThat(newThread2.getName()).isEqualTo(NamingThreadFactory.SP_PREFIX + knownName); + assertThat(newThread1.getName()).as("Name of the thread").isEqualTo(NamingThreadFactory.SP_PREFIX + knownName); + assertThat(newThread2.getName()).as("Name of the thread").isEqualTo(NamingThreadFactory.SP_PREFIX + knownName); } @Test + @Description("Correct name of threads when created through NamingThreadFactory with formated name.") public void setsFormatedNameForThreads() { final String nameFormat = "knownName-%d"; final String knownName1 = "knownName-0"; @@ -45,11 +53,12 @@ public class NamingThreadFactoryTest { final Thread newThread1 = threadFactory.newThread(runnableMock); final Thread newThread2 = threadFactory.newThread(runnableMock); - assertThat(newThread1.getName()).isEqualTo(NamingThreadFactory.SP_PREFIX + knownName1); - assertThat(newThread2.getName()).isEqualTo(NamingThreadFactory.SP_PREFIX + knownName2); + assertThat(newThread1.getName()).as("Name of the thread").isEqualTo(NamingThreadFactory.SP_PREFIX + knownName1); + assertThat(newThread2.getName()).as("Name of the thread").isEqualTo(NamingThreadFactory.SP_PREFIX + knownName2); } @Test + @Description("Created threads run are running.") public void setsRunnableForThreads() { final String knownName = "knownName"; final ThreadFactory threadFactory = new NamingThreadFactory(knownName); diff --git a/pom.xml b/pom.xml index aa188e76a..d481a56fb 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,61 @@ - 1.2.7.RELEASE + 1.8 + + 1.2.8.RELEASE - - 1.4.186 - 2.5.0 - 5.2.2.Final - Fowler-SR1 + + + 2.5.5 + 5.2.4.Final 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} + 7.4.0.1 + 2.2.0 + 7.0.1 + 1.2.0 + 4.5 - + 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.18.1 + 2.2.4 + 1.1.7 + 1.1 + 1.1.1 + 3.4 + 20141113 + 2.0.0 + - + 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 +142,7 @@ ${jacoco.outputDir}/${jacoco.out.it.file} - 19.0 + @@ -335,7 +354,7 @@ org.slf4j slf4j-api - 1.7.7 + ${slf4j.version} @@ -363,30 +382,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 @@ -395,44 +390,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} @@ -514,13 +509,6 @@ - - - com.fasterxml - classmate - 1.3.0 - org.eclipse.persistence org.eclipse.persistence.jpa @@ -530,7 +518,7 @@ cz.jirutka.rsql rsql-parser - 2.0.0 + ${rsql-parser.version} @@ -541,7 +529,7 @@ com.googlecode.json-simple json-simple - 1.1.1 + ${json-simple.version} junit @@ -549,13 +537,13 @@ - - - xml-apis - xml-apis - 1.4.01 + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} - + org.springframework.boot spring-boot-starter-test @@ -567,22 +555,16 @@ - - com.vaadin - vaadin-testbench - 4.0.3 - test - org.json json - 20141113 + ${json.version} test de.flapdoodle.embed de.flapdoodle.embed.mongo - 1.50.0 + ${embedded-mongo.version} test @@ -606,7 +588,7 @@ com.sun.jersey jersey-client - 1.18.1 + ${jersey-client.version} test @@ -618,13 +600,13 @@ com.jayway.jsonpath json-path-assert - 0.9.1 + ${json-path.version} test org.mariadb.jdbc mariadb-java-client - 1.2.3 + ${mariadb-java-client.version} test