From 30d64c95e4e93cd0be5688d0fa56d2b9ee170d98 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Thu, 1 Sep 2016 17:06:51 +0200 Subject: [PATCH 01/15] Added missing filename encondig Signed-off-by: Kai Zimmermann --- .../eclipse/hawkbit/api/PropertyBasedArtifactUrlHandler.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hawkbit-core/src/main/java/org/eclipse/hawkbit/api/PropertyBasedArtifactUrlHandler.java b/hawkbit-core/src/main/java/org/eclipse/hawkbit/api/PropertyBasedArtifactUrlHandler.java index 53f6492d1..91a271541 100644 --- a/hawkbit-core/src/main/java/org/eclipse/hawkbit/api/PropertyBasedArtifactUrlHandler.java +++ b/hawkbit-core/src/main/java/org/eclipse/hawkbit/api/PropertyBasedArtifactUrlHandler.java @@ -19,6 +19,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.stereotype.Component; import com.google.common.base.Strings; +import com.google.common.net.UrlEscapers; /** * Implementation for ArtifactUrlHandler for creating urls to download resource @@ -55,8 +56,8 @@ public class PropertyBasedArtifactUrlHandler implements ArtifactUrlHandler { } String urlPattern = properties.getPattern(); - final Set> entrySet = getReplaceMap(targetId, softwareModuleId, filename, sha1Hash, - protocolString, properties).entrySet(); + final Set> entrySet = getReplaceMap(targetId, softwareModuleId, + UrlEscapers.urlFragmentEscaper().escape(filename), sha1Hash, protocolString, properties).entrySet(); for (final Entry entry : entrySet) { if (entry.getKey().equals(PORT_PLACEHOLDER)) { urlPattern = urlPattern.replace(":{" + entry.getKey() + "}", From 8ce8d8e571586873a041d96e74fca1b8182ba464 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Mon, 5 Sep 2016 09:17:15 +0200 Subject: [PATCH 02/15] Fixed DMF sending out wrong message if action on CANCELING Signed-off-by: Kai Zimmermann --- .../rest/resource/DataConversionHelper.java | 25 ++++++++----------- .../ddi/rest/resource/DdiRootController.java | 2 +- .../amqp/AmqpMessageHandlerService.java | 20 ++++++++++----- .../amqp/AmqpMessageHandlerServiceTest.java | 7 +++--- .../repository/ControllerManagement.java | 12 +++++++++ .../repository/jpa/ActionRepository.java | 23 ++++++++++++----- .../jpa/JpaControllerManagement.java | 6 +++++ pom.xml | 2 +- 8 files changed, 65 insertions(+), 32 deletions(-) diff --git a/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DataConversionHelper.java b/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DataConversionHelper.java index d87de67d0..deda60646 100644 --- a/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DataConversionHelper.java +++ b/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DataConversionHelper.java @@ -14,6 +14,7 @@ import static org.springframework.hateoas.mvc.ControllerLinkBuilder.methodOn; import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; @@ -29,7 +30,6 @@ import org.eclipse.hawkbit.ddi.json.model.DdiControllerBase; import org.eclipse.hawkbit.ddi.json.model.DdiPolling; import org.eclipse.hawkbit.ddi.rest.api.DdiRestConstants; import org.eclipse.hawkbit.repository.model.Action; -import org.eclipse.hawkbit.repository.model.Action.Status; import org.eclipse.hawkbit.repository.model.LocalArtifact; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.tenancy.TenantAware; @@ -108,30 +108,25 @@ public final class DataConversionHelper { return file; } - static DdiControllerBase fromTarget(final Target target, final List actions, + static DdiControllerBase fromTarget(final Target target, final Optional action, final String defaultControllerPollTime, final TenantAware tenantAware) { final DdiControllerBase result = new DdiControllerBase( new DdiConfig(new DdiPolling(defaultControllerPollTime))); - boolean addedUpdate = false; - boolean addedCancel = false; - final long countCancelingActions = actions.stream().filter(a -> a.getStatus() == Status.CANCELING).count(); - for (final Action action : actions) { - if (countCancelingActions <= 0 && !action.isCancelingOrCanceled() && !addedUpdate) { + if (action.isPresent()) { + if (action.get().isCancelingOrCanceled()) { + result.add(linkTo(methodOn(DdiRootController.class, tenantAware.getCurrentTenant()) + .getControllerCancelAction(target.getControllerId(), action.get().getId())) + .withRel(DdiRestConstants.CANCEL_ACTION)); + } else { // we need to add the hashcode here of the actionWithStatus // because the action might // have changed from 'soft' to 'forced' type and we need to // change the payload of the // response because of eTags. result.add(linkTo(methodOn(DdiRootController.class, tenantAware.getCurrentTenant()) - .getControllerBasedeploymentAction(target.getControllerId(), action.getId(), - calculateEtag(action))).withRel(DdiRestConstants.DEPLOYMENT_BASE_ACTION)); - addedUpdate = true; - } else if (action.isCancelingOrCanceled() && !addedCancel) { - result.add(linkTo(methodOn(DdiRootController.class, tenantAware.getCurrentTenant()) - .getControllerCancelAction(target.getControllerId(), action.getId())) - .withRel(DdiRestConstants.CANCEL_ACTION)); - addedCancel = true; + .getControllerBasedeploymentAction(target.getControllerId(), action.get().getId(), + calculateEtag(action.get()))).withRel(DdiRestConstants.DEPLOYMENT_BASE_ACTION)); } } diff --git a/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java b/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java index 9dd65d5fc..f1ce7e812 100644 --- a/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java +++ b/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java @@ -130,7 +130,7 @@ public class DdiRootController implements DdiRootControllerRestApi { } return new ResponseEntity<>( - DataConversionHelper.fromTarget(target, controllerManagement.findActionByTargetAndActive(target), + DataConversionHelper.fromTarget(target, controllerManagement.findOldestActionByTargetAndActive(target), controllerManagement.getPollingTime(), tenantAware), HttpStatus.OK); } diff --git a/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java b/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java index dd152bd5a..a8723a63a 100644 --- a/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java +++ b/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java @@ -13,6 +13,7 @@ import java.net.URISyntaxException; import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.List; +import java.util.Optional; import java.util.UUID; import org.apache.commons.lang3.ArrayUtils; @@ -32,6 +33,7 @@ import org.eclipse.hawkbit.dmf.json.model.ArtifactHash; import org.eclipse.hawkbit.dmf.json.model.DownloadResponse; import org.eclipse.hawkbit.dmf.json.model.TenantSecurityToken; import org.eclipse.hawkbit.dmf.json.model.TenantSecurityToken.FileResource; +import org.eclipse.hawkbit.eventbus.event.CancelTargetAssignmentEvent; import org.eclipse.hawkbit.im.authentication.SpPermission.SpringEvalExpressions; import org.eclipse.hawkbit.im.authentication.TenantAwareAuthenticationDetails; import org.eclipse.hawkbit.repository.ArtifactManagement; @@ -344,18 +346,24 @@ public class AmqpMessageHandlerService extends BaseAmqpService { } private void lookIfUpdateAvailable(final Target target) { - final List actions = controllerManagement.findActionByTargetAndActive(target); - if (actions.isEmpty()) { + final Optional action = controllerManagement.findOldestActionByTargetAndActive(target); + if (!action.isPresent()) { return; } - // action are ordered by ASC - final Action action = actions.get(0); - final DistributionSet distributionSet = action.getDistributionSet(); + + if (action.get().isCancelingOrCanceled()) { + amqpMessageDispatcherService.targetCancelAssignmentToDistributionSet( + new CancelTargetAssignmentEvent(target.getOptLockRevision(), target.getTenant(), + target.getControllerId(), action.get().getId(), target.getTargetInfo().getAddress())); + return; + } + + final DistributionSet distributionSet = action.get().getDistributionSet(); final List softwareModuleList = controllerManagement .findSoftwareModulesByDistributionSet(distributionSet); final String targetSecurityToken = systemSecurityContext.runAsSystem(() -> target.getSecurityToken()); amqpMessageDispatcherService.targetAssignDistributionSet(new TargetAssignDistributionSetEvent( - target.getOptLockRevision(), target.getTenant(), target.getControllerId(), action.getId(), + target.getOptLockRevision(), target.getTenant(), target.getControllerId(), action.get().getId(), softwareModuleList, target.getTargetInfo().getAddress(), targetSecurityToken)); } 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 9ed314ebc..5937d8126 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 @@ -23,6 +23,7 @@ import java.net.URI; import java.net.URL; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.eclipse.hawkbit.api.HostnameResolver; import org.eclipse.hawkbit.artifact.repository.ArtifactRepository; @@ -155,6 +156,7 @@ public class AmqpMessageHandlerServiceTest { final ArgumentCaptor uriCaptor = ArgumentCaptor.forClass(URI.class); when(controllerManagementMock.findOrRegisterTargetIfItDoesNotexist(targetIdCaptor.capture(), uriCaptor.capture())).thenReturn(null); + when(controllerManagementMock.findOldestActionByTargetAndActive(Matchers.any())).thenReturn(Optional.empty()); amqpMessageHandlerService.onMessage(message, MessageType.THING_CREATED.name(), TENANT, "vHost"); @@ -362,9 +364,8 @@ public class AmqpMessageHandlerServiceTest { when(controllerManagementMock.addUpdateActionStatus(Matchers.any())).thenReturn(action); when(entityFactoryMock.generateActionStatus()).thenReturn(new JpaActionStatus()); // for the test the same action can be used - final List actionList = new ArrayList<>(); - actionList.add(action); - when(controllerManagementMock.findActionByTargetAndActive(Matchers.any())).thenReturn(actionList); + when(controllerManagementMock.findOldestActionByTargetAndActive(Matchers.any())) + .thenReturn(Optional.of(action)); final List softwareModuleList = createSoftwareModuleList(); when(controllerManagementMock.findSoftwareModulesByDistributionSet(Matchers.any())) diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java index f06621fd4..14780cee6 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java @@ -11,6 +11,7 @@ package org.eclipse.hawkbit.repository; import java.net.URI; import java.util.List; import java.util.Map; +import java.util.Optional; import javax.validation.constraints.NotNull; @@ -113,6 +114,17 @@ public interface ControllerManagement { @PreAuthorize(SpringEvalExpressions.IS_CONTROLLER) List findActionByTargetAndActive(@NotNull Target target); + /** + * Retrieves oldest {@link Action} that is active and assigned to a + * {@link Target}. + * + * @param target + * the target to retrieve the actions from + * @return a list of actions assigned to given target which are active + */ + @PreAuthorize(SpringEvalExpressions.IS_CONTROLLER) + Optional findOldestActionByTargetAndActive(@NotNull Target target); + /** * Get the {@link Action} entity for given actionId with all lazy * attributes. diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/ActionRepository.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/ActionRepository.java index 0eebbced1..8989a5a41 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/ActionRepository.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/ActionRepository.java @@ -10,6 +10,7 @@ package org.eclipse.hawkbit.repository.jpa; import java.util.Collection; import java.util.List; +import java.util.Optional; import org.eclipse.hawkbit.repository.jpa.model.JpaAction; import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSet; @@ -79,21 +80,31 @@ public interface ActionRepository extends BaseEntityRepository, Slice findByTarget(Pageable pageable, JpaTarget target); /** - * Retrieves all {@link Action}s which are active and referring the given - * {@link Target} in a specified order. Loads also the lazy - * {@link Action#getDistributionSet()} field. + * Retrieves all {@link Action}s which are active and referring to the given + * {@link Target} order by ID ascending. * - * @param pageable - * page parameters * @param target * the target to find assigned actions * @param active * the action active flag * @return the found {@link Action}s */ - @EntityGraph(value = "Action.ds", type = EntityGraphType.LOAD) List findByTargetAndActiveOrderByIdAsc(final JpaTarget target, boolean active); + /** + * Retrieves the oldest {@link Action} that is active and referring to the + * given {@link Target}. + * + * @param target + * the target to find assigned actions + * @param active + * the action active flag + * + * @return the found {@link Action} + */ + @EntityGraph(value = "Action.ds", type = EntityGraphType.LOAD) + Optional findFirstByTargetAndActiveOrderByIdAsc(final JpaTarget target, boolean active); + /** * Retrieves latest {@link UpdateAction} for given target and * {@link SoftwareModule}. diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaControllerManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaControllerManagement.java index 34160aa37..7d02b3bd8 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaControllerManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaControllerManagement.java @@ -12,6 +12,7 @@ import java.net.URI; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Optional; import javax.persistence.EntityManager; import javax.persistence.criteria.CriteriaBuilder; @@ -160,6 +161,11 @@ public class JpaControllerManagement implements ControllerManagement { return actionRepository.findByTargetAndActiveOrderByIdAsc((JpaTarget) target, true); } + @Override + public Optional findOldestActionByTargetAndActive(final Target target) { + return actionRepository.findFirstByTargetAndActiveOrderByIdAsc((JpaTarget) target, true); + } + @Override public List findSoftwareModulesByDistributionSet(final DistributionSet distributionSet) { return new ArrayList<>(softwareModuleRepository.findByAssignedTo((JpaDistributionSet) distributionSet)); diff --git a/pom.xml b/pom.xml index 31a175bd6..4684aa7b9 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ 1.5.4 1.0.2 19.0 - 1.4.3 + 1.5.2 1.50.5 2.2.4 1.1.7 From 1a243b3a4e5a91f9f624810c881afbe30ab763c8 Mon Sep 17 00:00:00 2001 From: Michael Hirsch Date: Tue, 6 Sep 2016 14:24:50 +0200 Subject: [PATCH 03/15] code improvements Signed-off-by: Michael Hirsch --- .../repository/jpa/model/JpaAction.java | 4 +- .../jpa/model/JpaDistributionSet.java | 5 +- .../repository/jpa/model/JpaRollout.java | 4 +- .../repository/jpa/model/JpaRolloutGroup.java | 4 +- .../helper/EntityPropertyChangeHelper.java | 13 +- .../management/dstable/DistributionTable.java | 17 +- .../hawkbit/ui/utils/HawkbitCommonUtil.java | 227 ------------------ 7 files changed, 20 insertions(+), 254 deletions(-) diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java index 72ef46ba3..42184c8b0 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java @@ -183,8 +183,8 @@ public class JpaAction extends AbstractJpaTenantAwareBaseEntity implements Actio @Override public void fireUpdateEvent(final DescriptorEvent descriptorEvent) { - EventBusHolder.getInstance().getEventBus().post(new ActionPropertyChangeEvent(this, - EntityPropertyChangeHelper.getChangeSet(Action.class, descriptorEvent))); + EventBusHolder.getInstance().getEventBus() + .post(new ActionPropertyChangeEvent(this, EntityPropertyChangeHelper.getChangeSet(descriptorEvent))); } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSet.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSet.java index 661474668..6f7d05f60 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSet.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSet.java @@ -72,8 +72,6 @@ import org.eclipse.persistence.descriptors.DescriptorEvent; public class JpaDistributionSet extends AbstractJpaNamedVersionedEntity implements DistributionSet, EventAwareEntity { private static final long serialVersionUID = 1L; - private static final String COMPLETE_PROPERTY = "complete"; - private static final String DELETED_PROPERTY = "deleted"; @Column(name = "required_migration_step") @@ -299,8 +297,7 @@ public class JpaDistributionSet extends AbstractJpaNamedVersionedEntity implemen @Override public void fireUpdateEvent(final DescriptorEvent descriptorEvent) { - final Map changeSet = EntityPropertyChangeHelper.getChangeSet(JpaDistributionSet.class, - descriptorEvent); + final Map changeSet = EntityPropertyChangeHelper.getChangeSet(descriptorEvent); EventBusHolder.getInstance().getEventBus().post(new DistributionSetUpdateEvent(this)); if (changeSet.containsKey(DELETED_PROPERTY)) { diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRollout.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRollout.java index 85395e27b..570158240 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRollout.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRollout.java @@ -208,8 +208,8 @@ public class JpaRollout extends AbstractJpaNamedEntity implements Rollout, Event @Override public void fireUpdateEvent(final DescriptorEvent descriptorEvent) { - EventBusHolder.getInstance().getEventBus().post(new RolloutPropertyChangeEvent(this, - EntityPropertyChangeHelper.getChangeSet(Rollout.class, descriptorEvent))); + EventBusHolder.getInstance().getEventBus() + .post(new RolloutPropertyChangeEvent(this, EntityPropertyChangeHelper.getChangeSet(descriptorEvent))); } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRolloutGroup.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRolloutGroup.java index 9bb8644f4..0c43bf2da 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRolloutGroup.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRolloutGroup.java @@ -247,8 +247,8 @@ public class JpaRolloutGroup extends AbstractJpaNamedEntity implements RolloutGr @Override public void fireUpdateEvent(final DescriptorEvent descriptorEvent) { - EventBusHolder.getInstance().getEventBus().post(new RolloutGroupPropertyChangeEvent(this, - EntityPropertyChangeHelper.getChangeSet(RolloutGroup.class, descriptorEvent))); + EventBusHolder.getInstance().getEventBus().post( + new RolloutGroupPropertyChangeEvent(this, EntityPropertyChangeHelper.getChangeSet(descriptorEvent))); } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/helper/EntityPropertyChangeHelper.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/helper/EntityPropertyChangeHelper.java index 9e759640d..3d296c513 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/helper/EntityPropertyChangeHelper.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/helper/EntityPropertyChangeHelper.java @@ -12,7 +12,6 @@ import java.util.Map; import java.util.stream.Collectors; import org.eclipse.hawkbit.repository.eventbus.event.AbstractPropertyChangeEvent.PropertyChange; -import org.eclipse.hawkbit.repository.model.TenantAwareBaseEntity; import org.eclipse.persistence.descriptors.DescriptorEvent; import org.eclipse.persistence.internal.sessions.ObjectChangeSet; import org.eclipse.persistence.queries.UpdateObjectQuery; @@ -21,9 +20,12 @@ import org.eclipse.persistence.sessions.changesets.DirectToFieldChangeRecord; /** * Helper class to get the change set for the property changes in the Entity. * - * @param */ -public class EntityPropertyChangeHelper { +public final class EntityPropertyChangeHelper { + + private EntityPropertyChangeHelper() { + // noop + } /** * To get the map of entity property change set @@ -32,14 +34,11 @@ public class EntityPropertyChangeHelper { * @param event * @return the map of the changeSet */ - public static Map getChangeSet(final Class clazz, - final DescriptorEvent event) { - final T rolloutGroup = clazz.cast(event.getObject()); + public static Map getChangeSet(final DescriptorEvent event) { final ObjectChangeSet changeSet = ((UpdateObjectQuery) event.getQuery()).getObjectChangeSet(); return changeSet.getChanges().stream().filter(record -> record instanceof DirectToFieldChangeRecord) .map(record -> (DirectToFieldChangeRecord) record) .collect(Collectors.toMap(record -> record.getAttribute(), record -> new PropertyChange(record.getOldValue(), record.getNewValue()))); } - } 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 b6b616417..3bf60df52 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 @@ -18,7 +18,6 @@ import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; import org.eclipse.hawkbit.repository.DistributionSetManagement; -import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.eventbus.event.DistributionCreatedEvent; @@ -84,7 +83,7 @@ public class DistributionTable extends AbstractNamedVersionTable= 1 && managementUIState.getDistributionTableFilters().isNoTagSelected()) { refreshFilter(); } @@ -414,7 +410,8 @@ public class DistributionTable extends AbstractNamedVersionTable" + getFormattedName(desc)) - .append(DIV_DESCRIPTION_END).toString(); - } - /** * Get Label for Artifact Details. * @@ -294,31 +238,6 @@ public final class HawkbitCommonUtil { return trimAndNullIfEmpty(orgText) == null ? SPUIDefinitions.SPACE : orgText; } - /** - * Find extra height required to increase by all the components to utilize - * the full height of browser for the responsive UI. - * - * @param newBrowserHeight - * as current browser height. - * @return extra height required to increase. - */ - public static float findRequiredExtraHeight(final float newBrowserHeight) { - return newBrowserHeight > SPUIDefinitions.REQ_MIN_BROWSER_HEIGHT - ? (newBrowserHeight - SPUIDefinitions.REQ_MIN_BROWSER_HEIGHT) : 0; - } - - /** - * Find required extra height of software module. - * - * @param newBrowserHeight - * new browser height - * @return float heigth of software module table - */ - public static float findRequiredSwModuleExtraHeight(final float newBrowserHeight) { - return newBrowserHeight > SPUIDefinitions.REQ_MIN_UPLOAD_BROWSER_HEIGHT - ? (newBrowserHeight - SPUIDefinitions.REQ_MIN_UPLOAD_BROWSER_HEIGHT) : 0; - } - /** * Find required extra width of software module. * @@ -363,94 +282,6 @@ public final class HawkbitCommonUtil { return extraWidth + minPopupHeight; } - /** - * Find extra width required to increase by all the components to utilize - * the full width of browser for the responsive UI. - * - * @param newBrowserWidth - * as current browser width. - * @return extra width required to be increased. - */ - public static float findRequiredExtraWidth(final float newBrowserWidth) { - float width = 0; - if (newBrowserWidth < SPUIDefinitions.REQ_MIN_BROWSER_WIDTH) { - width = SPUIDefinitions.REQ_MIN_BROWSER_WIDTH - newBrowserWidth; - } - return width; - } - - /** - * Find extra width required to increase by all the components to utilize - * the full width of browser for the responsive UI. - * - * @param newBrowserWidth - * as current browser width. - * @return extra width required to be increased. - */ - public static float findExtraWidth(final float newBrowserWidth) { - return newBrowserWidth > SPUIDefinitions.REQ_MIN_BROWSER_WIDTH - ? (newBrowserWidth - SPUIDefinitions.REQ_MIN_BROWSER_WIDTH) : 0; - } - - /** - * Get target table width based on screen width. - * - * @param newBrowserWidth - * new browser width. - * @param minTargetTableLength - * minimum target table width. - * @param minDistTableLength - * minimum distribution table width. - * @return float as table width - */ - public static float getTargetTableWidth(final float newBrowserWidth, final float minTargetTableLength, - final float minDistTableLength) { - float width = 0; - final float requiredExtraWidth = findRequiredExtraWidth(newBrowserWidth); - // adjusting the target table width if distribution table width has - // reached the maximum width - if (requiredExtraWidth + minDistTableLength > SPUIDefinitions.MAX_DIST_TABLE_WIDTH) { - width = requiredExtraWidth + minDistTableLength - SPUIDefinitions.MAX_DIST_TABLE_WIDTH; - } - if (width + minTargetTableLength + requiredExtraWidth > SPUIDefinitions.MAX_TARGET_TABLE_WIDTH) { - return SPUIDefinitions.MAX_TARGET_TABLE_WIDTH; - } - return width + minTargetTableLength + requiredExtraWidth; - } - - /** - * Get distribution table width based on screen width. - * - * @param newBrowserWidth - * new browser width. - * @param minTableWidth - * min distribution table width. - * @return float as distribution table width. - */ - public static float getDistTableWidth(final float newBrowserWidth, final float minTableWidth) { - final float requiredExtraWidth = findExtraWidth(newBrowserWidth); - float expectedDistWidth = minTableWidth; - if (requiredExtraWidth > 0) { - expectedDistWidth = expectedDistWidth + Math.round(requiredExtraWidth * 0.5F); - } - return expectedDistWidth; - } - - /** - * Get software module table width. - * - * @param newBrowserWidth - * @param minTableWidth - * @return - */ - public static float getSoftwareModuleTableWidth(final float newBrowserWidth, final float minTableWidth) { - final float requiredExtraWidth = findRequiredExtraWidth(newBrowserWidth); - if (requiredExtraWidth + minTableWidth > SPUIDefinitions.MAX_UPLOAD_SW_MODULE_TABLE_WIDTH) { - return SPUIDefinitions.MAX_UPLOAD_SW_MODULE_TABLE_WIDTH; - } - return requiredExtraWidth + minTableWidth; - } - /** * Remove the prefix from text. * @@ -514,55 +345,6 @@ public final class HawkbitCommonUtil { return name + ":" + version; } - /** - * Set height of artifact details table and drop area layout. - * - * @param dropLayout - * drop area layout - * @param artifactDetailsLayout - * artifact details table - * @param newHeight - * new browser height - */ - public static void setArtifactDetailsLayoutHeight(final Component artifactDetailsLayout, final float newHeight) { - final float extraBrowserHeight = HawkbitCommonUtil.findRequiredSwModuleExtraHeight(newHeight); - final float tableHeight = SPUIDefinitions.MIN_UPLOAD_ARTIFACT_TABLE_HEIGHT + extraBrowserHeight; - artifactDetailsLayout.setHeight(tableHeight, Unit.PIXELS); - } - - /** - * Set height of artifact details table and drop area layout. - * - * @param artifactDetailsLayout - * artifact details table - * @param newHeight - * new browser height - */ - public static void setManageDistArtifactDetailsLayoutHeight(final Component artifactDetailsLayout, - final float newHeight) { - final float tableHeight = SPUIDefinitions.MIN_TARGET_DIST_TABLE_HEIGHT - + HawkbitCommonUtil.findRequiredExtraHeight(newHeight) + 62; - artifactDetailsLayout.setHeight(tableHeight, Unit.PIXELS); - } - - /** - * Duplicate check - Unique Key. - * - * @param name - * as string - * @param version - * as string - * @param type - * key as string - * @return boolean as flag - */ - public static boolean isDuplicate(final String name, final String version, final String type) { - final SoftwareManagement swMgmtService = SpringContextHelper.getBean(SoftwareManagement.class); - final SoftwareModule swModule = swMgmtService.findSoftwareModuleByNameAndVersion(name, version, - swMgmtService.findSoftwareModuleTypeByName(type)); - return swModule != null; - } - /** * Add new base software module. * @@ -593,15 +375,6 @@ public final class HawkbitCommonUtil { return newSWModule; } - public static void setTargetVisibleColumns(final Table targTable) { - final List targColumnIds = new ArrayList<>(); - final List targColumnLabels = new ArrayList<>(); - targColumnIds.add(SPUIDefinitions.TARGET_TABLE_VISIBILE_COLUMN_NAME); - targColumnLabels.add(SPUIDefinitions.TARGET_TABLE_VISIBILE_COLUMN_NAME); - targTable.setVisibleColumns(targColumnIds.toArray()); - targTable.setColumnHeaders(targColumnLabels.toArray(new String[0])); - } - /** * @param distName * @param distVersion From c076162cc96671a51b0c6b8d9cb54f4d3183df38 Mon Sep 17 00:00:00 2001 From: Michael Hirsch Date: Tue, 6 Sep 2016 14:47:39 +0200 Subject: [PATCH 04/15] removed unused code Signed-off-by: Michael Hirsch --- .../ui/utils/SPUIComponentIdProvider.java | 220 +------ .../hawkbit/ui/utils/SPUIDefinitions.java | 553 +----------------- 2 files changed, 21 insertions(+), 752 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIComponentIdProvider.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIComponentIdProvider.java index 5c0456c7d..f074485d7 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIComponentIdProvider.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIComponentIdProvider.java @@ -41,30 +41,10 @@ public final class SPUIComponentIdProvider { * ID-SW.DEL. */ public static final String SW_DELETE_ALL = "swmodule.delete.all"; - /* - * ID-Targ.Detail.icon. - */ - public static final String TARGET_DETAILS_ICON = "target.details.icon"; /** * ID-Targ.Edit.icon. */ public static final String TARGET_EDIT_ICON = "target.edit.icon"; - /** - * ID-Targ.Edit.Name. - */ - public static final String TARGET_EDIT_NAME = "target.edit.name"; - /** - * ID-Targ.Edit.desc. - */ - public static final String TARGET_EDIT_DESC = "target.edit.desc"; - /** - * ID-Targ.Edit.Save. - */ - public static final String TARGET_EDIT_SAVE = "target.edit.save"; - /** - * PREFIX - JVM. - */ - public static final String TARGET_EDIT_DISCARD = "target.edit.discard"; /** * ID-Targ.PIN. */ @@ -84,10 +64,6 @@ public final class SPUIComponentIdProvider { * ID-Dist. */ public static final String DIST_TABLE_ID = "dist.tableId"; - /** - * ID-Dist.Add. - */ - public static final String DIST_ADD_ID = "dist.add.id"; /** * ID-Dist.Name. */ @@ -104,58 +80,10 @@ public final class SPUIComponentIdProvider { * ID-Dist.desc. */ public static final String DIST_ADD_DESC = "dist.add.desc"; - /** - * ID-Dist.JVM. - */ - public static final String DIST_ADD_MODULE = "dist.add.module."; - /** - * ID-Dist.JVM delete icon. - */ - public static final String DIST_DELETE_MODULE = "dist.delete.module."; /** * /** ID-Dist.DELETE. */ public static final String DIST_DELETE_ALL = "dist.delete.all"; - /** - * ID-Dist.Detail.iocn. - */ - public static final String DIST_DETAILS_ICON = "dist.details.icon"; - /** - * ID-Dist.Edit.icon. - */ - public static final String DIST_EDIT_ICON = "dist.edit.icon"; - /** - * ID-Dist.Edit.name. - */ - public static final String DIST_EDIT_NAME = "dist.edit.name"; - /** - * ID-Dist.Edit.ver. - */ - public static final String DIST_EDIT_VERSION = "dist.edit.version"; - /** - * ID-Dist.Edit.desc. - */ - public static final String DIST_EDIT_DESC = "dist.edit.desc"; - /** - * ID-Dist.Edit.JVM. - */ - public static final String DIST_EDIT_JVM = "dist.edit.jvm"; - /** - * ID-Dist.Edit.AH. - */ - public static final String DIST_EDIT_AGENTHUB = "dist.edit.agenthub"; - /** - * ID-Dist.Edit.os. - */ - public static final String DIST_EDIT_OS = "dist.edit.os"; - /** - * ID-Dist.Edit.save. - */ - public static final String DIST_EDIT_SAVE = "dist.edit.save"; - /** - * ID-Dist.Edit.Discard. - */ - public static final String DIST_EDIT_DISCARD = "dist.edit.discard"; /** * ID-Dist.MigCheck. */ @@ -172,10 +100,6 @@ public final class SPUIComponentIdProvider { * ID - Dist.Add. */ public static final String DIST_ADD_ICON = "dist.add.icon"; - /** - * ID - Dist jvm combo. - */ - public static final String DIST_MODULE_COMBO = "dist.module.combo."; /** * ID for Distribution Tag ComboBox */ @@ -198,25 +122,6 @@ public final class SPUIComponentIdProvider { */ public static final String SOFT_MODULE_VENDOR = "soft.module.vendor"; - /** - * ID - "soft.module.save. - */ - public static final String SOFT_MODULE_SAVE = "soft.module.save"; - - /** - * ID - soft.module.discar. - */ - public static final String SOFT_MODULE_DISCARD = "soft.module.discard"; - - /** DistributionSet Components Ids ends here **/ - /** - * ID- Action popup. - */ - public static final String SAVE_ACTIONS_POPUP = "save.actions.popup"; - /** - * ID- Delete SW Module Popup. - */ - public static final String DELETE_SW_MODULE_ACTIONS_POPUP = "delete.sw.module.actions.popup"; /** * ID - Save Assign. */ @@ -284,11 +189,6 @@ public final class SPUIComponentIdProvider { */ public static final String TARGET_DROP_FILTER_ICON = "target.drop.filter.icon"; - /** - * DROP filter icon id. - */ - public static final String DROP_FILTER_ICON = "drop.filter.icon"; - /** * Pending action button id. */ @@ -354,18 +254,10 @@ public final class SPUIComponentIdProvider { * Upload - process button id. */ public static final String UPLOAD_PROCESS_BUTTON = "upload.process.button"; - /** - * Software module No Action Button id. - */ - public static final String NO_ACTION_BUTTON = "no.action.button"; /** * Upload - discard button id. */ public static final String UPLOAD_DISCARD_BUTTON = "upload.discard.button"; - /** - * Upload - delete button id. - */ - public static final String UPLOAD_SOFTWARE_DELETE_BUTTON = "upload.software.delete.button"; /** * Upload - artifact detail close button. @@ -440,18 +332,10 @@ public final class SPUIComponentIdProvider { */ public static final String ADD_SW_MODULE_DESCRIPTION = "sw.module.description"; - /** - * ID-Targ.Detail.icon. - */ - public static final String SW_TABLE_DETAILS_ICON = "swmodule.details.icon"; /** * ID-Targ.Detail.icon. */ public static final String SW_TABLE_ATRTIFACT_DETAILS_ICON = "swmodule.artifact.details.icon"; - /** - * ID-swModule.Edit.Button. - */ - public static final String SW_TABLE_EDIT_DETAILS = "swmodule.edit.details"; /** * Artifact upload - sw module edit button id. @@ -467,35 +351,16 @@ public final class SPUIComponentIdProvider { */ public static final String UPLOAD_ARTIFACT_DETAILS_TABLE_MAX = "upload.artifactdetails.table.max"; - /** - * Target tag button layout id. - */ - public static final String TARGET_TAG_BUTTON_LAYOUT = "target.tag.button.layout"; - /** * Target tag close button. */ public static final String HIDE_TARGET_TAGS = "hide.target.tags"; - /** - * Distribution Type tag close button. - */ - public static final String HIDE_DIST_TYPE_TAGS = "hide.dist.type.tags"; - /** * Show target tag layout icon. */ public static final String SHOW_TARGET_TAGS = "show.target.tags.icon"; - /** - * Tag name combo box in target details layout. - */ - public static final String TARGET_TAG_COMBO = "target.tag.names"; - - /** - * Target details - assign button. - */ - public static final String TARGET_TAG_ASSIGN = "target.tag.assign"; /** * ID-Target tag table. */ @@ -548,11 +413,6 @@ public final class SPUIComponentIdProvider { */ public static final String SYSTEM_CONFIGURATION_CANCEL = "system.configuration.cancel"; - /** - * Id of the anonymous download checkbox. - */ - public static final String SYSTEM_CONFIGURATION_ANONYMOUS_DOWNLOAD_CHECKBOX = "system.configuration.anonymous.download.checkbox"; - /** * Id of maximize/minimize icon of table - Software module table. */ @@ -690,10 +550,6 @@ public final class SPUIComponentIdProvider { * Bulk target upload - tag field. */ public static final String BULK_UPLOAD_TAG = "bulkupload.tag"; - /** - * Bulk target upload - upload button. - */ - public static final String BULK_UPLOAD_BUTTON = "bulkupload.upload.button"; /** * Bulk target upload - count label. */ @@ -758,11 +614,6 @@ public final class SPUIComponentIdProvider { */ public static final String BULK_UPLOAD_STATUS_BUTTON = "bulk.upload.notification.id"; - /** - * Target Filter Status button id. - */ - public static final String TARGET_FILTER_STATUS_BUTTON = "target.filter.status.button.id"; - /** * Target bulk upload minimize button id. */ @@ -804,11 +655,6 @@ public final class SPUIComponentIdProvider { */ public static final String ROLLOUT_GROUP_TARGETS_LIST_GRID_ID = "rollout.group.targets.grid.id"; - /** - * Rollout delete button id. - */ - public static final String ROLLOUT_DELETE_ICON = "rollout.delete.button.id"; - /** * Rollout text field name id. */ @@ -836,23 +682,6 @@ public final class SPUIComponentIdProvider { * Rollout description field id. */ public static final String ROLLOUT_DESCRIPTION_ID = "rollout.description.id"; - /** - * Rollout create update window - save buttopn id. - */ - public static final String ROLLOUT_CREATE_UPDATE_SAVE_ID = "rollout.create.update.save.id"; - - /** - * Rollout create update - discard button id. - */ - public static final String ROLLOUT_CREATE_UPDATE_DISCARD_ID = "rollout.create.update.discard.id"; - /** - * Rollout name link id. - */ - public static final String ROLLOUT_NAME_LINK_ID = "rollout.name.link"; - /** - * Rollout Group name link id. - */ - public static final String ROLLOUT_GROUP_NAME_LINK_ID = "rollout.group.name.link"; /** * Rollout target filter query combo id. */ @@ -878,10 +707,6 @@ public final class SPUIComponentIdProvider { */ public static final String ROLLOUT_UPDATE_BUTTON_ID = ROLLOUT_ACTION_ID + ".11"; - /** - * Rollout save or start option group id. - */ - public static final String ROLLOUT_SAVESTARTOPTION_ID = "rollout.savestartoption.id"; /** * Rollout status label id. */ @@ -906,18 +731,10 @@ public final class SPUIComponentIdProvider { * Rollout target view- close button id. */ public static final String ROLLOUT_TARGET_VIEW_CLOSE_BUTTON_ID = "rollout.group.target.close.id"; - /** - * Rollout status progress bar id. - */ - public static final String ROLLOUT_PROGRESS_BAR = "rollout.status.progress.bar.id"; /** * Rollout group header caption. */ public static final String ROLLOUT_GROUP_HEADER_CAPTION = "rollout.group.header.caption"; - /** - * Rollout group target header caption. - */ - public static final String ROLLOUT_GROUP_TARGET_HEADER_CAPTION = "rollout.group.header.target.caption"; /** * Rollout group close id. */ @@ -962,31 +779,21 @@ public final class SPUIComponentIdProvider { */ public static final String UPLOAD_STATUS_POPUP_ID = "artifact.upload.status.popup.id"; - /** + /** * Software module table - Manage metadata id. */ public static final String SW_TABLE_MANAGE_METADATA_ID = "swtable.manage.metadata.id"; - - + /** * Metadata key id. */ public static final String METADATA_KEY_FIELD_ID = "metadata.key.id"; - + /** * Metadata value id. */ public static final String METADATA_VALUE_ID = "metadata.value.id"; - /** - * Metadata save id. - */ - public static final String METADTA_SAVE_ICON_ID = "metadata.save.icon.id"; - - /** - * Metadata discard id. - */ - public static final String METADTA_DISCARD_ICON_ID = "metadata.discard.icon.id"; - + /** * Metadata add icon id. */ @@ -995,41 +802,36 @@ public final class SPUIComponentIdProvider { * Metadata table id. */ public static final String METDATA_TABLE_ID = "metadata.table.id"; - + /** * Distribution set table - Manage metadata id. */ public static final String DS_TABLE_MANAGE_METADATA_ID = "dstable.manage.metadata.id"; - - /** + + /** * DistributionSet - Metadata button id. */ public static final String DS_METADATA_DETAIL_LINK = "distributionset.metadata.detail.link"; - + /** * Metadata popup id. */ public static final String METADATA_POPUP_ID = "metadata.popup.id"; - + /** * DistributionSet table details tab id in Distributions . */ public static final String DISTRIBUTIONSET_DETAILS_TABSHEET_ID = "distributionset.details.tabsheet"; - + /** * Software module table details tab id in Distributions . */ public static final String DIST_SW_MODULE_DETAILS_TABSHEET_ID = "dist.sw.module.details.tabsheet"; - + /** * Software Module - Metadata button id. */ public static final String SW_METADATA_DETAIL_LINK = "softwaremodule.metadata.detail.link"; - - /** - * Table multiselect for selecting DistType - */ - public static final String SELECT_DIST_TYPE = "select-dist-type"; /** * /* Private Constructor. diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIDefinitions.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIDefinitions.java index f2e26564f..aae1da513 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIDefinitions.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIDefinitions.java @@ -16,11 +16,6 @@ import org.springframework.data.domain.Sort.Direction; /** * Class to provide the unchanged constants. - * - * - * - * - * */ public final class SPUIDefinitions { /** @@ -46,11 +41,6 @@ public final class SPUIDefinitions { */ public static final int DIST_TYPE_SIZE = 8; - /** - * Target and Distribution set table size. - */ - public static final int TABLE_MIN_LENGTH = 3; - /** * Action history active column. */ @@ -133,154 +123,10 @@ public final class SPUIDefinitions { */ public static final String SCHEDULED = "scheduled"; - /** - * Action history lazy fetch page length. - */ - public static final int PAGE_LEN_ACTION_HISTORY = 5; - - /** - * Action history lazy fetch page length in popup. - */ - public static final int PAGE_LEN_ACTION_HISTORY_IN_POPUP = 4; - - /** - * Action history messages page length in the popup. - */ - public static final int PAGE_LEN_MSGS_IN_ACTION_HISTORY = 3; - - /** - * Target filter box style. - */ - public static final String TARGET_FILTER_TEXTFIELD_STYLE = "target-filter-box target-filter-box-hide"; - - /** - * Distribution filter box style. - */ - public static final String DISTRIBUTION_FILTER_TEXTFIELD_STYLE = "dist-filter-box dist-filter-box-hide"; - public static final String TARGET_TAG_BUTTON = "Target Tag"; public static final String DISTRIBUTION_TAG_BUTTON = "Distribution Tag"; - public static final String SOFTWARE_MODULE_TYPE_BUTTON = "SoftwareModule Type"; - - public static final String DISTRIBUTION_SET_TYPE_BUTTON = "DistributionSet Type"; - /** - * New jvm name field id. - */ - public static final String NEW_JVM_NAME = "NewJvmName"; - /** - * New jvm version field id. - */ - public static final String NEW_JVM_VERSION = "NewJvmVersion"; - /** - * New JVM vendor name field id. - */ - public static final String NEW_JVM_VENDOR_NAME = "NewVendorName"; - /** - * save new jvm icon id. - */ - public static final String SAVE_NEW_JVM = "SaveNewJvm"; - /** - * dicard new jvm icon id. - */ - public static final String DISCARD_NEW_JVM = "DiscardNewJvm"; - /** - * New agent hub name field id. - */ - public static final String NEW_AGENT_HUB_NAME = "NewAgentHubName"; - /** - * New agent hub version field id. - */ - public static final String NEW_AGENT_HUB_VERSION = "NewAgentHubVersion"; - /** - * New agent hub vendor field id. - */ - public static final String NEW_AGENT_HUB_VENDOR = "NewAgentHubVendorName"; - /** - * Save agent hub icon id. - */ - public static final String NEW_AGENT_HUB_SAVE = "SaveNewAgentHub"; - /** - * Discard agent hub icon id. - */ - public static final String NEW_AGENT_HUB_DISCARD = "DiscardNewAgentHub"; - /** - * New OS name field id. - */ - public static final String NEW_OS_NAME = "NewOSName"; - /** - * New OS version field id. - */ - public static final String NEW_OS_VERSION = "NewOSVersion"; - /** - * New OS vendor field id. - */ - public static final String NEW_OS_VENDOR = "NewOSVendorName"; - /** - * New OS save icon id. - */ - public static final String NEW_OS_SAVE = "SaveNewOS"; - /** - * New OS discard icon id. - */ - public static final String NEW_OS_DISCARD = "DiscardNewOS"; - /** - * New distribution set name field id. - */ - public static final String NEW_DIST_NAME = "NewDistributionName"; - /** - * New distribution set version field id. - */ - public static final String NEW_DIST_VERSION = "NewDistributionVersion"; - /** - * New distribution set description field id. - */ - public static final String NEW_DIST_DESCRIPTION = "NewDistributionDescription"; - /** - * New distribution set JVM combo-box id. - */ - public static final String NEW_DIST_JVM_COMBO = "NewDistributionJvmCombo"; - /** - * New distribution set Agent hub combo-box id. - */ - public static final String NEW_DIST_AGENT_HUB_COMBO = "NewDistributionAgentHubCombo"; - /** - * New distribution set OS combo-box id. - */ - public static final String NEW_DIST_OS_COMBO = "NewDistributionOSCombo"; - /** - * New distribution set save icon id. - */ - public static final String NEW_DIST_SAVE = "NewDistributionSave"; - /** - * New distribution set discard icon id. - */ - public static final String NEW_DIST_DISCARD = "NewDistributionSave"; - /** - * New Target controller id field id. - */ - public static final String NEW_TARGET_CONTOLLERID = "NewTargetControlerId"; - /** - * New Target name field id. - */ - public static final String NEW_TARGET_NAME = "NewTargetName"; - /** - * New Target description field id. - */ - public static final String NEW_TARGET_DESC = "NewTargetDescription"; - /** - * New Target save icon id. - */ - public static final String NEW_TARGET_SAVE = "target.add.save"; - /** - * New Target add icon id. - */ - public static final String NEW_TARGET_ADD_ICON = "NewTargetAddIcon"; - /** - * New distribution set add icon id. - */ - public static final String NEW_DIST_ADD_ICON = "NewDistAddIcon"; /** * New Target tag name field id. */ @@ -310,15 +156,6 @@ public final class SPUIDefinitions { * Assign option group id(Firmware/Software). */ public static final String ASSIGN_OPTION_GROUP_SOFTWARE_MODULE_TYPE_ID = "assign.option.group.soft.module.type.id"; - /** - * SW Module Source Table ID. - */ - public static final String SW_MODULE_TYPE_SOURCE_TABLE_ID = "sw.module.type.source.tab.id"; - - /** - * SW Module target Table ID. - */ - public static final String SW_MODULE_TYPE_TARGET_TABLE_ID = "sw.module.type.target.tab.id"; /** * New Software Module desc field id. @@ -346,18 +183,6 @@ public final class SPUIDefinitions { * New Target tag desc field id. */ public static final String NEW_TARGET_TAG_DESC = "target.tag.add.desc"; - /** - * New Target tag color lable id. - */ - public static final String NEW_TARGET_TAG_COLOR = "target.tag.add.color"; - /** - * New Target tag add icon id. - */ - public static final String ADD_TARGET_TAG = "target.tag.add"; - /** - * New distribution set tag add icon id. - */ - public static final String ADD_DISTRIBUTION_TAG = "distribution.tag.add"; /** * New distribution Type set tag add icon id. */ @@ -366,23 +191,6 @@ public final class SPUIDefinitions { * New software module set type add icon id. */ public static final String ADD_SOFTWARE_MODULE_TYPE = "softwaremodule.type.add"; - - /** - * New distribution set tag name field id. - */ - public static final String NEW_DISTRIBUTION_TAG_NAME = "distribution.add.tag.name"; - /** - * New distribution set tag color lable id. - */ - public static final String NEW_DISTRIBUTION_TAG_COLOR = "NewDistributionTagColor"; - /** - * New distribution set tag save icon id. - */ - public static final String NEW_DISTRIBUTION_TAG_SAVE = "distribution.tag.save"; - /** - * New distribution set tag discard icon id. - */ - public static final String NEW_DISTRIBUTION_TAG_DISRACD = "NewDistributionTagDiscard"; /** * No data. */ @@ -426,35 +234,11 @@ public final class SPUIDefinitions { * Filter by text key. */ public static final String FILTER_BY_TEXT = "FilterByText"; - /** - * Visible column name of target table. - */ - public static final String TARGET_TABLE_VISIBILE_COLUMN_NAME = "nameDescLabel"; - /** - * Visible column name of distribution table. - */ - public static final String DISTRIBUTION_TABLE_VISIBILE_COLUMN_NAME = "nameDescLabel"; - - /** - * Text area style. - */ - public static final String TEXT_AREA_STYLE = "text-style text-area-style"; - - /** - * Combo box style. - */ - public static final String COMBO_BOX_STYLE = "combo-box-style text-field-spacing"; - /** * Text field style. */ public static final String TEXT_STYLE = "text-style"; - /** - * Message to be displayed when no data available for chosen filter. - */ - public static final String NO_DATA_MSG = "No data available for chosen filter"; - /** * Style to highlight row in orange color. */ @@ -465,16 +249,6 @@ public final class SPUIDefinitions { */ public static final String HIGHTLIGHT_GREEN = "highlight-green"; - /** - * Action window show style. - */ - public static final String ACTION_WINDOW_SHOW_STYLE = "action-window" + " " + "action-window-show"; - - /** - * Action window hide style. - */ - public static final String ACTION_WINDOW_HIDE_STYLE = "action-window" + " " + "action-window-hide"; - /** * The Combo box specific style for Distribution set. */ @@ -488,33 +262,11 @@ public final class SPUIDefinitions { /** * Target and distribution column width in save popup window. */ - public static final float TARGET_DISTRIBUTION_COLUMN_WIDTH = 2.8f; + public static final float TARGET_DISTRIBUTION_COLUMN_WIDTH = 2.8F; /** * Discard column width in save window popup. */ - public static final float DISCARD_COLUMN_WIDTH = 1.2f; - /** - * message hint text layout. - */ - public static final String MESSAGE_HINT_TEXT_LAYOUT = "message-hint-text-layout"; - - /** - * Message hint bottom layout. - */ - public static final String MESSAGE_HINT_BOTTOM_LAYOUT = "message-hint-bottom-layout"; - - /** - * The Target Tag edit icon id. - */ - public static final String EDIT_TARGET_TAG = "target.tag.edit"; - /** - * The Dist Tag edit icon id. - */ - public static final String EDIT_DISTRIBUTION_TAG = "dist.tag.edit"; - /** - * Target Tag color picker style. - */ - public static final String TARGET_COLOR_PICKER_STYLE = "target-color-picker-style"; + public static final float DISCARD_COLUMN_WIDTH = 1.2F; /** * Target tag name. */ @@ -551,11 +303,6 @@ public final class SPUIDefinitions { */ public static final String TYPE_KEY = "type-key"; - /** - * Type combo style. - */ - public static final String TYPE_COMBO_STYLE = "type-combo-specific-style"; - /** * Tag combo style. */ @@ -565,53 +312,6 @@ public final class SPUIDefinitions { */ public static final String COLOR_LABEL_STYLE = "color-label-style"; - /** - * Text area of tag description style. - */ - public static final String TARGET_TAG_TEXT_AREA_STYLE = "target-tag-desc"; - - /** - * Distribution table. - */ - public static final String DISTRIBUTION_TABLE = "dist-table"; - - /** - * Target tag. - */ - public static final String TARGET_TAG = "target-tag"; - /** - * Distribution tag. - */ - public static final String DIST_TAG = "dist-tag"; - - /** - * Minimum height for the target tags layout. In case browser height is less - * than this height, the vertical scroll bars get displayed. Used for - * Responsive UI. - */ - public static final int MIN_TARGET_TAGS_HEIGHT = 39; - - /** - * Minimum height for the distribution type tags layout. In case browser - * height is less than this height, the vertical scroll bars get displayed. - * Used for Responsive UI. - */ - public static final int MIN_DISTRIBUTION_TYPE_TAGS_HEIGHT = 39; - - /** - * Minimum height for the distribution tags layout. In case browser height - * is less than this height, the vertical scroll bars get displayed. Used - * for Responsive UI. - */ - public static final int MIN_DIST_TAGS_HEIGHT = 109; - - /** - * Minimum height required for target or distribution table with minimum - * records. This is calculated as ( no. of min rows * height of each row ). - * Used for Responsive UI. - */ - public static final int MIN_TARGET_DIST_TABLE_HEIGHT = TABLE_MIN_LENGTH * 37 - 42; - /** * Minimum width required to show tags for both target and distribution * table without horizontal scroll. In case browser width is less than this @@ -620,59 +320,6 @@ public final class SPUIDefinitions { */ public static final int REQ_MIN_BROWSER_WIDTH = 1200; - public static final int REQ_MIN_BROWSER_WIDTH_UPLOAD = 1200; - - public static final int REQ_MIN_BROWSER_WIDTH_DIST = 1300; - - /** - * Target table maximum width. - */ - public static final int MAX_TARGET_TABLE_WIDTH = 700; - - /** - * Distribution table maximum width. - */ - public static final int MAX_DIST_TABLE_WIDTH = 425; - - /** - * Details layout- initial margin left value. - */ - public static final int DETAILS_MARGIN_LEFT = 275; - - /** - * Distributions table details layout- initial margin left value. - */ - public static final int DIST_TABALE_DETAILS_MARGIN_LEFT = 288; - /** - * Minimum height required to show the application without need of vertical - * scroll. In case browser height is more than this height, the vertical - * scroll bars get displayed. Used for Responsive UI. - */ - public static final int REQ_MIN_BROWSER_HEIGHT = 350; - - public static final int MIN_TABLE_WIDTH = 300; - - /** - * Minimum width required to display action history. - */ - public static final int ACTION_HISTORY_MIN_REQ_WIDTH = 500; - - /** - * Minimum height required to display action history (5 rows minimum). - */ - public static final int ACTION_HISTORY_MIN_REQ_HEIGHT = 130; - - /** - * Position of the action history from top. - */ - public static final int ACTION_HISTORY_POSITION_Y = 160; - - /** - * The total amount of space ( top & bottom ) the action history to - * maintain. - */ - public static final int ACTION_HISTORY_LEFTOVER_HEIGHT = 420; - /** * Target tag button id prefix. */ @@ -682,6 +329,11 @@ public final class SPUIDefinitions { */ public static final String DISTRIBUTION_TAG_ID_PREFIXS = "dist.tag."; + /** + * Space. + */ + public static final String SPACE = " "; + /** * Distribution tag button id prefix. */ @@ -695,19 +347,10 @@ public final class SPUIDefinitions { * DistributionSet Type tag button id prefix. */ public static final String DISTRIBUTION_SET_TYPE_ID_PREFIXS = "dist.set.type."; - /** - * Target/distribution description length. - */ - public static final int NAME_DESCRIPTION_LENGTH = 26; /** * Target last query date format . */ public static final String LAST_QUERY_DATE_FORMAT = "EEE MMM d HH:mm:ss z yyyy"; - - /** - * Space. - */ - public static final String SPACE = " "; /** * Item Id used in drop comparisons. */ @@ -716,22 +359,10 @@ public final class SPUIDefinitions { * Expand action history. */ public static final String EXPAND_ACTION_HISTORY = "expand.action.history"; - /** - * Close action history. - */ - public static final String CLOSE_ACTION_HISTORY = "close.action.history"; /** * Filter by distribution key. */ public static final String ORDER_BY_DISTRIBUTION = "OrderByDistribution"; - /** - * Dist window width. - */ - public static final int DIST_WINDOW_WIDTH = 235; - /** - * Dist window height. - */ - public static final int DIST_WINDOW_HEIGHT = 380; /** Artifact upload related entries - start **/ /** @@ -744,13 +375,6 @@ public final class SPUIDefinitions { */ public static final String BY_SOFTWARE_MODULE_TYPE = "softwareModuleType"; - /** - * Minimum height required to show the application without need of vertical - * scroll. In case browser height is more than this height, the vertical - * scroll bars get displayed. Used for Responsive UI. - */ - public static final int REQ_MIN_UPLOAD_BROWSER_HEIGHT = 380; - /** * Minimum width required to display ui without horizontal scroll. In case * browser width is less than this width, the type layout will get hidden @@ -759,45 +383,13 @@ public final class SPUIDefinitions { */ public static final int REQ_MIN_UPLOAD_BROWSER_WIDTH = 1250; - /** - * Minimum width of software module table. - */ - public static final int MIN_SOFTWARE_MODULE_TABLE_WIDTH = 300; - - /** - * Maximum allowed width of software module table. - */ - public static final int MAX_UPLOAD_SW_MODULE_TABLE_WIDTH = 450; - - /** - * Minimum artifact table height. - */ - public static final int MIN_UPLOAD_ARTIFACT_TABLE_HEIGHT = 168; - - /** - * Maximum artifact table height. - */ - public static final int MAX_UPLOAD_ARTIFACT_TABLE_HEIGHT = 450; - - /** - * Maximum drop layout width. - */ - public static final int MAX_UPLOAD_DROP_LAYOUT_WIDTH = 650; - - /** - * Minimum drop layout width. - */ - public static final int MIN_UPLOAD_DROP_LAYOUT_WIDTH = 450; - public static final int MIN_UPLOAD_CONFIRMATION_POPUP_WIDTH = 1000; - public static final int MAX_UPLOAD_CONFIRMATION_POPUP_WIDTH = 1050; - public static final int MIN_UPLOAD_CONFIRMATION_POPUP_HEIGHT = 310; - public static final int MAX_UPLOAD_CONFIRMATION_POPUP_HEIGHT = 360; + public static final int MAX_UPLOAD_CONFIRMATION_POPUP_WIDTH = 1050; - public static final String SOFTWARE_MODULE_TABLE = "software-module-table"; + public static final int MAX_UPLOAD_CONFIRMATION_POPUP_HEIGHT = 360; /** Artifact upload related entries - end. **/ @@ -805,42 +397,17 @@ public final class SPUIDefinitions { public static final int MIN_DASHBOARD_WIDTH = 1100; - public static final int TAG_LAYOUT_WIDTH = 160; - - public static final int MIN_SWMODULE_TABLE_HEIGHT = 160; - - public static final int MIN_SWMODULE_TABLE_WIDTH = 150; - /* Target Header Filter Box */ - public static final String FILTER_BOX_SHOW = "filter-box-show"; public static final String FILTER_BOX_HIDE = "filter-box-hide"; public static final String FILTER_RESET_ICON = "filter-reset-icon"; /* Action History */ - public static final String CAPTION_ACTION_HISTORY = "caption.action.history"; public static final String DISABLE_DISTRIBUTION = "incomplete-distribution"; - public static final int MIN_SWTABLE_WIDTH = 448; - - /** - * New Target tag save icon id. - */ - public static final String NEW_SW_TYPE_SAVE = "swmodule.type.add.save"; - - /** - * New DistributionSet type save icon id. - */ - public static final String NEW_DIST_SET_TYPE_SAVE = "dist.set.type.add.save"; - - /** - * New distribution set type close icon id. - */ - public static final String NEW_DIST_SET_TYPE_COLSE = "dist.set.type.add.close"; - /** * Filter by type layout width. */ - public static final float FILTER_BY_TYPE_WIDTH = 150.0f; + public static final float FILTER_BY_TYPE_WIDTH = 150.0F; /** * Confirmation jukebox type. @@ -859,22 +426,6 @@ public final class SPUIDefinitions { */ public static final int MAX_TABLE_ENTRIES = 5000; - /** - * New software module set type add icon id. - */ - public static final String CONFIG_FILTER_BUTTON = "config.filter.button"; - - /** - * label style name for assigned sw modules. - */ - - public static final String ASSIGN_SW_MODUE_STYLE = "assignlabelstyle"; - - /** - * Software module add/update window height. - */ - public static final int SW_ADD_UPDATE_WINDOW_HEIGHT = 350; - /** * Distribution Type Twin Table selected table Id. */ @@ -910,46 +461,16 @@ public final class SPUIDefinitions { */ public static final String CUSTOM_FILTER_DELETE = "Delete"; - /** - * CUSTOM_FILTER_INSTALLED_DS. - */ - public static final String CUSTOM_FILTER_INSTALLED_DS = "Installed DS"; - - /** - * CUSTOM_FILTER_ASSIGNED_DS. - */ - public static final String CUSTOM_FILTER_ASSIGNED_DS = "Assigned DS"; - /** * TARGET_FILTER_MANAGEMENT - header caption . */ public static final String TARGET_FILTER_LIST_HEADER_CAPTION = "Custom Filters"; - /** - * CUSTOM_FILTER_STATUS. - */ - public static final String TARGET_FILTER_STATUS = "Status"; - - /** - * CUSTOM_FILTER_INSTALLED_DS. - */ - public static final String TARGET_FILTER_TAGS = "TAGS"; - - /** - * CUSTOM_FILTER_ID_HIDDEN. - */ - public static final String CUSTOM_FILTER_ID_HIDDEN = "id"; - /** * Bulk upload DS combo style. */ public static final String BULK_UPLOD_DS_COMBO_STYLE = "bulk-upload-ds-combo"; - /** - * Bulk Targets upload window. - */ - public static final String BULK_UPLOAD_WINDOW = "bulk-update-window"; - /** * Filter by target filter query. */ @@ -970,60 +491,6 @@ public final class SPUIDefinitions { */ public static final String ROLLOUT_LIST_HEADER_CAPTION = "Rollouts"; - /** - * Rollout status. - */ - public static final String ROLLOUT_STATUS = "rollout-status"; - - /** - * Rollout group list view - header caption . - */ - public static final String ROLLOUT_GROUP_LIST_HEADER_CAPTION = "Rollout Groups"; - - /** - * Rollout delete - column property name. - */ - public static final String DELETE = "delete"; - - /** - * Rollout detail status - column property status. - */ - public static final String DETAIL_STATUS = "detail-status"; - - /** - * Rollout name column property. - */ - public static final String ROLLOUT_NAME = "rollout-name"; - /** - * Rollout group name column property. - */ - public static final String ROLLOUT_GROUP_NAME = "Name"; - - /** - * Rollout group started date column property. - */ - public static final String ROLLOUT_GROUP_STARTED_DATE = "Started date"; - - /** - * Rollout group status column property. - */ - public static final String ROLLOUT_GROUP_STATUS = "Status"; - - /** - * Rollout action column property. - */ - public static final String ROLLOUT_ACTION = "rollout-action"; - - /** - * DistributionSet Metadata tab Id - */ - public static final String DISTRIBUTIONSET_METADATA_TAB_ID = "distSet.metadata.tab.id"; - - /** - * SoftwareModule Metadata tab Id - */ - public static final String SOFTWAREMODULE_METADATA_TAB_ID = "swModule.metadata.tab.id"; - /** * /** Constructor. */ From d229f450638123609bcfab50471db3898daafc77 Mon Sep 17 00:00:00 2001 From: Michael Hirsch Date: Tue, 6 Sep 2016 14:55:48 +0200 Subject: [PATCH 05/15] code improvement Signed-off-by: Michael Hirsch --- .../smtable/SoftwareModuleAddUpdateWindow.java | 4 ++-- .../ui/components/SPUIComponentProvider.java | 17 +++++++---------- .../ui/decorators/SPUIComboBoxDecorator.java | 6 +----- .../layouts/AbstractCreateUpdateTagLayout.java | 2 +- .../ui/layouts/CreateUpdateTypeLayout.java | 4 ++-- .../org/eclipse/hawkbit/ui/login/LoginView.java | 8 ++++---- .../DistributionAddUpdateWindowLayout.java | 2 +- .../TargetBulkUpdateWindowLayout.java | 4 ++-- .../eclipse/hawkbit/ui/menu/DashboardMenu.java | 6 +++--- .../rollout/AddUpdateRolloutWindowLayout.java | 8 ++++---- .../DefaultDistributionSetTypeLayout.java | 2 +- 11 files changed, 28 insertions(+), 35 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleAddUpdateWindow.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleAddUpdateWindow.java index a5e6af609..7dbcdeb89 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleAddUpdateWindow.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleAddUpdateWindow.java @@ -151,8 +151,8 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent { .prompt(i18n.get("textfield.description")).id(SPUIComponentIdProvider.ADD_SW_MODULE_DESCRIPTION) .buildTextComponent(); - typeComboBox = SPUIComponentProvider.getComboBox(i18n.get("upload.swmodule.type"), "", "", null, null, true, - null, i18n.get("upload.swmodule.type")); + typeComboBox = SPUIComponentProvider.getComboBox(i18n.get("upload.swmodule.type"), "", null, null, true, null, + i18n.get("upload.swmodule.type")); typeComboBox.setId(SPUIComponentIdProvider.SW_MODULE_TYPE); typeComboBox.setStyleName(SPUIDefinitions.COMBO_BOX_SPECIFIC_STYLE + " " + ValoTheme.COMBOBOX_TINY); typeComboBox.setNewItemsAllowed(Boolean.FALSE); 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 a32346141..7ed065ceb 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 @@ -57,8 +57,6 @@ public final class SPUIComponentProvider { * * @param caption * caption of the combo box - * @param height - * combo box height * @param width * combo box width * @param style @@ -73,9 +71,9 @@ public final class SPUIComponentProvider { * input prompt * @return ComboBox */ - public static ComboBox getComboBox(final String caption, final String height, final String width, - final String style, final String styleName, final boolean required, final String data, final String promt) { - return SPUIComboBoxDecorator.decorate(caption, height, width, style, styleName, required, data, promt); + public static ComboBox getComboBox(final String caption, final String width, final String style, + final String styleName, final boolean required, final String data, final String promt) { + return SPUIComboBoxDecorator.decorate(caption, width, style, styleName, required, data, promt); } /** @@ -290,20 +288,19 @@ public final class SPUIComponentProvider { * specify how the link should be open (f. e. new windows = * _blank) * @param style - * chosen style of the link - * @param setStyle - * set true if the style should be used + * chosen style of the link. Might be {@code null} if no style + * should be used * @return a link UI component */ public static Link getLink(final String id, final String name, final String resource, final FontAwesome icon, - final String targetOpen, final String style, final boolean setStyle) { + final String targetOpen, final String style) { final Link link = new Link(name, new ExternalResource(resource)); link.setId(id); link.setIcon(icon); link.setTargetName(targetOpen); - if (setStyle) { + if (style != null) { link.setStyleName(style); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIComboBoxDecorator.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIComboBoxDecorator.java index 291173044..89d23709c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIComboBoxDecorator.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIComboBoxDecorator.java @@ -49,7 +49,7 @@ public final class SPUIComboBoxDecorator { * as promt * @return ComboBox as comp */ - public static ComboBox decorate(final String caption, final String height, final String width, final String style, + public static ComboBox decorate(final String caption, final String width, final String style, final String styleName, final boolean required, final String data, final String prompt) { final ComboBox spUICombo = new ComboBox(); // Default settings @@ -67,10 +67,6 @@ public final class SPUIComboBoxDecorator { if (StringUtils.isNotEmpty(styleName)) { spUICombo.addStyleName(styleName); } - // Add height - if (StringUtils.isNotEmpty(height)) { - spUICombo.setHeight(height); - } // AddWidth if (StringUtils.isNotEmpty(width)) { spUICombo.setWidth(width); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java index 0c4aa3111..755d378ea 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java @@ -189,7 +189,7 @@ public abstract class AbstractCreateUpdateTagLayout exten tagDesc.setNullRepresentation(""); - tagNameComboBox = SPUIComponentProvider.getComboBox(null, "", "", null, null, false, "", + tagNameComboBox = SPUIComponentProvider.getComboBox(null, "", null, null, false, "", i18n.get("label.combobox.tag")); tagNameComboBox.addStyleName(SPUIDefinitions.FILTER_TYPE_COMBO_STYLE); tagNameComboBox.setImmediate(true); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java index 51003fb58..b464a87c0 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java @@ -54,8 +54,8 @@ public abstract class CreateUpdateTypeLayout extends Abst colorLabel = new LabelBuilder().name(i18n.get("label.choose.type.color")).buildLabel(); colorLabel.addStyleName(SPUIDefinitions.COLOR_LABEL_STYLE); - tagNameComboBox = SPUIComponentProvider.getComboBox(i18n.get("label.combobox.type"), "", "", null, null, false, - "", i18n.get("label.combobox.type")); + tagNameComboBox = SPUIComponentProvider.getComboBox(i18n.get("label.combobox.type"), "", null, null, false, "", + i18n.get("label.combobox.type")); tagNameComboBox.setId(SPUIDefinitions.NEW_DISTRIBUTION_SET_TYPE_NAME_COMBO); tagNameComboBox.addStyleName(SPUIDefinitions.FILTER_TYPE_COMBO_STYLE); tagNameComboBox.setImmediate(true); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/login/LoginView.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/login/LoginView.java index 48805e1d1..6e5ea9238 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/login/LoginView.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/login/LoginView.java @@ -266,14 +266,14 @@ public class LoginView extends VerticalLayout implements View { if (!uiProperties.getLinks().getDocumentation().getRoot().isEmpty()) { final Link docuLink = SPUIComponentProvider.getLink(SPUIComponentIdProvider.LINK_DOCUMENTATION, i18n.get("link.documentation.name"), uiProperties.getLinks().getDocumentation().getRoot(), - FontAwesome.QUESTION_CIRCLE, "_blank", linkStyle, true); + FontAwesome.QUESTION_CIRCLE, "_blank", linkStyle); links.addComponent(docuLink); docuLink.addStyleName(ValoTheme.LINK_SMALL); } if (!uiProperties.getDemo().getUser().isEmpty()) { final Link demoLink = SPUIComponentProvider.getLink(SPUIComponentIdProvider.LINK_DEMO, - i18n.get("link.demo.name"), "?demo", FontAwesome.DESKTOP, "_top", linkStyle, true); + i18n.get("link.demo.name"), "?demo", FontAwesome.DESKTOP, "_top", linkStyle); links.addComponent(demoLink); demoLink.addStyleName(ValoTheme.LINK_SMALL); } @@ -281,7 +281,7 @@ public class LoginView extends VerticalLayout implements View { if (!uiProperties.getLinks().getRequestAccount().isEmpty()) { final Link requestAccountLink = SPUIComponentProvider.getLink(SPUIComponentIdProvider.LINK_REQUESTACCOUNT, i18n.get("link.requestaccount.name"), uiProperties.getLinks().getRequestAccount(), - FontAwesome.SHOPPING_CART, "", linkStyle, true); + FontAwesome.SHOPPING_CART, "", linkStyle); links.addComponent(requestAccountLink); requestAccountLink.addStyleName(ValoTheme.LINK_SMALL); } @@ -289,7 +289,7 @@ public class LoginView extends VerticalLayout implements View { if (!uiProperties.getLinks().getUserManagement().isEmpty()) { final Link userManagementLink = SPUIComponentProvider.getLink(SPUIComponentIdProvider.LINK_USERMANAGEMENT, i18n.get("link.usermanagement.name"), uiProperties.getLinks().getUserManagement(), - FontAwesome.USERS, "_blank", linkStyle, true); + FontAwesome.USERS, "_blank", linkStyle); links.addComponent(userManagementLink); userManagementLink.addStyleName(ValoTheme.LINK_SMALL); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java index 1b96181b5..e0bf9b1df 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java @@ -147,7 +147,7 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { distNameTextField = createTextField("textfield.name", SPUIComponentIdProvider.DIST_ADD_NAME); distVersionTextField = createTextField("textfield.version", SPUIComponentIdProvider.DIST_ADD_VERSION); - distsetTypeNameComboBox = SPUIComponentProvider.getComboBox(i18n.get("label.combobox.type"), "", "", null, "", + distsetTypeNameComboBox = SPUIComponentProvider.getComboBox(i18n.get("label.combobox.type"), "", null, "", false, "", i18n.get("label.combobox.type")); distsetTypeNameComboBox.setImmediate(true); distsetTypeNameComboBox.setNullSelectionAllowed(false); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java index 4c225492f..0e77e9037 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java @@ -204,8 +204,8 @@ public class TargetBulkUpdateWindowLayout extends CustomComponent { private ComboBox getDsComboField() { final Container container = createContainer(); - final ComboBox dsComboBox = SPUIComponentProvider.getComboBox(i18n.get("bulkupload.ds.name"), "", "", null, - null, false, "", i18n.get("bulkupload.ds.name")); + final ComboBox dsComboBox = SPUIComponentProvider.getComboBox(i18n.get("bulkupload.ds.name"), "", null, null, + false, "", i18n.get("bulkupload.ds.name")); dsComboBox.setSizeUndefined(); dsComboBox.addStyleName(SPUIDefinitions.BULK_UPLOD_DS_COMBO_STYLE); dsComboBox.setImmediate(true); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/menu/DashboardMenu.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/menu/DashboardMenu.java index 4016d5fd7..0e9df74df 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/menu/DashboardMenu.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/menu/DashboardMenu.java @@ -148,7 +148,7 @@ public final class DashboardMenu extends CustomComponent { if (!uiProperties.getLinks().getDocumentation().getRoot().isEmpty()) { final Link docuLink = SPUIComponentProvider.getLink(SPUIComponentIdProvider.LINK_DOCUMENTATION, i18n.get("link.documentation.name"), uiProperties.getLinks().getDocumentation().getRoot(), - FontAwesome.QUESTION_CIRCLE, "_blank", linkStyle, true); + FontAwesome.QUESTION_CIRCLE, "_blank", linkStyle); docuLink.setDescription(i18n.get("link.documentation.name")); docuLink.setSizeFull(); links.addComponent(docuLink); @@ -158,7 +158,7 @@ public final class DashboardMenu extends CustomComponent { if (!uiProperties.getLinks().getUserManagement().isEmpty()) { final Link userManagementLink = SPUIComponentProvider.getLink(SPUIComponentIdProvider.LINK_USERMANAGEMENT, i18n.get("link.usermanagement.name"), uiProperties.getLinks().getUserManagement(), - FontAwesome.USERS, "_blank", linkStyle, true); + FontAwesome.USERS, "_blank", linkStyle); userManagementLink.setDescription(i18n.get("link.usermanagement.name")); links.addComponent(userManagementLink); userManagementLink.setSizeFull(); @@ -168,7 +168,7 @@ public final class DashboardMenu extends CustomComponent { if (!uiProperties.getLinks().getSupport().isEmpty()) { final Link supportLink = SPUIComponentProvider.getLink(SPUIComponentIdProvider.LINK_SUPPORT, i18n.get("link.support.name"), uiProperties.getLinks().getSupport(), FontAwesome.ENVELOPE_O, "", - linkStyle, true); + linkStyle); supportLink.setDescription(i18n.get("link.support.name")); supportLink.setSizeFull(); links.addComponent(supportLink); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java index 86eeec403..e90e70ea6 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java @@ -375,8 +375,8 @@ public class AddUpdateRolloutWindowLayout extends GridLayout { } private ComboBox createTargetFilterQueryCombo() { - final ComboBox targetFilter = SPUIComponentProvider.getComboBox(null, "", "", null, ValoTheme.COMBOBOX_SMALL, - false, "", i18n.get("prompt.target.filter")); + final ComboBox targetFilter = SPUIComponentProvider.getComboBox(null, "", null, ValoTheme.COMBOBOX_SMALL, false, + "", i18n.get("prompt.target.filter")); targetFilter.setImmediate(true); targetFilter.setPageLength(7); targetFilter.setItemCaptionPropertyId(SPUILabelDefinitions.VAR_NAME); @@ -571,8 +571,8 @@ public class AddUpdateRolloutWindowLayout extends GridLayout { } private ComboBox createDistributionSetCombo() { - final ComboBox dsSet = SPUIComponentProvider.getComboBox(null, "", "", null, ValoTheme.COMBOBOX_SMALL, false, - "", i18n.get("prompt.distribution.set")); + final ComboBox dsSet = SPUIComponentProvider.getComboBox(null, "", null, ValoTheme.COMBOBOX_SMALL, false, "", + i18n.get("prompt.distribution.set")); dsSet.setImmediate(true); dsSet.setPageLength(7); dsSet.setItemCaptionPropertyId(SPUILabelDefinitions.VAR_NAME); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/tenantconfiguration/DefaultDistributionSetTypeLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/tenantconfiguration/DefaultDistributionSetTypeLayout.java index a664f9831..c7bdc83a8 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/tenantconfiguration/DefaultDistributionSetTypeLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/tenantconfiguration/DefaultDistributionSetTypeLayout.java @@ -91,7 +91,7 @@ public class DefaultDistributionSetTypeLayout extends BaseConfigurationView impl final Iterable distributionSetTypeCollection = distributionSetManagement .findDistributionSetTypesAll(pageReq); - combobox = SPUIComponentProvider.getComboBox(null, "", "330", null, null, false, "", "label.combobox.tag"); + combobox = SPUIComponentProvider.getComboBox(null, "330", null, null, false, "", "label.combobox.tag"); combobox.setId(SPUIComponentIdProvider.SYSTEM_CONFIGURATION_DEFAULTDIS_COMBOBOX); combobox.setNullSelectionAllowed(false); for (final DistributionSetType distributionSetType : distributionSetTypeCollection) { From 14458a1ece0d34bc9525850833af935c331d0fcc Mon Sep 17 00:00:00 2001 From: Michael Hirsch Date: Tue, 6 Sep 2016 15:42:33 +0200 Subject: [PATCH 06/15] code improvements Signed-off-by: Michael Hirsch --- .../hawkbit/simulator/ui/GenerateDialog.java | 42 +++---------------- 1 file changed, 5 insertions(+), 37 deletions(-) diff --git a/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/ui/GenerateDialog.java b/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/ui/GenerateDialog.java index 6d1806463..192dbe6ca 100644 --- a/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/ui/GenerateDialog.java +++ b/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/ui/GenerateDialog.java @@ -120,39 +120,6 @@ public class GenerateDialog extends Window { } - @Override - public int hashCode() {// NOSONAR - as this is generated - final int prime = 31; - int result = super.hashCode(); - result = prime * result + ((formLayout == null) ? 0 : formLayout.hashCode()); - return result; - } - - @Override - public boolean equals(final Object obj) {// NOSONAR - as this is generated - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (!super.equals(obj)) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final GenerateDialog other = (GenerateDialog) obj; - if (formLayout == null) { - if (other.formLayout != null) { - return false; - } - } else if (!formLayout.equals(other.formLayout)) { - return false; - } - return true; - } - /** * Callback interface to retrieve the result from the dialog window. * @@ -225,19 +192,20 @@ public class GenerateDialog extends Window { }); } - private TextField createRequiredTextfield(final String caption, final String value, final Resource icon, + private static TextField createRequiredTextfield(final String caption, final String value, final Resource icon, final Validator validator) { final TextField textField = new TextField(caption, value); return addTextFieldValues(textField, icon, validator); } - private TextField createRequiredTextfield(final String caption, final Property dataSource, final Resource icon, - final Validator validator) { + private static TextField createRequiredTextfield(final String caption, final Property dataSource, + final Resource icon, final Validator validator) { final TextField textField = new TextField(caption, dataSource); return addTextFieldValues(textField, icon, validator); } - private TextField addTextFieldValues(final TextField textField, final Resource icon, final Validator validator) { + private static TextField addTextFieldValues(final TextField textField, final Resource icon, + final Validator validator) { textField.setIcon(icon); textField.setRequired(true); if (validator != null) { From be841c6095d51280c7debb1d95f0adbbcb0bcc52 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Wed, 7 Sep 2016 09:32:18 +0200 Subject: [PATCH 07/15] Fixed feign usage after Spring Boot 1.3 upgrade Signed-off-by: Kai Zimmermann --- .../simulator/SimulationController.java | 2 +- .../hawkbit-example-core-feign-client/pom.xml | 1 - ...leConsumersProducersSpringMvcContract.java | 3 ++ .../hawkbit-example-ddi-feign-client/pom.xml | 12 ------ .../MgmtDistributionSetClientResource.java | 3 +- .../MgmtDistributionSetTagClientResource.java | 3 +- ...MgmtDistributionSetTypeClientResource.java | 3 +- .../MgmtDownloadArtifactClientResource.java | 3 +- .../resource/MgmtDownloadClientResource.java | 3 +- .../resource/MgmtRolloutClientResource.java | 3 +- .../MgmtSoftwareModuleClientResource.java | 3 +- .../MgmtSoftwareModuleTypeClientResource.java | 3 +- .../resource/MgmtSystemClientResource.java | 3 +- .../MgmtSystemManagementClientResource.java | 3 +- .../resource/MgmtTargetClientResource.java | 3 +- .../resource/MgmtTargetTagClientResource.java | 3 +- .../hawkbit-example-mgmt-simulator/pom.xml | 28 ------------- .../hawkbit/mgmt/client/Application.java | 42 +++---------------- .../scenarios/ConfigurableScenario.java | 15 +------ .../CreateStartedRolloutExample.java | 2 - examples/pom.xml | 29 ++++--------- .../rest/api/DdiRootControllerRestApi.java | 7 ++-- .../rest/api/MgmtDistributionSetRestApi.java | 17 ++++---- .../api/MgmtDistributionSetTagRestApi.java | 9 ++-- .../api/MgmtDistributionSetTypeRestApi.java | 9 ++-- .../mgmt/rest/api/MgmtRolloutRestApi.java | 3 +- .../rest/api/MgmtSoftwareModuleRestApi.java | 9 ++-- .../api/MgmtSoftwareModuleTypeRestApi.java | 5 +-- .../mgmt/rest/api/MgmtSystemRestApi.java | 3 +- .../mgmt/rest/api/MgmtTargetRestApi.java | 7 ++-- .../mgmt/rest/api/MgmtTargetTagRestApi.java | 9 ++-- 31 files changed, 66 insertions(+), 182 deletions(-) diff --git a/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/SimulationController.java b/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/SimulationController.java index b100cb28f..2ae8027ca 100644 --- a/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/SimulationController.java +++ b/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/SimulationController.java @@ -93,7 +93,7 @@ public class SimulationController { gatewayToken)); } - return ResponseEntity.ok("Updated " + amount + " DMF connected targets!"); + return ResponseEntity.ok("Updated " + amount + " " + protocol + " connected targets!"); } private boolean isDmfDisabled() { diff --git a/examples/hawkbit-example-core-feign-client/pom.xml b/examples/hawkbit-example-core-feign-client/pom.xml index 5b3df2ef2..4e881d5ac 100644 --- a/examples/hawkbit-example-core-feign-client/pom.xml +++ b/examples/hawkbit-example-core-feign-client/pom.xml @@ -32,7 +32,6 @@ org.springframework.cloud spring-cloud-netflix-core - 1.0.7.RELEASE org.slf4j diff --git a/examples/hawkbit-example-core-feign-client/src/main/java/org/eclipse/hawkbit/feign/core/client/IgnoreMultipleConsumersProducersSpringMvcContract.java b/examples/hawkbit-example-core-feign-client/src/main/java/org/eclipse/hawkbit/feign/core/client/IgnoreMultipleConsumersProducersSpringMvcContract.java index b04143cdf..f7cf14026 100644 --- a/examples/hawkbit-example-core-feign-client/src/main/java/org/eclipse/hawkbit/feign/core/client/IgnoreMultipleConsumersProducersSpringMvcContract.java +++ b/examples/hawkbit-example-core-feign-client/src/main/java/org/eclipse/hawkbit/feign/core/client/IgnoreMultipleConsumersProducersSpringMvcContract.java @@ -10,12 +10,14 @@ package org.eclipse.hawkbit.feign.core.client; import java.lang.annotation.Annotation; import java.lang.reflect.Method; +import java.util.LinkedHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.netflix.feign.support.SpringMvcContract; import feign.MethodMetadata; +import feign.Param; /** * Own implementation of the {@link SpringMvcContract} which catches the @@ -39,5 +41,6 @@ public class IgnoreMultipleConsumersProducersSpringMvcContract extends SpringMvc // https://github.com/spring-cloud/spring-cloud-netflix/issues/808 LOGGER.trace(e.getMessage(), e); } + data.indexToExpander(new LinkedHashMap()); } } diff --git a/examples/hawkbit-example-ddi-feign-client/pom.xml b/examples/hawkbit-example-ddi-feign-client/pom.xml index 5388544db..3797d609b 100644 --- a/examples/hawkbit-example-ddi-feign-client/pom.xml +++ b/examples/hawkbit-example-ddi-feign-client/pom.xml @@ -20,18 +20,6 @@ hawkBit-example :: DDI Feign Client - - - - org.springframework.cloud - spring-cloud-netflix - 1.0.7.RELEASE - pom - import - - - - org.eclipse.hawkbit diff --git a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDistributionSetClientResource.java b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDistributionSetClientResource.java index 40eb13b55..b38fc8edc 100644 --- a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDistributionSetClientResource.java +++ b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDistributionSetClientResource.java @@ -9,13 +9,12 @@ package org.eclipse.hawkbit.mgmt.client.resource; import org.eclipse.hawkbit.mgmt.rest.api.MgmtDistributionSetRestApi; -import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.springframework.cloud.netflix.feign.FeignClient; /** * Client binding for the DistributionSet resource of the management API. */ -@FeignClient(url = "${hawkbit.url:localhost:8080}" + MgmtRestConstants.DISTRIBUTIONSET_V1_REQUEST_MAPPING) +@FeignClient(name = "MgmtDistributionSetClient", url = "${hawkbit.url:localhost:8080}") public interface MgmtDistributionSetClientResource extends MgmtDistributionSetRestApi { } diff --git a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDistributionSetTagClientResource.java b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDistributionSetTagClientResource.java index 1070bbd9c..c08894cca 100644 --- a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDistributionSetTagClientResource.java +++ b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDistributionSetTagClientResource.java @@ -9,12 +9,11 @@ package org.eclipse.hawkbit.mgmt.client.resource; import org.eclipse.hawkbit.mgmt.rest.api.MgmtDistributionSetTagRestApi; -import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.springframework.cloud.netflix.feign.FeignClient; /** * Client binding for the DistributionSetTag resource of the management API. */ -@FeignClient(url = "${hawkbit.url:localhost:8080}" + MgmtRestConstants.DISTRIBUTIONSET_TAG_V1_REQUEST_MAPPING) +@FeignClient(name = "MgmtDistributionSetTagClient", url = "${hawkbit.url:localhost:8080}") public interface MgmtDistributionSetTagClientResource extends MgmtDistributionSetTagRestApi { } diff --git a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDistributionSetTypeClientResource.java b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDistributionSetTypeClientResource.java index 451c53942..d7cb509d8 100644 --- a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDistributionSetTypeClientResource.java +++ b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDistributionSetTypeClientResource.java @@ -9,14 +9,13 @@ package org.eclipse.hawkbit.mgmt.client.resource; import org.eclipse.hawkbit.mgmt.rest.api.MgmtDistributionSetTypeRestApi; -import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.springframework.cloud.netflix.feign.FeignClient; /** * Client binding for the DistributionSetType resource of the management API. * */ -@FeignClient(url = "${hawkbit.url:localhost:8080}" + MgmtRestConstants.DISTRIBUTIONSETTYPE_V1_REQUEST_MAPPING) +@FeignClient(name = "MgmtDistributionSetTypeClient", url = "${hawkbit.url:localhost:8080}") public interface MgmtDistributionSetTypeClientResource extends MgmtDistributionSetTypeRestApi { } diff --git a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDownloadArtifactClientResource.java b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDownloadArtifactClientResource.java index 5c93edce5..831b17a5f 100644 --- a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDownloadArtifactClientResource.java +++ b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDownloadArtifactClientResource.java @@ -9,14 +9,13 @@ package org.eclipse.hawkbit.mgmt.client.resource; import org.eclipse.hawkbit.mgmt.rest.api.MgmtDownloadArtifactRestApi; -import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.springframework.cloud.netflix.feign.FeignClient; /** * A feign-client interface declaration which allows to build a feign-client * stub. */ -@FeignClient(url = "${hawkbit.url:localhost:8080}" + MgmtRestConstants.SOFTWAREMODULE_V1_REQUEST_MAPPING) +@FeignClient(name = "MgmtDownloadArtifactClient", url = "${hawkbit.url:localhost:8080}") public interface MgmtDownloadArtifactClientResource extends MgmtDownloadArtifactRestApi { } diff --git a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDownloadClientResource.java b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDownloadClientResource.java index 330d3908f..0a4d1f500 100644 --- a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDownloadClientResource.java +++ b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtDownloadClientResource.java @@ -9,12 +9,11 @@ package org.eclipse.hawkbit.mgmt.client.resource; import org.eclipse.hawkbit.mgmt.rest.api.MgmtDownloadRestApi; -import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.springframework.cloud.netflix.feign.FeignClient; /** * */ -@FeignClient(url = "${hawkbit.url:localhost:8080}" + MgmtRestConstants.DOWNLOAD_ID_V1_REQUEST_MAPPING_BASE) +@FeignClient(name = "MgmtDownloadClient", url = "${hawkbit.url:localhost:8080}") public interface MgmtDownloadClientResource extends MgmtDownloadRestApi { } diff --git a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtRolloutClientResource.java b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtRolloutClientResource.java index acc00d6fe..0d6856d98 100644 --- a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtRolloutClientResource.java +++ b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtRolloutClientResource.java @@ -8,13 +8,12 @@ */ package org.eclipse.hawkbit.mgmt.client.resource; -import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.eclipse.hawkbit.mgmt.rest.api.MgmtRolloutRestApi; import org.springframework.cloud.netflix.feign.FeignClient; /** * Client binding for the Rollout resource of the management API. */ -@FeignClient(url = "${hawkbit.url:localhost:8080}" + MgmtRestConstants.ROLLOUT_V1_REQUEST_MAPPING) +@FeignClient(name = "MgmtRolloutClient", url = "${hawkbit.url:localhost:8080}") public interface MgmtRolloutClientResource extends MgmtRolloutRestApi { } diff --git a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSoftwareModuleClientResource.java b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSoftwareModuleClientResource.java index 7a2267e24..c5d019e78 100644 --- a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSoftwareModuleClientResource.java +++ b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSoftwareModuleClientResource.java @@ -9,7 +9,6 @@ package org.eclipse.hawkbit.mgmt.client.resource; import org.eclipse.hawkbit.mgmt.json.model.artifact.MgmtArtifact; -import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.eclipse.hawkbit.mgmt.rest.api.MgmtSoftwareModuleRestApi; import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.http.ResponseEntity; @@ -24,7 +23,7 @@ import feign.Param; /** * Client binding for the SoftwareModule resource of the management API. */ -@FeignClient(url = "${hawkbit.url:localhost:8080}" + MgmtRestConstants.SOFTWAREMODULE_V1_REQUEST_MAPPING) +@FeignClient(name = "MgmtSoftwareModuleClient", url = "${hawkbit.url:localhost:8080}") public interface MgmtSoftwareModuleClientResource extends MgmtSoftwareModuleRestApi { @Override diff --git a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSoftwareModuleTypeClientResource.java b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSoftwareModuleTypeClientResource.java index 603e82f10..582ec1821 100644 --- a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSoftwareModuleTypeClientResource.java +++ b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSoftwareModuleTypeClientResource.java @@ -8,13 +8,12 @@ */ package org.eclipse.hawkbit.mgmt.client.resource; -import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.eclipse.hawkbit.mgmt.rest.api.MgmtSoftwareModuleTypeRestApi; import org.springframework.cloud.netflix.feign.FeignClient; /** * Client binding for the SoftwareModuleType resource of the management API. */ -@FeignClient(url = "${hawkbit.url:localhost:8080}" + MgmtRestConstants.SOFTWAREMODULETYPE_V1_REQUEST_MAPPING) +@FeignClient(name = "MgmtSoftwareModuleTypeClient", url = "${hawkbit.url:localhost:8080}") public interface MgmtSoftwareModuleTypeClientResource extends MgmtSoftwareModuleTypeRestApi { } diff --git a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSystemClientResource.java b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSystemClientResource.java index e1bbd909c..9486bc560 100644 --- a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSystemClientResource.java +++ b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSystemClientResource.java @@ -8,7 +8,6 @@ */ package org.eclipse.hawkbit.mgmt.client.resource; -import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.eclipse.hawkbit.mgmt.rest.api.MgmtSystemRestApi; import org.springframework.cloud.netflix.feign.FeignClient; @@ -16,6 +15,6 @@ import org.springframework.cloud.netflix.feign.FeignClient; * Client binding for the {@link MgmtSystemRestApi}. * */ -@FeignClient(url = "${hawkbit.url:localhost:8080}" + MgmtRestConstants.SYSTEM_V1_REQUEST_MAPPING) +@FeignClient(name = "MgmtSystemClient", url = "${hawkbit.url:localhost:8080}") public interface MgmtSystemClientResource extends MgmtSystemRestApi { } diff --git a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSystemManagementClientResource.java b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSystemManagementClientResource.java index 802194fe8..8cb293ea7 100644 --- a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSystemManagementClientResource.java +++ b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtSystemManagementClientResource.java @@ -8,7 +8,6 @@ */ package org.eclipse.hawkbit.mgmt.client.resource; -import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.eclipse.hawkbit.mgmt.rest.api.MgmtSystemManagementRestApi; import org.springframework.cloud.netflix.feign.FeignClient; @@ -16,7 +15,7 @@ import org.springframework.cloud.netflix.feign.FeignClient; * Client binding for the {@link MgmtSystemManagementRestApi}. * */ -@FeignClient(url = "${hawkbit.url:localhost:8080}" + MgmtRestConstants.SYSTEM_ADMIN_MAPPING) +@FeignClient(name = "MgmtSystemManagementClient", url = "${hawkbit.url:localhost:8080}") public interface MgmtSystemManagementClientResource extends MgmtSystemManagementRestApi { } diff --git a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtTargetClientResource.java b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtTargetClientResource.java index c0a0193af..a64509340 100644 --- a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtTargetClientResource.java +++ b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtTargetClientResource.java @@ -8,13 +8,12 @@ */ package org.eclipse.hawkbit.mgmt.client.resource; -import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.eclipse.hawkbit.mgmt.rest.api.MgmtTargetRestApi; import org.springframework.cloud.netflix.feign.FeignClient; /** * Client binding for the Target resource of the management API. */ -@FeignClient(url = "${hawkbit.url:localhost:8080}" + MgmtRestConstants.TARGET_V1_REQUEST_MAPPING) +@FeignClient(name = "MgmtTargetClient", url = "${hawkbit.url:localhost:8080}") public interface MgmtTargetClientResource extends MgmtTargetRestApi { } diff --git a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtTargetTagClientResource.java b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtTargetTagClientResource.java index 3f9264337..b1d264e78 100644 --- a/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtTargetTagClientResource.java +++ b/examples/hawkbit-example-mgmt-feign-client/src/main/java/org/eclipse/hawkbit/mgmt/client/resource/MgmtTargetTagClientResource.java @@ -8,13 +8,12 @@ */ package org.eclipse.hawkbit.mgmt.client.resource; -import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.eclipse.hawkbit.mgmt.rest.api.MgmtTargetTagRestApi; import org.springframework.cloud.netflix.feign.FeignClient; /** * Client binding for the TargetTag resource of the management API. */ -@FeignClient(url = "${hawkbit.url:localhost:8080}" + MgmtRestConstants.TARGET_TAG_V1_REQUEST_MAPPING) +@FeignClient(name = "MgmtTargetTagClient", url = "${hawkbit.url:localhost:8080}") public interface MgmtTargetTagClientResource extends MgmtTargetTagRestApi { } diff --git a/examples/hawkbit-example-mgmt-simulator/pom.xml b/examples/hawkbit-example-mgmt-simulator/pom.xml index 469290dfc..dcf1bc735 100644 --- a/examples/hawkbit-example-mgmt-simulator/pom.xml +++ b/examples/hawkbit-example-mgmt-simulator/pom.xml @@ -42,40 +42,12 @@ - - - - org.springframework.cloud - spring-cloud-netflix - 1.0.7.RELEASE - pom - import - - - - org.eclipse.hawkbit hawkbit-example-mgmt-feign-client ${project.version} - - com.netflix.feign - feign-core - - - com.netflix.feign - feign-jackson - - - com.fasterxml.jackson.core - jackson-databind - - - hibernate-validator - org.hibernate - org.springframework.boot spring-boot-starter diff --git a/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/Application.java b/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/Application.java index ac65455b5..aae1bf8da 100644 --- a/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/Application.java +++ b/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/Application.java @@ -9,37 +9,26 @@ package org.eclipse.hawkbit.mgmt.client; import org.eclipse.hawkbit.feign.core.client.FeignClientConfiguration; -import org.eclipse.hawkbit.feign.core.client.IgnoreMultipleConsumersProducersSpringMvcContract; import org.eclipse.hawkbit.mgmt.client.resource.MgmtDistributionSetClientResource; import org.eclipse.hawkbit.mgmt.client.resource.MgmtRolloutClientResource; import org.eclipse.hawkbit.mgmt.client.resource.MgmtSoftwareModuleClientResource; import org.eclipse.hawkbit.mgmt.client.resource.MgmtTargetClientResource; import org.eclipse.hawkbit.mgmt.client.scenarios.ConfigurableScenario; import org.eclipse.hawkbit.mgmt.client.scenarios.CreateStartedRolloutExample; -import org.eclipse.hawkbit.mgmt.client.scenarios.upload.FeignMultipartEncoder; -import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.Banner.Mode; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.netflix.feign.EnableFeignClients; -import org.springframework.cloud.netflix.feign.support.ResponseEntityDecoder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; -import org.springframework.hateoas.hal.Jackson2HalModule; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; - -import feign.Feign; import feign.Logger; import feign.auth.BasicAuthRequestInterceptor; -import feign.jackson.JacksonDecoder; -import feign.slf4j.Slf4jLogger; @SpringBootApplication @EnableFeignClients("org.eclipse.hawkbit.mgmt.client.resource") @@ -49,9 +38,6 @@ import feign.slf4j.Slf4jLogger; @Import(FeignClientConfiguration.class) public class Application implements CommandLineRunner { - @Autowired - private ClientConfigurationProperties configuration; - @Autowired private ConfigurableScenario configuredScenario; @@ -59,7 +45,7 @@ public class Application implements CommandLineRunner { private CreateStartedRolloutExample gettingStartedRolloutScenario; public static void main(final String[] args) { - new SpringApplicationBuilder().showBanner(false).sources(Application.class).run(args); + new SpringApplicationBuilder().bannerMode(Mode.OFF).sources(Application.class).run(args); } @Override @@ -74,18 +60,17 @@ public class Application implements CommandLineRunner { } @Bean - public BasicAuthRequestInterceptor basicAuthRequestInterceptor() { + public BasicAuthRequestInterceptor basicAuthRequestInterceptor(final ClientConfigurationProperties configuration) { return new BasicAuthRequestInterceptor(configuration.getUsername(), configuration.getPassword()); } @Bean public ConfigurableScenario configurableScenario(final MgmtDistributionSetClientResource distributionSetResource, - @Qualifier("mgmtSoftwareModuleClientResource") final MgmtSoftwareModuleClientResource softwareModuleResource, - @Qualifier("uploadSoftwareModule") final MgmtSoftwareModuleClientResource uploadSoftwareModule, + final MgmtSoftwareModuleClientResource softwareModuleResource, final MgmtTargetClientResource targetResource, final MgmtRolloutClientResource rolloutResource, final ClientConfigurationProperties clientConfigurationProperties) { - return new ConfigurableScenario(distributionSetResource, softwareModuleResource, uploadSoftwareModule, - targetResource, rolloutResource, clientConfigurationProperties); + return new ConfigurableScenario(distributionSetResource, softwareModuleResource, targetResource, + rolloutResource, clientConfigurationProperties); } @Bean @@ -98,21 +83,6 @@ public class Application implements CommandLineRunner { return Logger.Level.FULL; } - @Bean - public MgmtSoftwareModuleClientResource uploadSoftwareModule() { - final ObjectMapper mapper = new ObjectMapper() - .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - .registerModule(new Jackson2HalModule()); - - return Feign.builder().contract(new IgnoreMultipleConsumersProducersSpringMvcContract()) - .requestInterceptor( - new BasicAuthRequestInterceptor(configuration.getUsername(), configuration.getPassword())) - .logger(new Slf4jLogger()).encoder(new FeignMultipartEncoder()) - .decoder(new ResponseEntityDecoder(new JacksonDecoder(mapper))) - .target(MgmtSoftwareModuleClientResource.class, - configuration.getUrl() + MgmtRestConstants.SOFTWAREMODULE_V1_REQUEST_MAPPING); - } - private static boolean containsArg(final String containsArg, final String... args) { for (final String arg : args) { if (arg.equalsIgnoreCase(containsArg)) { diff --git a/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/ConfigurableScenario.java b/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/ConfigurableScenario.java index a09459e07..5eae96931 100644 --- a/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/ConfigurableScenario.java +++ b/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/ConfigurableScenario.java @@ -23,7 +23,6 @@ import org.eclipse.hawkbit.mgmt.client.resource.builder.RolloutBuilder; import org.eclipse.hawkbit.mgmt.client.resource.builder.SoftwareModuleAssigmentBuilder; import org.eclipse.hawkbit.mgmt.client.resource.builder.SoftwareModuleBuilder; import org.eclipse.hawkbit.mgmt.client.resource.builder.TargetBuilder; -import org.eclipse.hawkbit.mgmt.client.scenarios.upload.ArtifactFile; import org.eclipse.hawkbit.mgmt.json.model.PagedList; import org.eclipse.hawkbit.mgmt.json.model.distributionset.MgmtDistributionSet; import org.eclipse.hawkbit.mgmt.json.model.rollout.MgmtRolloutResponseBody; @@ -31,7 +30,6 @@ import org.eclipse.hawkbit.mgmt.json.model.softwaremodule.MgmtSoftwareModule; import org.eclipse.hawkbit.mgmt.json.model.target.MgmtTarget; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Qualifier; /** * @@ -50,8 +48,6 @@ public class ConfigurableScenario { private final MgmtSoftwareModuleClientResource softwareModuleResource; - private final MgmtSoftwareModuleClientResource uploadSoftwareModule; - private final MgmtTargetClientResource targetResource; private final MgmtRolloutClientResource rolloutResource; @@ -59,13 +55,11 @@ public class ConfigurableScenario { private final ClientConfigurationProperties clientConfigurationProperties; public ConfigurableScenario(final MgmtDistributionSetClientResource distributionSetResource, - @Qualifier("mgmtSoftwareModuleClientResource") final MgmtSoftwareModuleClientResource softwareModuleResource, - @Qualifier("uploadSoftwareModule") final MgmtSoftwareModuleClientResource uploadSoftwareModule, + final MgmtSoftwareModuleClientResource softwareModuleResource, final MgmtTargetClientResource targetResource, final MgmtRolloutClientResource rolloutResource, final ClientConfigurationProperties clientConfigurationProperties) { this.distributionSetResource = distributionSetResource; this.softwareModuleResource = softwareModuleResource; - this.uploadSoftwareModule = uploadSoftwareModule; this.targetResource = targetResource; this.rolloutResource = rolloutResource; this.clientConfigurationProperties = clientConfigurationProperties; @@ -191,13 +185,6 @@ public class ConfigurableScenario { .type("application").buildAsList(scenario.getAppModulesPerDistributionSet())) .getBody()); - for (int x = 0; x < scenario.getArtifactsPerSM(); x++) { - modules.forEach(module -> { - final ArtifactFile file = new ArtifactFile("dummyfile.dummy", null, "multipart/form-data", artifact); - uploadSoftwareModule.uploadArtifact(module.getModuleId(), file, null, null, null); - }); - } - return modules; } diff --git a/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/CreateStartedRolloutExample.java b/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/CreateStartedRolloutExample.java index b450bbde2..913d2eaa4 100644 --- a/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/CreateStartedRolloutExample.java +++ b/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/CreateStartedRolloutExample.java @@ -28,7 +28,6 @@ import org.eclipse.hawkbit.mgmt.json.model.rollout.MgmtRolloutResponseBody; import org.eclipse.hawkbit.mgmt.json.model.softwaremodule.MgmtSoftwareModule; import org.eclipse.hawkbit.mgmt.json.model.softwaremoduletype.MgmtSoftwareModuleType; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; /** * Example for creating and starting a Rollout. @@ -46,7 +45,6 @@ public class CreateStartedRolloutExample { private MgmtDistributionSetClientResource distributionSetResource; @Autowired - @Qualifier("mgmtSoftwareModuleClientResource") private MgmtSoftwareModuleClientResource softwareModuleResource; @Autowired diff --git a/examples/pom.xml b/examples/pom.xml index fb8ef3fc3..85dd70651 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -8,7 +8,8 @@ http://www.eclipse.org/legal/epl-v10.html --> - + 4.0.0 @@ -28,33 +29,21 @@ hawkbit-example-ddi-feign-client hawkbit-example-mgmt-feign-client hawkbit-example-mgmt-simulator - - - - - 8.14.2 - + - com.netflix.feign - feign-core - - - ${feign.version} + org.springframework.cloud + spring-cloud-dependencies + Brixton.SR5 + pom + import com.netflix.feign feign-jackson - - - ${feign.version} - - - com.netflix.feign - feign-slf4j - ${feign.version} + 8.16.2 diff --git a/hawkbit-ddi-api/src/main/java/org/eclipse/hawkbit/ddi/rest/api/DdiRootControllerRestApi.java b/hawkbit-ddi-api/src/main/java/org/eclipse/hawkbit/ddi/rest/api/DdiRootControllerRestApi.java index 67436c3ca..f4c80c778 100644 --- a/hawkbit-ddi-api/src/main/java/org/eclipse/hawkbit/ddi/rest/api/DdiRootControllerRestApi.java +++ b/hawkbit-ddi-api/src/main/java/org/eclipse/hawkbit/ddi/rest/api/DdiRootControllerRestApi.java @@ -25,7 +25,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -150,7 +149,7 @@ public interface DdiRootControllerRestApi { */ @RequestMapping(value = "/{targetid}/" + DdiRestConstants.DEPLOYMENT_BASE_ACTION + "/{actionId}/" + DdiRestConstants.FEEDBACK, method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) - ResponseEntity postBasedeploymentActionFeedback(@Valid @RequestBody final DdiActionFeedback feedback, + ResponseEntity postBasedeploymentActionFeedback(@Valid final DdiActionFeedback feedback, @PathVariable("targetid") final String targetid, @PathVariable("actionId") @NotEmpty final Long actionId); /** @@ -167,7 +166,7 @@ public interface DdiRootControllerRestApi { */ @RequestMapping(value = "/{targetid}/" + DdiRestConstants.CONFIG_DATA_ACTION, method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE) - ResponseEntity putConfigData(@Valid @RequestBody final DdiConfigData configData, + ResponseEntity putConfigData(@Valid final DdiConfigData configData, @PathVariable("targetid") final String targetid); /** @@ -205,7 +204,7 @@ public interface DdiRootControllerRestApi { @RequestMapping(value = "/{targetid}/" + DdiRestConstants.CANCEL_ACTION + "/{actionId}/" + DdiRestConstants.FEEDBACK, method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) - ResponseEntity postCancelActionFeedback(@Valid @RequestBody final DdiActionFeedback feedback, + ResponseEntity postCancelActionFeedback(@Valid final DdiActionFeedback feedback, @PathVariable("targetid") @NotEmpty final String targetid, @PathVariable("actionId") @NotEmpty final Long actionId); diff --git a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetRestApi.java b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetRestApi.java index c61c9ecd3..0a28c2226 100644 --- a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetRestApi.java +++ b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetRestApi.java @@ -23,7 +23,6 @@ import org.eclipse.hawkbit.mgmt.json.model.target.MgmtTarget; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -55,8 +54,8 @@ public interface MgmtDistributionSetRestApi { */ @RequestMapping(method = RequestMethod.GET, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity> getDistributionSets( - @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_OFFSET, defaultValue = MgmtRestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET) final int pagingOffsetParam, - @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_LIMIT, defaultValue = MgmtRestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT) final int pagingLimitParam, + @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_OFFSET) final int pagingOffsetParam, + @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_LIMIT) final int pagingLimitParam, @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_SORTING, required = false) final String sortParam, @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_SEARCH, required = false) final String rsqlParam); @@ -88,7 +87,7 @@ public interface MgmtDistributionSetRestApi { @RequestMapping(method = RequestMethod.POST, consumes = { MediaType.APPLICATION_JSON_VALUE, "application/hal+json" }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity> createDistributionSets( - @RequestBody final List sets); + final List sets); /** * Handles the DELETE request for a single DistributionSet . @@ -116,7 +115,7 @@ public interface MgmtDistributionSetRestApi { MediaType.APPLICATION_JSON_VALUE }, produces = { MediaType.APPLICATION_JSON_VALUE, "application/hal+json" }) ResponseEntity updateDistributionSet( @PathVariable("distributionSetId") final Long distributionSetId, - @RequestBody final MgmtDistributionSetRequestBodyPut toUpdate); + final MgmtDistributionSetRequestBodyPut toUpdate); /** * Handles the GET request of retrieving assigned targets to a specific @@ -198,7 +197,7 @@ public interface MgmtDistributionSetRestApi { MediaType.APPLICATION_JSON_VALUE }, produces = { MediaType.APPLICATION_JSON_VALUE, "application/hal+json" }) ResponseEntity createAssignedTarget( @PathVariable("distributionSetId") final Long distributionSetId, - @RequestBody final List targetIds); + final List targetIds); /** * Gets a paged list of meta data for a distribution set. @@ -256,7 +255,7 @@ public interface MgmtDistributionSetRestApi { @RequestMapping(method = RequestMethod.PUT, value = "/{distributionSetId}/metadata/{metadataKey}", produces = { MediaType.APPLICATION_JSON_VALUE, "application/hal+json" }) ResponseEntity updateMetadata(@PathVariable("distributionSetId") final Long distributionSetId, - @PathVariable("metadataKey") final String metadataKey, @RequestBody final MgmtMetadata metadata); + @PathVariable("metadataKey") final String metadataKey, final MgmtMetadata metadata); /** * Deletes a single meta data entry from the distribution set. @@ -285,7 +284,7 @@ public interface MgmtDistributionSetRestApi { MediaType.APPLICATION_JSON_VALUE, "application/hal+json" }, produces = { MediaType.APPLICATION_JSON_VALUE, "application/hal+json" }) ResponseEntity> createMetadata(@PathVariable("distributionSetId") final Long distributionSetId, - @RequestBody final List metadataRest); + final List metadataRest); /** * Assigns a list of software modules to a distribution set. @@ -301,7 +300,7 @@ public interface MgmtDistributionSetRestApi { MediaType.APPLICATION_JSON_VALUE, "application/hal+json" }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity assignSoftwareModules(@PathVariable("distributionSetId") final Long distributionSetId, - @RequestBody final List softwareModuleIDs); + final List softwareModuleIDs); /** * Deletes the assignment of the software module form the distribution set. diff --git a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetTagRestApi.java b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetTagRestApi.java index 5a836ef55..2342cff6e 100644 --- a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetTagRestApi.java +++ b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetTagRestApi.java @@ -19,7 +19,6 @@ import org.eclipse.hawkbit.mgmt.json.model.tag.MgmtTagRequestBodyPut; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -82,7 +81,7 @@ public interface MgmtDistributionSetTagRestApi { */ @RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) - ResponseEntity> createDistributionSetTags(@RequestBody final List tags); + ResponseEntity> createDistributionSetTags(final List tags); /** * @@ -99,7 +98,7 @@ public interface MgmtDistributionSetTagRestApi { MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity updateDistributionSetTag( @PathVariable("distributionsetTagId") final Long distributionsetTagId, - @RequestBody final MgmtTagRequestBodyPut restDSTagRest); + final MgmtTagRequestBodyPut restDSTagRest); /** * Handles the DELETE request for a single distribution set tag. @@ -142,7 +141,7 @@ public interface MgmtDistributionSetTagRestApi { + "/toggleTagAssignment") ResponseEntity toggleTagAssignment( @PathVariable("distributionsetTagId") final Long distributionsetTagId, - @RequestBody final List assignedDSRequestBodies); + final List assignedDSRequestBodies); /** * Handles the POST request to assign distribution sets to the given tag id. @@ -157,7 +156,7 @@ public interface MgmtDistributionSetTagRestApi { @RequestMapping(method = RequestMethod.POST, value = MgmtRestConstants.DISTRIBUTIONSET_REQUEST_MAPPING) ResponseEntity> assignDistributionSets( @PathVariable("distributionsetTagId") final Long distributionsetTagId, - @RequestBody final List assignedDSRequestBodies); + final List assignedDSRequestBodies); /** * Handles the DELETE request to unassign all distribution set from the diff --git a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetTypeRestApi.java b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetTypeRestApi.java index 25468739e..aeddbe1e7 100644 --- a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetTypeRestApi.java +++ b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetTypeRestApi.java @@ -19,7 +19,6 @@ import org.eclipse.hawkbit.mgmt.json.model.softwaremoduletype.MgmtSoftwareModule import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -99,7 +98,7 @@ public interface MgmtDistributionSetTypeRestApi { MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity updateDistributionSetType( @PathVariable("distributionSetTypeId") final Long distributionSetTypeId, - @RequestBody final MgmtDistributionSetTypeRequestBodyPut restDistributionSetType); + final MgmtDistributionSetTypeRequestBodyPut restDistributionSetType); /** * Handles the POST request of creating new DistributionSetTypes. The @@ -115,7 +114,7 @@ public interface MgmtDistributionSetTypeRestApi { @RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity> createDistributionSetTypes( - @RequestBody final List distributionSetTypes); + final List distributionSetTypes); /** * Handles the GET request of retrieving the list of mandatory software @@ -229,7 +228,7 @@ public interface MgmtDistributionSetTypeRestApi { MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity addMandatoryModule(@PathVariable("distributionSetTypeId") final Long distributionSetTypeId, - @RequestBody final MgmtId smtId); + final MgmtId smtId); /** * Handles the POST request for adding an optional software module type to a @@ -247,6 +246,6 @@ public interface MgmtDistributionSetTypeRestApi { MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity addOptionalModule(@PathVariable("distributionSetTypeId") final Long distributionSetTypeId, - @RequestBody final MgmtId smtId); + final MgmtId smtId); } diff --git a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtRolloutRestApi.java b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtRolloutRestApi.java index 7f93e2ce8..905bbad88 100644 --- a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtRolloutRestApi.java +++ b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtRolloutRestApi.java @@ -16,7 +16,6 @@ import org.eclipse.hawkbit.mgmt.json.model.target.MgmtTarget; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -77,7 +76,7 @@ public interface MgmtRolloutRestApi { */ @RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) - ResponseEntity create(@RequestBody final MgmtRolloutRestRequestBody rolloutRequestBody); + ResponseEntity create(final MgmtRolloutRestRequestBody rolloutRequestBody); /** * Handles the POST request for starting a rollout. diff --git a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSoftwareModuleRestApi.java b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSoftwareModuleRestApi.java index cdd63ee26..cd40ffc0b 100644 --- a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSoftwareModuleRestApi.java +++ b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSoftwareModuleRestApi.java @@ -19,7 +19,6 @@ import org.eclipse.hawkbit.mgmt.json.model.softwaremodule.MgmtSoftwareModuleRequ import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -162,7 +161,7 @@ public interface MgmtSoftwareModuleRestApi { @RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity> createSoftwareModules( - @RequestBody final List softwareModules); + final List softwareModules); /** * Handles the PUT request of updating a software module. @@ -177,7 +176,7 @@ public interface MgmtSoftwareModuleRestApi { MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity updateSoftwareModule( @PathVariable("softwareModuleId") final Long softwareModuleId, - @RequestBody final MgmtSoftwareModuleRequestBodyPut restSoftwareModule); + final MgmtSoftwareModuleRequestBodyPut restSoftwareModule); /** * Handles the DELETE request for a single software module. @@ -246,7 +245,7 @@ public interface MgmtSoftwareModuleRestApi { @RequestMapping(method = RequestMethod.PUT, value = "/{softwareModuleId}/metadata/{metadataKey}", produces = { MediaType.APPLICATION_JSON_VALUE, "application/hal+json" }) ResponseEntity updateMetadata(@PathVariable("softwareModuleId") final Long softwareModuleId, - @PathVariable("metadataKey") final String metadataKey, @RequestBody final MgmtMetadata metadata); + @PathVariable("metadataKey") final String metadataKey, final MgmtMetadata metadata); /** * Deletes a single meta data entry from the software module. @@ -275,6 +274,6 @@ public interface MgmtSoftwareModuleRestApi { MediaType.APPLICATION_JSON_VALUE, "application/hal+json" }, produces = { MediaType.APPLICATION_JSON_VALUE, "application/hal+json" }) ResponseEntity> createMetadata(@PathVariable("softwareModuleId") final Long softwareModuleId, - @RequestBody final List metadataRest); + final List metadataRest); } diff --git a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSoftwareModuleTypeRestApi.java b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSoftwareModuleTypeRestApi.java index 3fe32d9ad..4fd5d2c38 100644 --- a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSoftwareModuleTypeRestApi.java +++ b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSoftwareModuleTypeRestApi.java @@ -17,7 +17,6 @@ import org.eclipse.hawkbit.mgmt.json.model.softwaremoduletype.MgmtSoftwareModule import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -94,7 +93,7 @@ public interface MgmtSoftwareModuleTypeRestApi { MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity updateSoftwareModuleType( @PathVariable("softwareModuleTypeId") final Long softwareModuleTypeId, - @RequestBody final MgmtSoftwareModuleTypeRequestBodyPut restSoftwareModuleType); + final MgmtSoftwareModuleTypeRequestBodyPut restSoftwareModuleType); /** * Handles the POST request of creating new SoftwareModuleTypes. The request @@ -110,6 +109,6 @@ public interface MgmtSoftwareModuleTypeRestApi { @RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity> createSoftwareModuleTypes( - @RequestBody final List softwareModuleTypes); + final List softwareModuleTypes); } diff --git a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSystemRestApi.java b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSystemRestApi.java index d120759b2..f7da862ee 100644 --- a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSystemRestApi.java +++ b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSystemRestApi.java @@ -16,7 +16,6 @@ import org.springframework.hateoas.ResourceSupport; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -83,6 +82,6 @@ public interface MgmtSystemRestApi { MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity updateConfigurationValue( @PathVariable("keyName") final String keyName, - @RequestBody final MgmtSystemTenantConfigurationValueRequest configurationValueRest); + final MgmtSystemTenantConfigurationValueRequest configurationValueRest); } diff --git a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtTargetRestApi.java b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtTargetRestApi.java index 97a0eae5c..3ffdaa534 100644 --- a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtTargetRestApi.java +++ b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtTargetRestApi.java @@ -21,7 +21,6 @@ import org.eclipse.hawkbit.mgmt.json.model.target.MgmtTargetRequestBody; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -84,7 +83,7 @@ public interface MgmtTargetRestApi { */ @RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) - ResponseEntity> createTargets(@RequestBody final List targets); + ResponseEntity> createTargets(final List targets); /** * Handles the PUT request of updating a target. The ID is within the URL @@ -103,7 +102,7 @@ public interface MgmtTargetRestApi { @RequestMapping(method = RequestMethod.PUT, value = "/{controllerId}", consumes = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity updateTarget(@PathVariable("controllerId") final String controllerId, - @RequestBody final MgmtTargetRequestBody targetRest); + final MgmtTargetRequestBody targetRest); /** * Handles the DELETE request of deleting a target. @@ -247,7 +246,7 @@ public interface MgmtTargetRestApi { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity postAssignedDistributionSet(@PathVariable("controllerId") final String controllerId, - @RequestBody final MgmtDistributionSetAssigment dsId); + final MgmtDistributionSetAssigment dsId); /** * Handles the GET request of retrieving the installed distribution set of diff --git a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtTargetTagRestApi.java b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtTargetTagRestApi.java index e568e7377..eb2b92af4 100644 --- a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtTargetTagRestApi.java +++ b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtTargetTagRestApi.java @@ -19,7 +19,6 @@ import org.eclipse.hawkbit.mgmt.json.model.target.MgmtTarget; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -81,7 +80,7 @@ public interface MgmtTargetTagRestApi { */ @RequestMapping(method = RequestMethod.POST, consumes = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) - ResponseEntity> createTargetTags(@RequestBody final List tags); + ResponseEntity> createTargetTags(final List tags); /** * @@ -96,7 +95,7 @@ public interface MgmtTargetTagRestApi { @RequestMapping(method = RequestMethod.PUT, value = "/{targetTagId}", consumes = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity updateTagretTag(@PathVariable("targetTagId") final Long targetTagId, - @RequestBody final MgmtTagRequestBodyPut restTargetTagRest); + final MgmtTagRequestBodyPut restTargetTagRest); /** * Handles the DELETE request for a single target tag. @@ -136,7 +135,7 @@ public interface MgmtTargetTagRestApi { + "/toggleTagAssignment") ResponseEntity toggleTagAssignment( @PathVariable("targetTagId") final Long targetTagId, - @RequestBody final List assignedTargetRequestBodies); + final List assignedTargetRequestBodies); /** * Handles the POST request to assign targets to the given tag id. @@ -150,7 +149,7 @@ public interface MgmtTargetTagRestApi { */ @RequestMapping(method = RequestMethod.POST, value = MgmtRestConstants.TARGET_TAG_TAGERTS_REQUEST_MAPPING) ResponseEntity> assignTargets(@PathVariable("targetTagId") final Long targetTagId, - @RequestBody final List assignedTargetRequestBodies); + final List assignedTargetRequestBodies); /** * Handles the DELETE request to unassign all targets from the given tag id. From 525ca8d72c305cd5b22f888d8dfc497016466aec Mon Sep 17 00:00:00 2001 From: kaizimmerm Date: Wed, 7 Sep 2016 11:58:00 +0200 Subject: [PATCH 08/15] Run only in case of failure Signed-off-by: kaizimmerm --- .../IgnoreMultipleConsumersProducersSpringMvcContract.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/hawkbit-example-core-feign-client/src/main/java/org/eclipse/hawkbit/feign/core/client/IgnoreMultipleConsumersProducersSpringMvcContract.java b/examples/hawkbit-example-core-feign-client/src/main/java/org/eclipse/hawkbit/feign/core/client/IgnoreMultipleConsumersProducersSpringMvcContract.java index f7cf14026..2706af4a3 100644 --- a/examples/hawkbit-example-core-feign-client/src/main/java/org/eclipse/hawkbit/feign/core/client/IgnoreMultipleConsumersProducersSpringMvcContract.java +++ b/examples/hawkbit-example-core-feign-client/src/main/java/org/eclipse/hawkbit/feign/core/client/IgnoreMultipleConsumersProducersSpringMvcContract.java @@ -40,7 +40,7 @@ public class IgnoreMultipleConsumersProducersSpringMvcContract extends SpringMvc // multiple consumers and produces, see // https://github.com/spring-cloud/spring-cloud-netflix/issues/808 LOGGER.trace(e.getMessage(), e); + data.indexToExpander(new LinkedHashMap()); } - data.indexToExpander(new LinkedHashMap()); } } From 47e3417f558cbbf74d7f11683388b7cd41f1fff5 Mon Sep 17 00:00:00 2001 From: kaizimmerm Date: Wed, 7 Sep 2016 12:17:50 +0200 Subject: [PATCH 09/15] Improved method naming Signed-off-by: kaizimmerm --- .../eclipse/hawkbit/ddi/rest/resource/DdiRootController.java | 2 +- .../org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java | 2 +- .../eclipse/hawkbit/amqp/AmqpMessageHandlerServiceTest.java | 4 ++-- .../org/eclipse/hawkbit/repository/ControllerManagement.java | 4 ++-- .../hawkbit/repository/jpa/JpaControllerManagement.java | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java b/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java index f1ce7e812..9456cd63e 100644 --- a/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java +++ b/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java @@ -130,7 +130,7 @@ public class DdiRootController implements DdiRootControllerRestApi { } return new ResponseEntity<>( - DataConversionHelper.fromTarget(target, controllerManagement.findOldestActionByTargetAndActive(target), + DataConversionHelper.fromTarget(target, controllerManagement.findOldestActiveActionByTarget(target), controllerManagement.getPollingTime(), tenantAware), HttpStatus.OK); } diff --git a/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java b/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java index a8723a63a..ef4f3387f 100644 --- a/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java +++ b/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java @@ -346,7 +346,7 @@ public class AmqpMessageHandlerService extends BaseAmqpService { } private void lookIfUpdateAvailable(final Target target) { - final Optional action = controllerManagement.findOldestActionByTargetAndActive(target); + final Optional action = controllerManagement.findOldestActiveActionByTarget(target); if (!action.isPresent()) { return; } 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 5937d8126..f8dd4f645 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 @@ -156,7 +156,7 @@ public class AmqpMessageHandlerServiceTest { final ArgumentCaptor uriCaptor = ArgumentCaptor.forClass(URI.class); when(controllerManagementMock.findOrRegisterTargetIfItDoesNotexist(targetIdCaptor.capture(), uriCaptor.capture())).thenReturn(null); - when(controllerManagementMock.findOldestActionByTargetAndActive(Matchers.any())).thenReturn(Optional.empty()); + when(controllerManagementMock.findOldestActiveActionByTarget(Matchers.any())).thenReturn(Optional.empty()); amqpMessageHandlerService.onMessage(message, MessageType.THING_CREATED.name(), TENANT, "vHost"); @@ -364,7 +364,7 @@ public class AmqpMessageHandlerServiceTest { when(controllerManagementMock.addUpdateActionStatus(Matchers.any())).thenReturn(action); when(entityFactoryMock.generateActionStatus()).thenReturn(new JpaActionStatus()); // for the test the same action can be used - when(controllerManagementMock.findOldestActionByTargetAndActive(Matchers.any())) + when(controllerManagementMock.findOldestActiveActionByTarget(Matchers.any())) .thenReturn(Optional.of(action)); final List softwareModuleList = createSoftwareModuleList(); diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java index 14780cee6..1cc752ea7 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java @@ -112,7 +112,7 @@ public interface ControllerManagement { * @return a list of actions assigned to given target which are active */ @PreAuthorize(SpringEvalExpressions.IS_CONTROLLER) - List findActionByTargetAndActive(@NotNull Target target); + List findActiveActionByTarget(@NotNull Target target); /** * Retrieves oldest {@link Action} that is active and assigned to a @@ -123,7 +123,7 @@ public interface ControllerManagement { * @return a list of actions assigned to given target which are active */ @PreAuthorize(SpringEvalExpressions.IS_CONTROLLER) - Optional findOldestActionByTargetAndActive(@NotNull Target target); + Optional findOldestActiveActionByTarget(@NotNull Target target); /** * Get the {@link Action} entity for given actionId with all lazy diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaControllerManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaControllerManagement.java index 7d02b3bd8..f38eac00f 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaControllerManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaControllerManagement.java @@ -157,12 +157,12 @@ public class JpaControllerManagement implements ControllerManagement { } @Override - public List findActionByTargetAndActive(final Target target) { + public List findActiveActionByTarget(final Target target) { return actionRepository.findByTargetAndActiveOrderByIdAsc((JpaTarget) target, true); } @Override - public Optional findOldestActionByTargetAndActive(final Target target) { + public Optional findOldestActiveActionByTarget(final Target target) { return actionRepository.findFirstByTargetAndActiveOrderByIdAsc((JpaTarget) target, true); } From d51497669a2585f6f57b691696b14cdf7a14eba7 Mon Sep 17 00:00:00 2001 From: kaizimmerm Date: Wed, 7 Sep 2016 13:37:26 +0200 Subject: [PATCH 10/15] Removed dead code Signed-off-by: kaizimmerm --- .../scenarios/ConfigurableScenario.java | 22 ++----------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/ConfigurableScenario.java b/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/ConfigurableScenario.java index 5eae96931..1b461b178 100644 --- a/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/ConfigurableScenario.java +++ b/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/ConfigurableScenario.java @@ -9,7 +9,6 @@ package org.eclipse.hawkbit.mgmt.client.scenarios; import java.util.List; -import java.util.Random; import java.util.concurrent.TimeUnit; import org.eclipse.hawkbit.mgmt.client.ClientConfigurationProperties; @@ -159,12 +158,11 @@ public class ConfigurableScenario { private void createDistributionSets(final Scenario scenario) { LOGGER.info("Creating {} distribution sets", scenario.getDistributionSets()); - final byte[] artifact = generateArtifact(scenario); distributionSetResource.createDistributionSets(new DistributionSetBuilder().name(scenario.getDsName()) .type("os_app").version("1.0.").buildAsList(scenario.getDistributionSets())).getBody() .forEach(dsSet -> { - final List modules = addModules(scenario, dsSet, artifact); + final List modules = addModules(scenario, dsSet); final SoftwareModuleAssigmentBuilder assign = new SoftwareModuleAssigmentBuilder(); modules.forEach(module -> assign.id(module.getModuleId())); @@ -174,8 +172,7 @@ public class ConfigurableScenario { LOGGER.info("Creating {} distribution sets -> Done", scenario.getDistributionSets()); } - private List addModules(final Scenario scenario, final MgmtDistributionSet dsSet, - final byte[] artifact) { + private List addModules(final Scenario scenario, final MgmtDistributionSet dsSet) { final List modules = softwareModuleResource .createSoftwareModules(new SoftwareModuleBuilder().name(scenario.getSmFwName() + "-os") .version(dsSet.getVersion()).type("os").build()) @@ -188,21 +185,6 @@ public class ConfigurableScenario { return modules; } - private static byte[] generateArtifact(final Scenario scenario) { - - // Exception squid:S2245 - not used for cryptographic function - @SuppressWarnings("squid:S2245") - final Random random = new Random(); - - // create byte array - final byte[] nbyte = new byte[parseSize(scenario.getArtifactSize())]; - - // put the next byte in the array - random.nextBytes(nbyte); - - return nbyte; - } - private void createTargets(final Scenario scenario) { LOGGER.info("Creating {} targets", scenario.getTargets()); From 9d92e9ddc609566e4186252b778753c7394aaa62 Mon Sep 17 00:00:00 2001 From: kaizimmerm Date: Wed, 7 Sep 2016 17:43:41 +0200 Subject: [PATCH 11/15] Added missing spring cloud dependencies Signed-off-by: kaizimmerm --- examples/hawkbit-example-core-feign-client/pom.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/examples/hawkbit-example-core-feign-client/pom.xml b/examples/hawkbit-example-core-feign-client/pom.xml index 4e881d5ac..c41f7953d 100644 --- a/examples/hawkbit-example-core-feign-client/pom.xml +++ b/examples/hawkbit-example-core-feign-client/pom.xml @@ -32,6 +32,14 @@ org.springframework.cloud spring-cloud-netflix-core + + + org.springframework.cloud + spring-cloud-commons + + + org.springframework.cloud + spring-cloud-context org.slf4j From 0986b9985bede9b3368587d905076efdb425ea57 Mon Sep 17 00:00:00 2001 From: Michael Hirsch Date: Mon, 12 Sep 2016 09:27:43 +0200 Subject: [PATCH 12/15] don't requeue too many status entries ex, fix typo of ex Signed-off-by: Michael Hirsch --- .../eclipse/hawkbit/amqp/AmqpMessageHandlerService.java | 8 ++++---- .../eclipse/hawkbit/repository/ControllerManagement.java | 4 ++-- ...sException.java => TooManyStatusEntriesException.java} | 8 ++++---- .../hawkbit/repository/jpa/JpaControllerManagement.java | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) rename hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/{ToManyStatusEntriesException.java => TooManyStatusEntriesException.java} (81%) diff --git a/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java b/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java index dd152bd5a..1b607f852 100644 --- a/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java +++ b/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java @@ -41,7 +41,7 @@ import org.eclipse.hawkbit.repository.RepositoryConstants; import org.eclipse.hawkbit.repository.eventbus.event.TargetAssignDistributionSetEvent; import org.eclipse.hawkbit.repository.exception.EntityNotFoundException; import org.eclipse.hawkbit.repository.exception.TenantNotExistException; -import org.eclipse.hawkbit.repository.exception.ToManyStatusEntriesException; +import org.eclipse.hawkbit.repository.exception.TooManyStatusEntriesException; import org.eclipse.hawkbit.repository.model.Action; import org.eclipse.hawkbit.repository.model.Action.Status; import org.eclipse.hawkbit.repository.model.ActionStatus; @@ -155,7 +155,7 @@ public class AmqpMessageHandlerService extends BaseAmqpService { return handleAuthentifiactionMessage(message); } catch (final IllegalArgumentException ex) { throw new AmqpRejectAndDontRequeueException("Invalid message!", ex); - } catch (final TenantNotExistException | ToManyStatusEntriesException e) { + } catch (final TenantNotExistException | TooManyStatusEntriesException e) { throw new AmqpRejectAndDontRequeueException(e); } finally { SecurityContextHolder.setContext(oldContext); @@ -196,8 +196,8 @@ public class AmqpMessageHandlerService extends BaseAmqpService { } } catch (final IllegalArgumentException ex) { throw new AmqpRejectAndDontRequeueException("Invalid message!", ex); - } catch (final TenantNotExistException teex) { - throw new AmqpRejectAndDontRequeueException(teex); + } catch (final TenantNotExistException | TooManyStatusEntriesException e) { + throw new AmqpRejectAndDontRequeueException(e); } finally { SecurityContextHolder.setContext(oldContext); } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java index f06621fd4..401004d65 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java @@ -19,7 +19,7 @@ import org.eclipse.hawkbit.repository.eventbus.event.DownloadProgressEvent; import org.eclipse.hawkbit.repository.exception.EntityAlreadyExistsException; import org.eclipse.hawkbit.repository.exception.EntityNotFoundException; import org.eclipse.hawkbit.repository.exception.ToManyAttributeEntriesException; -import org.eclipse.hawkbit.repository.exception.ToManyStatusEntriesException; +import org.eclipse.hawkbit.repository.exception.TooManyStatusEntriesException; import org.eclipse.hawkbit.repository.model.Action; import org.eclipse.hawkbit.repository.model.Action.Status; import org.eclipse.hawkbit.repository.model.ActionStatus; @@ -95,7 +95,7 @@ public interface ControllerManagement { * * @throws EntityAlreadyExistsException * if a given entity already exists - * @throws ToManyStatusEntriesException + * @throws TooManyStatusEntriesException * if more than the allowed number of status entries are * inserted */ diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/ToManyStatusEntriesException.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/TooManyStatusEntriesException.java similarity index 81% rename from hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/ToManyStatusEntriesException.java rename to hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/TooManyStatusEntriesException.java index 7b8f4a1b0..3f3399a88 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/ToManyStatusEntriesException.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/TooManyStatusEntriesException.java @@ -18,7 +18,7 @@ import org.eclipse.hawkbit.exception.AbstractServerRtException; * * */ -public final class ToManyStatusEntriesException extends AbstractServerRtException { +public final class TooManyStatusEntriesException extends AbstractServerRtException { /** * */ @@ -28,7 +28,7 @@ public final class ToManyStatusEntriesException extends AbstractServerRtExceptio * Creates a new FileUploadFailedException with * {@link SpServerError#SP_REST_BODY_NOT_READABLE} error. */ - public ToManyStatusEntriesException() { + public TooManyStatusEntriesException() { super(SpServerError.SP_ACTION_STATUS_TO_MANY_ENTRIES); } @@ -36,7 +36,7 @@ public final class ToManyStatusEntriesException extends AbstractServerRtExceptio * @param cause * for the exception */ - public ToManyStatusEntriesException(final Throwable cause) { + public TooManyStatusEntriesException(final Throwable cause) { super(SpServerError.SP_ACTION_STATUS_TO_MANY_ENTRIES, cause); } @@ -44,7 +44,7 @@ public final class ToManyStatusEntriesException extends AbstractServerRtExceptio * @param message * of the error */ - public ToManyStatusEntriesException(final String message) { + public TooManyStatusEntriesException(final String message) { super(message, SpServerError.SP_ACTION_STATUS_TO_MANY_ENTRIES); } } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaControllerManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaControllerManagement.java index 34160aa37..e0b352e99 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaControllerManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaControllerManagement.java @@ -26,7 +26,7 @@ import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.TenantConfigurationManagement; import org.eclipse.hawkbit.repository.exception.EntityNotFoundException; import org.eclipse.hawkbit.repository.exception.ToManyAttributeEntriesException; -import org.eclipse.hawkbit.repository.exception.ToManyStatusEntriesException; +import org.eclipse.hawkbit.repository.exception.TooManyStatusEntriesException; import org.eclipse.hawkbit.repository.jpa.cache.CacheWriteNotify; import org.eclipse.hawkbit.repository.jpa.model.JpaAction; import org.eclipse.hawkbit.repository.jpa.model.JpaActionStatus; @@ -326,7 +326,7 @@ public class JpaControllerManagement implements ControllerManagement { LOG_DOS.error( "Potential denial of service (DOS) attack identfied. More status entries in the system than permitted ({})!", securityProperties.getDos().getMaxStatusEntriesPerAction()); - throw new ToManyStatusEntriesException( + throw new TooManyStatusEntriesException( String.valueOf(securityProperties.getDos().getMaxStatusEntriesPerAction())); } } From 11aea8ea4da70c3130d5e408d476b6e33990ef63 Mon Sep 17 00:00:00 2001 From: kaizimmerm Date: Mon, 12 Sep 2016 10:29:07 +0200 Subject: [PATCH 13/15] Added defaults Signed-off-by: kaizimmerm --- .../hawkbit/mgmt/rest/api/MgmtDistributionSetRestApi.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetRestApi.java b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetRestApi.java index 0a28c2226..d3439adc6 100644 --- a/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetRestApi.java +++ b/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtDistributionSetRestApi.java @@ -54,8 +54,8 @@ public interface MgmtDistributionSetRestApi { */ @RequestMapping(method = RequestMethod.GET, produces = { "application/hal+json", MediaType.APPLICATION_JSON_VALUE }) ResponseEntity> getDistributionSets( - @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_OFFSET) final int pagingOffsetParam, - @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_LIMIT) final int pagingLimitParam, + @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_OFFSET, defaultValue = MgmtRestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET) final int pagingOffsetParam, + @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_LIMIT, defaultValue = MgmtRestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT) final int pagingLimitParam, @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_SORTING, required = false) final String sortParam, @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_SEARCH, required = false) final String rsqlParam); From 228524dccf830a0fc98e0db8b2a6aea5cc335f14 Mon Sep 17 00:00:00 2001 From: Michael Hirsch Date: Mon, 12 Sep 2016 11:29:04 +0200 Subject: [PATCH 14/15] add dummy artifact upload again Signed-off-by: Michael Hirsch --- .../hawkbit/mgmt/client/Application.java | 28 +++++++++++++-- .../scenarios/ConfigurableScenario.java | 36 +++++++++++++++++-- 2 files changed, 59 insertions(+), 5 deletions(-) diff --git a/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/Application.java b/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/Application.java index aae1bf8da..d94519df2 100644 --- a/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/Application.java +++ b/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/Application.java @@ -9,12 +9,14 @@ package org.eclipse.hawkbit.mgmt.client; import org.eclipse.hawkbit.feign.core.client.FeignClientConfiguration; +import org.eclipse.hawkbit.feign.core.client.IgnoreMultipleConsumersProducersSpringMvcContract; import org.eclipse.hawkbit.mgmt.client.resource.MgmtDistributionSetClientResource; import org.eclipse.hawkbit.mgmt.client.resource.MgmtRolloutClientResource; import org.eclipse.hawkbit.mgmt.client.resource.MgmtSoftwareModuleClientResource; import org.eclipse.hawkbit.mgmt.client.resource.MgmtTargetClientResource; import org.eclipse.hawkbit.mgmt.client.scenarios.ConfigurableScenario; import org.eclipse.hawkbit.mgmt.client.scenarios.CreateStartedRolloutExample; +import org.eclipse.hawkbit.mgmt.client.scenarios.upload.FeignMultipartEncoder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.Banner.Mode; import org.springframework.boot.CommandLineRunner; @@ -23,12 +25,20 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.netflix.feign.EnableFeignClients; +import org.springframework.cloud.netflix.feign.support.ResponseEntityDecoder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; +import org.springframework.hateoas.hal.Jackson2HalModule; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; + +import feign.Feign; import feign.Logger; import feign.auth.BasicAuthRequestInterceptor; +import feign.jackson.JacksonDecoder; +import feign.slf4j.Slf4jLogger; @SpringBootApplication @EnableFeignClients("org.eclipse.hawkbit.mgmt.client.resource") @@ -69,8 +79,9 @@ public class Application implements CommandLineRunner { final MgmtSoftwareModuleClientResource softwareModuleResource, final MgmtTargetClientResource targetResource, final MgmtRolloutClientResource rolloutResource, final ClientConfigurationProperties clientConfigurationProperties) { - return new ConfigurableScenario(distributionSetResource, softwareModuleResource, targetResource, - rolloutResource, clientConfigurationProperties); + return new ConfigurableScenario(distributionSetResource, softwareModuleResource, + uploadSoftwareModule(clientConfigurationProperties), targetResource, rolloutResource, + clientConfigurationProperties); } @Bean @@ -78,6 +89,19 @@ public class Application implements CommandLineRunner { return new CreateStartedRolloutExample(); } + @Bean + public MgmtSoftwareModuleClientResource uploadSoftwareModule(final ClientConfigurationProperties configuration) { + final ObjectMapper mapper = new ObjectMapper() + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .registerModule(new Jackson2HalModule()); + return Feign.builder().contract(new IgnoreMultipleConsumersProducersSpringMvcContract()) + .requestInterceptor( + new BasicAuthRequestInterceptor(configuration.getUsername(), configuration.getPassword())) + .logger(new Slf4jLogger()).encoder(new FeignMultipartEncoder()) + .decoder(new ResponseEntityDecoder(new JacksonDecoder(mapper))) + .target(MgmtSoftwareModuleClientResource.class, configuration.getUrl()); + } + @Bean public Logger.Level feignLoggerLevel() { return Logger.Level.FULL; diff --git a/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/ConfigurableScenario.java b/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/ConfigurableScenario.java index 1b461b178..388516897 100644 --- a/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/ConfigurableScenario.java +++ b/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/scenarios/ConfigurableScenario.java @@ -9,6 +9,7 @@ package org.eclipse.hawkbit.mgmt.client.scenarios; import java.util.List; +import java.util.Random; import java.util.concurrent.TimeUnit; import org.eclipse.hawkbit.mgmt.client.ClientConfigurationProperties; @@ -22,6 +23,7 @@ import org.eclipse.hawkbit.mgmt.client.resource.builder.RolloutBuilder; import org.eclipse.hawkbit.mgmt.client.resource.builder.SoftwareModuleAssigmentBuilder; import org.eclipse.hawkbit.mgmt.client.resource.builder.SoftwareModuleBuilder; import org.eclipse.hawkbit.mgmt.client.resource.builder.TargetBuilder; +import org.eclipse.hawkbit.mgmt.client.scenarios.upload.ArtifactFile; import org.eclipse.hawkbit.mgmt.json.model.PagedList; import org.eclipse.hawkbit.mgmt.json.model.distributionset.MgmtDistributionSet; import org.eclipse.hawkbit.mgmt.json.model.rollout.MgmtRolloutResponseBody; @@ -53,12 +55,16 @@ public class ConfigurableScenario { private final ClientConfigurationProperties clientConfigurationProperties; + private final MgmtSoftwareModuleClientResource uploadSoftwareModule; + public ConfigurableScenario(final MgmtDistributionSetClientResource distributionSetResource, final MgmtSoftwareModuleClientResource softwareModuleResource, - final MgmtTargetClientResource targetResource, final MgmtRolloutClientResource rolloutResource, + final MgmtSoftwareModuleClientResource uploadSoftwareModule, final MgmtTargetClientResource targetResource, + final MgmtRolloutClientResource rolloutResource, final ClientConfigurationProperties clientConfigurationProperties) { this.distributionSetResource = distributionSetResource; this.softwareModuleResource = softwareModuleResource; + this.uploadSoftwareModule = uploadSoftwareModule; this.targetResource = targetResource; this.rolloutResource = rolloutResource; this.clientConfigurationProperties = clientConfigurationProperties; @@ -158,11 +164,12 @@ public class ConfigurableScenario { private void createDistributionSets(final Scenario scenario) { LOGGER.info("Creating {} distribution sets", scenario.getDistributionSets()); + final byte[] artifact = generateArtifact(scenario); distributionSetResource.createDistributionSets(new DistributionSetBuilder().name(scenario.getDsName()) .type("os_app").version("1.0.").buildAsList(scenario.getDistributionSets())).getBody() .forEach(dsSet -> { - final List modules = addModules(scenario, dsSet); + final List modules = addModules(scenario, dsSet, artifact); final SoftwareModuleAssigmentBuilder assign = new SoftwareModuleAssigmentBuilder(); modules.forEach(module -> assign.id(module.getModuleId())); @@ -172,7 +179,8 @@ public class ConfigurableScenario { LOGGER.info("Creating {} distribution sets -> Done", scenario.getDistributionSets()); } - private List addModules(final Scenario scenario, final MgmtDistributionSet dsSet) { + private List addModules(final Scenario scenario, final MgmtDistributionSet dsSet, + final byte[] artifact) { final List modules = softwareModuleResource .createSoftwareModules(new SoftwareModuleBuilder().name(scenario.getSmFwName() + "-os") .version(dsSet.getVersion()).type("os").build()) @@ -182,6 +190,13 @@ public class ConfigurableScenario { .type("application").buildAsList(scenario.getAppModulesPerDistributionSet())) .getBody()); + for (int iArtifact = 0; iArtifact < scenario.getArtifactsPerSM(); iArtifact++) { + modules.forEach(module -> { + final ArtifactFile file = new ArtifactFile("dummyfile.dummy", null, "multipart/form-data", artifact); + uploadSoftwareModule.uploadArtifact(module.getModuleId(), file, null, null, null); + }); + } + return modules; } @@ -208,4 +223,19 @@ public class ConfigurableScenario { } return Integer.valueOf(size); } + + private static byte[] generateArtifact(final Scenario scenario) { + + // Exception squid:S2245 - not used for cryptographic function + @SuppressWarnings("squid:S2245") + final Random random = new Random(); + + // create byte array + final byte[] nbyte = new byte[parseSize(scenario.getArtifactSize())]; + + // put the next byte in the array + random.nextBytes(nbyte); + + return nbyte; + } } From 17e4415b26d6f23ab0176c25101f043c9b2f7414 Mon Sep 17 00:00:00 2001 From: kaizimmerm Date: Tue, 13 Sep 2016 10:07:24 +0200 Subject: [PATCH 15/15] Comment on indexToExpander line Signed-off-by: kaizimmerm --- .../IgnoreMultipleConsumersProducersSpringMvcContract.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/hawkbit-example-core-feign-client/src/main/java/org/eclipse/hawkbit/feign/core/client/IgnoreMultipleConsumersProducersSpringMvcContract.java b/examples/hawkbit-example-core-feign-client/src/main/java/org/eclipse/hawkbit/feign/core/client/IgnoreMultipleConsumersProducersSpringMvcContract.java index 2706af4a3..e2ca27077 100644 --- a/examples/hawkbit-example-core-feign-client/src/main/java/org/eclipse/hawkbit/feign/core/client/IgnoreMultipleConsumersProducersSpringMvcContract.java +++ b/examples/hawkbit-example-core-feign-client/src/main/java/org/eclipse/hawkbit/feign/core/client/IgnoreMultipleConsumersProducersSpringMvcContract.java @@ -40,6 +40,9 @@ public class IgnoreMultipleConsumersProducersSpringMvcContract extends SpringMvc // multiple consumers and produces, see // https://github.com/spring-cloud/spring-cloud-netflix/issues/808 LOGGER.trace(e.getMessage(), e); + + // This line from super is mandatory to avoid that access to the + // expander causes a nullpointer. data.indexToExpander(new LinkedHashMap()); } }