From 92dd6a1a0e6a6d1be7033f8d750aacddded7f0f9 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Tue, 13 Dec 2016 12:29:21 +0100 Subject: [PATCH] Modular hawkBit (#378) * Cleaned up component scan * More flexibility for hawkBit micro services * Introduce spring boot starters * Eclipse Jetty as hawkBit default * Fixed links as prep for wiki removal Signed-off-by: kaizimmerm --- README.md | 29 ++----- .../documentation/guide/feignclient.md | 2 +- .../documentation/guide/runhawkbit.md | 4 +- .../documentation/interfaces/ddi-api.md | 2 +- .../documentation/interfaces/interfaces.md | 8 +- .../interfaces/management-api.md | 2 +- .../documentation/overview/getting-started.md | 2 +- .../documentation/security/security.md | 2 +- .../hawkbit-custom-theme-example/.gitignore | 1 + .../java/org/eclipse/hawkbit/app/Start.java | 2 - examples/hawkbit-device-simulator/README.md | 4 +- examples/hawkbit-example-app/.gitignore | 1 + examples/hawkbit-example-app/pom.xml | 67 +-------------- .../java/org/eclipse/hawkbit/app/Start.java | 6 -- .../scenarios/ConfigurableScenario.java | 15 ++-- .../.gitignore | 1 + .../ArtifactFilesystemConfiguration.java | 11 +-- ...tion.java => DmfApiAutoConfiguration.java} | 15 ++-- .../ArtifactFilesystemAutoConfiguration.java | 28 ++++++ .../JpaRepositoryAutoConfiguration.java | 6 +- .../security/SecurityAutoConfiguration.java | 28 +++++- .../SecurityManagedConfiguration.java | 79 ++++++++++++++--- .../autoconfigure/ui/UIAutoConfiguration.java | 5 ++ ...tion.java => DDiApiAutoConfiguration.java} | 11 ++- .../web/MgmtApiAutoConfiguration.java | 25 ++++++ .../web/WebMvcAutoConfiguration.java | 2 - .../main/resources/META-INF/spring.factories | 7 +- .../hawkbit/ControllerPollProperties.java | 2 - .../repository/ArtifactRepository.java | 15 +++- .../hawkbit/exception/SpServerError.java | 7 +- hawkbit-ddi-resource/pom.xml | 5 ++ .../resource/DdiApiConfiguration.java} | 18 ++-- .../AbstractDDiApiIntegrationTest.java | 17 ++++ .../resource/DdiArtifactDownloadTest.java | 3 +- .../rest/resource/DdiCancelActionTest.java | 3 +- .../ddi/rest/resource/DdiConfigDataTest.java | 3 +- .../rest/resource/DdiDeploymentBaseTest.java | 3 +- .../rest/resource/DdiRootControllerTest.java | 3 +- .../ddi/rest/resource/DosFilterTest.java | 3 +- ...ableAmqp.java => DmfApiConfiguration.java} | 20 ++--- .../AmqpMessageDispatcherServiceTest.java | 14 +-- hawkbit-http-security/pom.xml | 5 ++ hawkbit-mgmt-resource/pom.xml | 7 +- .../resource/MgmtApiConfiguration.java} | 17 ++-- .../AbstractManagementApiIntegrationTest.java | 17 ++++ .../MgmtDistributionSetResourceTest.java | 3 +- .../MgmtDistributionSetTypeResourceTest.java | 3 +- .../resource/MgmtDownloadResourceTest.java | 5 +- .../resource/MgmtRolloutResourceTest.java | 3 +- .../MgmtSoftwareModuleResourceTest.java | 3 +- .../MgmtSoftwareModuleTypeResourceTest.java | 3 +- .../MgmtTargetFilterQueryResourceTest.java | 3 +- .../rest/resource/MgmtTargetResourceTest.java | 3 +- .../hawkbit-repository-api/pom.xml | 6 ++ .../repository/AutoAssignProperties.java | 17 +++- .../hawkbit/repository/RolloutProperties.java | 2 - .../MethodNotSupportedException.java | 53 ++++++++++++ .../eclipse/hawkbit/EnableJpaRepository.java | 32 ------- .../repository/jpa/JpaArtifactManagement.java | 2 +- .../repository/jpa/JpaRolloutManagement.java | 4 - .../RepositoryApplicationConfiguration.java | 23 ++--- .../jpa/autoassign/AutoAssignScheduler.java | 4 +- .../jpa/AbstractJpaIntegrationTest.java | 3 +- .../resources/application-test.properties | 1 - .../hawkbit-repository-test/pom.xml | 14 +++ .../test}/TestConfiguration.java | 23 +++-- .../test/util/AbstractIntegrationTest.java | 4 +- .../RestConfiguration.java | 4 +- .../exception/ResponseExceptionHandler.java | 2 + .../rest/AbstractRestIntegrationTest.java | 5 +- .../ExcludePathAwareShallowETagFilter.java | 14 +-- .../security/HawkbitSecurityProperties.java | 2 - .../security/SecurityTokenGenerator.java | 6 -- .../security/SystemSecurityContext.java | 4 - .../java/org/eclipse/hawkbit/util/SPInfo.java | 39 --------- ...ExcludePathAwareShallowETagFilterTest.java | 3 +- hawkbit-security-integration/pom.xml | 7 +- hawkbit-starters/README.md | 5 ++ .../hawkbit-boot-starter-ddi-api/README.MD | 1 + .../hawkbit-boot-starter-ddi-api/pom.xml | 85 ++++++++++++++++++ .../hawkbit-boot-starter-dmf-api/README.MD | 1 + .../hawkbit-boot-starter-dmf-api/pom.xml | 56 ++++++++++++ .../hawkbit-boot-starter-mgmt-api/README.MD | 1 + .../hawkbit-boot-starter-mgmt-api/pom.xml | 85 ++++++++++++++++++ .../hawkbit-boot-starter-mgmt-ui/README.MD | 1 + .../hawkbit-boot-starter-mgmt-ui/pom.xml | 86 +++++++++++++++++++ .../hawkbit-boot-starter/README.MD | 6 ++ hawkbit-starters/hawkbit-boot-starter/pom.xml | 46 ++++++++++ hawkbit-starters/pom.xml | 30 +++++++ hawkbit-ui/pom.xml | 2 +- .../repository/OffsetBasedPageRequest.java | 69 --------------- .../AsyncVaadinServletConfiguration.java | 5 +- .../eclipse/hawkbit/ui/DefaultHawkbitUI.java | 4 - .../hawkbit/ui/DispatcherRunnable.java | 9 -- .../hawkbit/ui/MgmtUiConfiguration.java | 40 +++++++++ .../SpPermissionChecker.java | 2 +- .../SpringSecurityAtmosphereInterceptor.java | 12 +-- .../org/eclipse/hawkbit/ui/UiProperties.java | 2 - .../ui/artifacts/UploadArtifactView.java | 10 +-- .../footer/SMDeleteActionsLayout.java | 2 +- .../smtable/SoftwareModuleDetails.java | 2 +- .../smtable/SoftwareModuleTableHeader.java | 2 +- .../smtable/SoftwareModuleTableLayout.java | 2 +- .../CreateUpdateSoftwareTypeLayout.java | 2 +- .../artifacts/smtype/SMTypeFilterHeader.java | 2 +- .../artifacts/smtype/SMTypeFilterLayout.java | 2 +- .../ui/artifacts/upload/UploadLayout.java | 22 ++--- .../common/AbstractMetadataPopupLayout.java | 2 +- ...amedVersionedEntityTableDetailsLayout.java | 2 +- .../AbstractTableDetailsLayout.java | 2 +- .../DistributionSetMetadatadetailslayout.java | 2 +- .../SoftwareModuleDetailsTable.java | 2 +- .../SoftwareModuleMetadatadetailslayout.java | 2 +- .../filterlayout/AbstractFilterHeader.java | 2 +- .../footer/AbstractDeleteActionsLayout.java | 2 +- .../hawkbit/ui/common/grid/AbstractGrid.java | 2 +- .../ui/common/grid/AbstractGridHeader.java | 2 +- .../ui/common/table/AbstractTableHeader.java | 2 +- .../common/tagdetails/AbstractTagToken.java | 2 +- .../tagdetails/AbstractTargetTagToken.java | 2 +- .../tagdetails/DistributionTagToken.java | 2 +- .../ui/common/tagdetails/TargetTagToken.java | 2 +- .../criteria/ItemIdClientCriterion.java | 2 +- .../ViewComponentClientCriterion.java | 4 +- .../criteria/ServerItemIdClientCriterion.java | 2 +- .../ServerViewComponentClientCriterion.java | 4 +- .../ui/distributions/DistributionsView.java | 3 +- .../CreateUpdateDistSetTypeLayout.java | 2 +- .../disttype/DSTypeFilterHeader.java | 2 +- .../disttype/DSTypeFilterLayout.java | 2 +- .../dstable/DistributionSetDetails.java | 2 +- .../dstable/DistributionSetTable.java | 2 +- .../dstable/DistributionSetTableHeader.java | 2 +- .../dstable/DistributionSetTableLayout.java | 2 +- .../dstable/DsMetadataPopupLayout.java | 2 +- .../footer/DSDeleteActionsLayout.java | 3 +- .../smtable/SwMetadataPopupLayout.java | 2 +- .../smtable/SwModuleDetails.java | 2 +- .../smtable/SwModuleTableHeader.java | 2 +- .../smtable/SwModuleTableLayout.java | 2 +- .../smtype/DistSMTypeFilterHeader.java | 2 +- .../smtype/DistSMTypeFilterLayout.java | 2 +- .../CreateOrUpdateFilterHeader.java | 2 +- .../FilterManagementView.java | 2 +- .../filtermanagement/TargetFilterHeader.java | 2 +- .../AbstractCreateUpdateTagLayout.java | 2 +- .../ui/layouts/CreateUpdateTypeLayout.java | 2 +- .../hawkbit/ui/management/DeploymentView.java | 2 +- .../dstable/DistributionDetails.java | 2 +- .../management/dstable/DistributionTable.java | 2 +- .../dstable/DistributionTableHeader.java | 2 +- .../dstable/DistributionTableLayout.java | 2 +- ...eateUpdateDistributionTagLayoutWindow.java | 2 +- .../dstag/DistributionTagButtons.java | 2 +- .../dstag/DistributionTagHeader.java | 2 +- .../dstag/DistributionTagLayout.java | 2 +- .../event/DistributionTagDropEvent.java | 2 +- .../footer/DeleteActionsLayout.java | 2 +- .../targettable/TargetBulkTokenTags.java | 2 +- .../TargetBulkUpdateWindowLayout.java | 2 +- .../management/targettable/TargetDetails.java | 2 +- .../management/targettable/TargetTable.java | 2 +- .../targettable/TargetTableHeader.java | 2 +- .../targettable/TargetTableLayout.java | 2 +- .../CreateUpdateTargetTagLayoutWindow.java | 2 +- .../targettag/MultipleTargetFilter.java | 2 +- .../targettag/TargetTagFilterButtons.java | 2 +- .../targettag/TargetTagFilterHeader.java | 2 +- .../targettag/TargetTagFilterLayout.java | 2 +- .../hawkbit/ui/rollout/RolloutView.java | 2 +- .../ui/rollout/rollout/RolloutListGrid.java | 2 +- .../ui/rollout/rollout/RolloutListHeader.java | 2 +- .../ui/rollout/rollout/RolloutListView.java | 2 +- .../rolloutgroup/RolloutGroupListGrid.java | 2 +- .../rolloutgroup/RolloutGroupsListView.java | 2 +- .../hawkbit/ui/utils/HawkbitCommonUtil.java | 1 - ...ringSecurityAtmosphereInterceptorTest.java | 1 + pom.xml | 1 + 178 files changed, 981 insertions(+), 585 deletions(-) create mode 100644 examples/hawkbit-custom-theme-example/.gitignore rename hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/ArtifactStoreAutoConfiguration.java => hawkbit-artifact-repository-filesystem/src/main/java/org/eclipse/hawkbit/artifact/repository/ArtifactFilesystemConfiguration.java (71%) rename hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/amqp/{AmqpAutoConfiguration.java => DmfApiAutoConfiguration.java} (77%) create mode 100644 hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/ArtifactFilesystemAutoConfiguration.java rename hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/web/{ResourceControllerAutoConfiguration.java => DDiApiAutoConfiguration.java} (65%) create mode 100644 hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/web/MgmtApiAutoConfiguration.java rename hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/{EnableDdiApi.java => rest/resource/DdiApiConfiguration.java} (55%) create mode 100644 hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/AbstractDDiApiIntegrationTest.java rename hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/{annotation/EnableAmqp.java => DmfApiConfiguration.java} (52%) rename hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/{EnableMgmtApi.java => rest/resource/MgmtApiConfiguration.java} (55%) create mode 100644 hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/AbstractManagementApiIntegrationTest.java create mode 100644 hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/MethodNotSupportedException.java delete mode 100644 hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/EnableJpaRepository.java rename hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/{ => repository/jpa}/RepositoryApplicationConfiguration.java (94%) rename hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/{ => repository/test}/TestConfiguration.java (91%) rename hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/{configuration => }/RestConfiguration.java (94%) rename hawkbit-security-core/src/main/java/org/eclipse/hawkbit/{ => security}/ExcludePathAwareShallowETagFilter.java (87%) delete mode 100644 hawkbit-security-core/src/main/java/org/eclipse/hawkbit/util/SPInfo.java rename hawkbit-security-core/src/test/java/org/eclipse/hawkbit/{ => security}/ExcludePathAwareShallowETagFilterTest.java (97%) create mode 100644 hawkbit-starters/README.md create mode 100644 hawkbit-starters/hawkbit-boot-starter-ddi-api/README.MD create mode 100644 hawkbit-starters/hawkbit-boot-starter-ddi-api/pom.xml create mode 100644 hawkbit-starters/hawkbit-boot-starter-dmf-api/README.MD create mode 100644 hawkbit-starters/hawkbit-boot-starter-dmf-api/pom.xml create mode 100644 hawkbit-starters/hawkbit-boot-starter-mgmt-api/README.MD create mode 100644 hawkbit-starters/hawkbit-boot-starter-mgmt-api/pom.xml create mode 100644 hawkbit-starters/hawkbit-boot-starter-mgmt-ui/README.MD create mode 100644 hawkbit-starters/hawkbit-boot-starter-mgmt-ui/pom.xml create mode 100644 hawkbit-starters/hawkbit-boot-starter/README.MD create mode 100644 hawkbit-starters/hawkbit-boot-starter/pom.xml create mode 100644 hawkbit-starters/pom.xml delete mode 100644 hawkbit-ui/src/main/java/org/eclipse/hawkbit/repository/OffsetBasedPageRequest.java rename hawkbit-ui/src/main/java/org/eclipse/hawkbit/{push => ui}/AsyncVaadinServletConfiguration.java (97%) create mode 100644 hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/MgmtUiConfiguration.java rename hawkbit-ui/src/main/java/org/eclipse/hawkbit/{repository => ui}/SpPermissionChecker.java (99%) rename hawkbit-ui/src/main/java/org/eclipse/hawkbit/{push => ui}/SpringSecurityAtmosphereInterceptor.java (89%) diff --git a/README.md b/README.md index 6d6921405..2d97de456 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Build: [![Circle CI](https://circleci.com/gh/eclipse/hawkbit.svg?style=shield)]( # Documentation -see [hawkBit Wiki](https://github.com/eclipse/hawkbit/wiki) +see [hawkBit Documentation](https://www.eclipse.org/hawkbit/documentation/overview/introduction.html) # Contact us @@ -27,6 +27,10 @@ https://hawkbit.eu-gb.mybluemix.net/UI/ We are not providing an off the shelf installation ready hawkBit update server. However, we recommend to check out the [Example Application](examples/hawkbit-example-app) for a runtime ready Spring Boot based update server that is empowered by hawkBit. In addition we have [guide](https://github.com/eclipse/hawkbit/wiki/Run-hawkBit) for setting up a complete landscape. +# hawkBit (Spring boot) starters + +Next to the [Example Application](examples/hawkbit-example-app) we are also providing a set of [Spring Boot Starters](hawkbit-starters) to quick start your own [Spring Boot](https://projects.spring.io/spring-boot/) based application. + #### Clone and build hawkBit ``` $ git clone https://github.com/eclipse/hawkbit.git @@ -56,25 +60,4 @@ $ java -jar ./examples/hawkbit-example-mgmt-simulator/target/hawkbit-example-mgm * Rollout Management for large scale rollouts. * Clustering capabilities for the update server. * Upgrade of Spring Boot and Vaadin dependencies. - * And of course tons of usability improvements and bug fixes. - - -# Modules -* `examples` : hawkBit examples -* `hawkbit-artifact-repository-mongo` : Artifact repository implementation to mongoDB. -* `hawkbit-autoconfigure` : Spring-boot auto-configuration. -* `hawkbit-core` : Core elements for internal interfaces and utility classes. -* `hawkbit-ddi-api` : The hawkBit DDI API. -* `hawkbit-ddi-dl-api` : The hawkBit DDI Download API. -* `hawkbit-ddi-resource` : Implementation of the hawkBit DDI API -* `hawkbit-dmf-amqp` : AMQP endpoint implementation for the DMF API. -* `hawkbit-dmf-api` : API for the Device Management Integration. -* `hawkbit-http-security` : Implementation for security filters for HTTP. -* `hawkbit-mgmt-api` : The hawkBit Management API -* `hawkbit-mgmt-resource` : Implementation of the hawkBit Management API -* `hawkbit-repository` : Repository implementation based on SQL for all meta-data. -* `hawkbit-rest-core` : Core elements for the rest modules. -* `hawkbit-security-core` : Core security elements. -* `hawkbit-security-integration` : Security integration elements to integrate security into hawkBit. -* `hawkbit-test-report` : Test reports -* `hawkbit-ui` : Vaadin UI. + * And of course tons of usability improvements and bug fixes. \ No newline at end of file diff --git a/docs/src/main/resources/documentation/guide/feignclient.md b/docs/src/main/resources/documentation/guide/feignclient.md index 560aa7762..aaedf5de8 100644 --- a/docs/src/main/resources/documentation/guide/feignclient.md +++ b/docs/src/main/resources/documentation/guide/feignclient.md @@ -9,7 +9,7 @@ title: Clustering In this guide we describe how to create a [Feign](https://github.com/Netflix/feign) Rest Client based on a [Spring Boot](http://projects.spring.io/spring-boot/) Application. [hawkBit](https://projects.eclipse.org/projects/iot.hawkbit) provides REST interfaces for [Management API](https://github.com/eclipse/hawkbit/tree/master/hawkbit-ddi-api) and [DDI API] (https://github.com/eclipse/hawkbit/tree/master/hawkbit-ddi-api). Using this interfaces you can create a feign client with the help of the [feign inheritance support] (http://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-feign-inheritance). Our [example](https://github.com/eclipse/hawkbit/tree/master/examples) modules demonstrate how to create [Feign](https://github.com/Netflix/feign) client resources. Here you can find the [Management API client resources](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-mgmt-feign-client) and the [DDI client resources](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-ddi-feign-client). A small [simulator application](https://github.com/eclipse/hawkbit/blob/master/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/Application.java) demonstrates how you can interact with the [hawkBit](https://projects.eclipse.org/projects/iot.hawkbit) via the [Management API -](https://github.com/eclipse/hawkbit/wiki/Management-API). +](http://www.eclipse.org/hawkbit/documentation/interfaces/management-api.html). Note: A hawkbit application have to be run. Therefore, you can use our [example application](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-app) diff --git a/docs/src/main/resources/documentation/guide/runhawkbit.md b/docs/src/main/resources/documentation/guide/runhawkbit.md index 7e29a6aa0..9944ad9af 100644 --- a/docs/src/main/resources/documentation/guide/runhawkbit.md +++ b/docs/src/main/resources/documentation/guide/runhawkbit.md @@ -9,7 +9,7 @@ title: Run hawkBit In this guide we describe how to run a full featured hawkBit setup based on a production ready infrastructure. It is based on the _hawkBit_ example modules. We call these _examples_ as we expect that developers who intend to create a _hawkBit_ based IoT application on their own will create a custom [Spring Boot](http://projects.spring.io/spring-boot/) app based on _hawkBit_ as demonstrated with the [hawkBit example app](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-app). -Note: the example app can in fact be run [stand alone](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-app). However, only with an embedded H2, no [Device Management Federation API](https://github.com/eclipse/hawkbit/wiki/Device-Management-Federation-API) and no artifact storage. +Note: the example app can in fact be run [stand alone](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-app). However, only with an embedded H2, no [Device Management Federation API](../interfaces/dmf-api.html) and no artifact storage. This guide will focus on a complete setup that includes all _hawkBit_ features. @@ -99,6 +99,6 @@ However, this is not done by _DMF_ which is in fact used by the device simulator see [device simulator](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-device-simulator) -## Enjoy hawkBit with a real database, artifact storage and all [interfaces](https://github.com/eclipse/hawkbit/wiki/Interfaces) available. +## Enjoy hawkBit with a real database, artifact storage and all [interfaces](../interfaces/interfaces.html) available. ![](../images/gettingStartedResult.png){:width="100%"} diff --git a/docs/src/main/resources/documentation/interfaces/ddi-api.md b/docs/src/main/resources/documentation/interfaces/ddi-api.md index 38b8f2f89..132a60cdf 100644 --- a/docs/src/main/resources/documentation/interfaces/ddi-api.md +++ b/docs/src/main/resources/documentation/interfaces/ddi-api.md @@ -12,7 +12,7 @@ The _hawkbit_ [update server](https://github.com/eclipse/hawkbit) provides REST Note: in DDI the target is identified using a **controllerId**. Controller is used as a term for the actual service/client on the device. That allows users to have in some cases even multiple clients on the same target for different tasks, e.g. Firmware update and App management. # State Machine Mapping -For historical reasons the DDI has a different state machine and status messages than the [Target State Machine](https://github.com/eclipse/hawkbit/wiki/Target-State-Machine) of the _hawkBit_ update server. +For historical reasons the DDI has a different state machine and status messages than the [Target State Machine](../architecture/targetstate.html) of the _hawkBit_ update server. This is kept in order to ensure that _DDI_ stays compatible for devices out there in the field. A future version "2" of _DDI_ might change that. _DDI_ also defines more states than the update server, e.g. multiple DDI states are currently mapped by the _DDI_ implementation to _RUNNING_ state. It is possible that in the future _hawkBit_ will fully leverage these additional states. diff --git a/docs/src/main/resources/documentation/interfaces/interfaces.md b/docs/src/main/resources/documentation/interfaces/interfaces.md index 0ee3b897e..c11154ddd 100644 --- a/docs/src/main/resources/documentation/interfaces/interfaces.md +++ b/docs/src/main/resources/documentation/interfaces/interfaces.md @@ -10,20 +10,20 @@ title: Interfaces # Graphical User Interface -To get started _hawkBit_ offers a [Management UI](https://github.com/eclipse/hawkbit/wiki/Management-UI) that allows operators to manage the repository and trigger provisioning operations. +To get started _hawkBit_ offers a [Management UI](management-ui.html) that allows operators to manage the repository and trigger provisioning operations. In addition Eclipse _hawkBit_ offers developers multiple options to integrate. # Application Integration -The _hawkBit_ [Management API](https://github.com/eclipse/hawkbit/wiki/Management-API) allows applications to manage the repository and trigger provisioning operations. It is in general feature compliant with the _Management UI_. However, small differences may occur here and there. The authentication and authorization structure is identical, i.e. a user can login both at Management API and UI with the same credentials and has the same permissions available. +The _hawkBit_ [Management API](management-api.html) allows applications to manage the repository and trigger provisioning operations. It is in general feature compliant with the _Management UI_. However, small differences may occur here and there. The authentication and authorization structure is identical, i.e. a user can login both at Management API and UI with the same credentials and has the same permissions available. # Device Integration For device integration two options exist. -The [Direct Device Integration API](https://github.com/eclipse/hawkbit/wiki/Direct-Device-Integration-API) allows direct integration from the device to the _hawkBit_ server. It has been designed with simplicity in mind as its is fully focused on software update. It allows device integrators to separate concerns by means of having distinguished channels for business data and general device management tasks on one side and software update on the other. As a result it is possible to keep the _lifesaving_ provisioning process controller on the device separate from the more complex business functionality. A benefit of such an architecture should not be underestimated. +The [Direct Device Integration API](ddi-api.html) allows direct integration from the device to the _hawkBit_ server. It has been designed with simplicity in mind as its is fully focused on software update. It allows device integrators to separate concerns by means of having distinguished channels for business data and general device management tasks on one side and software update on the other. As a result it is possible to keep the _lifesaving_ provisioning process controller on the device separate from the more complex business functionality. A benefit of such an architecture should not be underestimated. As result of such a simple HTTP/REST/JSON based API even a major back-end migration or disaster can be covered with simple web server hosting a text file that contains only the command to update one more time to execute a migration on the device. The API was designed on purpose in way to have that last resort even if the plan is that this will never be necessary. -The [Device Management Federation API](https://github.com/eclipse/hawkbit/wiki/Device-Management-Federation-API) however allows to combine the business data and _hawkBit_ connectivity. This is especially usefull if a constrained device cannot handle a TLS/HTTP connection, is supporting a standard device management protocol that covers also the software update part (e.g. TR-069, OMA-DM, LWM2M) or the device is already connected and _hawkBit_ is introduced later on. +The [Device Management Federation API](dmf-api.html) however allows to combine the business data and _hawkBit_ connectivity. This is especially usefull if a constrained device cannot handle a TLS/HTTP connection, is supporting a standard device management protocol that covers also the software update part (e.g. TR-069, OMA-DM, LWM2M) or the device is already connected and _hawkBit_ is introduced later on. The decision for the right device integration path is up to the integration party. diff --git a/docs/src/main/resources/documentation/interfaces/management-api.md b/docs/src/main/resources/documentation/interfaces/management-api.md index 599e46faf..21d075ffc 100644 --- a/docs/src/main/resources/documentation/interfaces/management-api.md +++ b/docs/src/main/resources/documentation/interfaces/management-api.md @@ -46,7 +46,7 @@ For all requests an `Authorization` header has to be set. * Username: `Tenant\username` * Password: `password` -Also have a look to the [Security](https://github.com/eclipse/hawkbit/wiki/Security) chapter. +Also have a look to the [Security](../security/security.html) chapter. In addition, for POST and PUT requests the `Content-Type` header has to be set. Accepted content-types are. diff --git a/docs/src/main/resources/documentation/overview/getting-started.md b/docs/src/main/resources/documentation/overview/getting-started.md index 567787945..fe01d71ff 100644 --- a/docs/src/main/resources/documentation/overview/getting-started.md +++ b/docs/src/main/resources/documentation/overview/getting-started.md @@ -13,7 +13,7 @@ We offer a sandbox installation that is free for everyone to try out hawkBit. Ho # Compile, Run and Getting Started -We are not providing an off the shelf installation ready hawkBit update server. However, we recommend to check out the [Example Application](examples/hawkbit-example-app) for a runtime ready Spring Boot based update server that is empowered by hawkBit. In addition we have [guide](https://github.com/eclipse/hawkbit/wiki/Run-hawkBit) for setting up a complete landscape. +We are not providing an off the shelf installation ready hawkBit update server. However, we recommend to check out the [Example Application](examples/hawkbit-example-app) for a runtime ready Spring Boot based update server that is empowered by hawkBit. In addition we have [guide](../guide/runhawkbit.html) for setting up a complete landscape. #### Clone and build hawkBit {% highlight bash %} diff --git a/docs/src/main/resources/documentation/security/security.md b/docs/src/main/resources/documentation/security/security.md index 5cace28b8..51242c01f 100644 --- a/docs/src/main/resources/documentation/security/security.md +++ b/docs/src/main/resources/documentation/security/security.md @@ -29,7 +29,7 @@ Host: your.hawkBit.server Authorization: TargetToken bH7XXAprK1ChnLfKSdtlsp7NOlPnZAYY ``` -The target security token is provided in [DMF API](https://github.com/eclipse/hawkbit/wiki/Device-Management-Federation-API) as part of the update message in order to allow DMF clients to leverage the feature or can it be manually retrieved per target by [Management API](https://github.com/eclipse/hawkbit/wiki/Management-API) or in the [Management UI](https://github.com/eclipse/hawkbit/wiki/Management-UI) in the target details. +The target security token is provided in [DMF API](../interfaces/dmf-api.html) as part of the update message in order to allow DMF clients to leverage the feature or can it be manually retrieved per target by [Management API](../interfaces/management-api.html) or in the [Management UI](../interfaces/management-ui.html) in the target details. Note: needs to be enabled in your _hawkBit_ installation **and** in the tenant configuration. That allows both the operator as well as the individual customer (if run in a multi-tenant setup) to enable this access method. See [DdiSecurityProperties](https://github.com/eclipse/hawkbit/blob/master/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/DdiSecurityProperties.java) for system wide enablement. diff --git a/examples/hawkbit-custom-theme-example/.gitignore b/examples/hawkbit-custom-theme-example/.gitignore new file mode 100644 index 000000000..6a3b2b405 --- /dev/null +++ b/examples/hawkbit-custom-theme-example/.gitignore @@ -0,0 +1 @@ +/.springBeans diff --git a/examples/hawkbit-custom-theme-example/src/main/java/org/eclipse/hawkbit/app/Start.java b/examples/hawkbit-custom-theme-example/src/main/java/org/eclipse/hawkbit/app/Start.java index 7f80eb05b..fdad8a999 100644 --- a/examples/hawkbit-custom-theme-example/src/main/java/org/eclipse/hawkbit/app/Start.java +++ b/examples/hawkbit-custom-theme-example/src/main/java/org/eclipse/hawkbit/app/Start.java @@ -8,7 +8,6 @@ package org.eclipse.hawkbit.app; * http://www.eclipse.org/legal/epl-v10.html */ -import org.eclipse.hawkbit.EnableJpaRepository; import org.eclipse.hawkbit.autoconfigure.security.EnableHawkbitManagedSecurityConfiguration; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -22,7 +21,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @EnableHawkbitManagedSecurityConfiguration // Exception squid:S1118 - Spring boot standard behavior @SuppressWarnings({ "squid:S1118" }) -@EnableJpaRepository public class Start { /** * Main method to start the spring-boot application. diff --git a/examples/hawkbit-device-simulator/README.md b/examples/hawkbit-device-simulator/README.md index 0d73f3f3f..79c0217d8 100644 --- a/examples/hawkbit-device-simulator/README.md +++ b/examples/hawkbit-device-simulator/README.md @@ -70,7 +70,7 @@ Example: for 10 simulated devices that start with the name prefix "activeSim": http://localhost:8083/start?amount=10&name=activeSim ``` -Example: for 5 simulated devices that start with the name prefix "ddi" using the Direct Device Integration API (http): +Example: for 5 simulated devices that start with the name prefix "ddi" using the Direct Device Integration API (http) authenticated by given gateway token, a pool interval of 10 seconds and a custom port for the DDI service.: ``` -http://localhost:8083/start?amount=5&name=ddi?api=ddi +http://localhost:8083/start?amount=5&name=ddi&api=ddi&gatewaytoken=d5F2mmlARiMuMOquRmLlxW4xZFHy4mEV&polldelay=10&endpoint=http://localhost:8085 ``` diff --git a/examples/hawkbit-example-app/.gitignore b/examples/hawkbit-example-app/.gitignore index 0b628eb5a..362e864a1 100644 --- a/examples/hawkbit-example-app/.gitignore +++ b/examples/hawkbit-example-app/.gitignore @@ -1,2 +1,3 @@ /target/ /artifactrepo/* +/.springBeans diff --git a/examples/hawkbit-example-app/pom.xml b/examples/hawkbit-example-app/pom.xml index 5ec64d3fa..4af34a227 100644 --- a/examples/hawkbit-example-app/pom.xml +++ b/examples/hawkbit-example-app/pom.xml @@ -17,7 +17,7 @@ 0.2.0-SNAPSHOT hawkbit-example-app - hawkBit-example :: UI Application + hawkBit-example :: Update Server @@ -56,76 +56,17 @@ - org.eclipse.hawkbit - hawkbit-autoconfigure + hawkbit-boot-starter ${project.version} - - org.eclipse.hawkbit - hawkbit-mgmt-resource - ${project.version} - - - org.eclipse.hawkbit - hawkbit-ddi-resource - ${project.version} - - - org.eclipse.hawkbit - hawkbit-dmf-amqp - ${project.version} - - - org.eclipse.hawkbit - hawkbit-ui - ${project.version} - - - org.eclipse.hawkbit - hawkbit-security-integration - ${project.version} - - - org.eclipse.hawkbit - hawkbit-http-security - ${project.version} - - - org.eclipse.hawkbit - hawkbit-repository-jpa - ${project.version} - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter - - - org.springframework.security - spring-security-aspects - + com.h2database h2 - + - - - com.vaadin - vaadin-client - - - com.vaadin.external.gwt - gwt-elemental - - - diff --git a/examples/hawkbit-example-app/src/main/java/org/eclipse/hawkbit/app/Start.java b/examples/hawkbit-example-app/src/main/java/org/eclipse/hawkbit/app/Start.java index 95fb39147..39b8cc4e6 100644 --- a/examples/hawkbit-example-app/src/main/java/org/eclipse/hawkbit/app/Start.java +++ b/examples/hawkbit-example-app/src/main/java/org/eclipse/hawkbit/app/Start.java @@ -8,10 +8,7 @@ */ package org.eclipse.hawkbit.app; -import org.eclipse.hawkbit.EnableJpaRepository; import org.eclipse.hawkbit.autoconfigure.security.EnableHawkbitManagedSecurityConfiguration; -import org.eclipse.hawkbit.ddi.EnableDdiApi; -import org.eclipse.hawkbit.mgmt.EnableMgmtApi; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -22,9 +19,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; */ @SpringBootApplication @EnableHawkbitManagedSecurityConfiguration -@EnableMgmtApi -@EnableDdiApi -@EnableJpaRepository // Exception squid:S1118 - Spring boot standard behavior @SuppressWarnings({ "squid:S1118" }) public class Start { 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 c71a002ba..a87e9ece9 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 @@ -112,10 +112,6 @@ public class ConfigurableScenario { runRollouts(scenario); } - if (scenario.isRunRollouts()) { - runRollouts(scenario); - } - if (scenario.isRunSemiAutomaticRollouts() && !scenario.getDeviceGroups().isEmpty()) { runSemiAutomaticRollouts(scenario); } @@ -217,7 +213,7 @@ public class ConfigurableScenario { // start the created Rollout rolloutResource.start(rolloutResponseBody.getRolloutId()); - waitUntilRolloutIsComplete(scenario); + waitUntilRolloutIsComplete(rolloutResponseBody.getRolloutId()); LOGGER.info("Run rollout for set {} -> Done", set.getDsId()); } @@ -256,20 +252,19 @@ public class ConfigurableScenario { // start the created Rollout rolloutResource.start(rolloutResponseBody.getRolloutId()); - waitUntilRolloutIsComplete(scenario); + waitUntilRolloutIsComplete(rolloutResponseBody.getRolloutId()); LOGGER.info("Run rollout for set {} -> Done", set.getDsId()); } - private void waitUntilRolloutIsComplete(final Scenario scenario) { + private void waitUntilRolloutIsComplete(final Long id) { do { try { - TimeUnit.SECONDS.sleep(35); + TimeUnit.SECONDS.sleep(5); } catch (final InterruptedException e) { LOGGER.warn("Interrupted!"); Thread.currentThread().interrupt(); } - } while (targetResource.getTargets(0, 1, null, "updateStatus==IN_SYNC").getBody().getTotal() < scenario - .getTargets()); + } while (!"FINISHED".equalsIgnoreCase(rolloutResource.getRollout(id).getBody().getStatus())); } private void waitUntilRolloutIsReady(final Long id) { diff --git a/hawkbit-artifact-repository-filesystem/.gitignore b/hawkbit-artifact-repository-filesystem/.gitignore index 2316d547d..d10db0bcb 100644 --- a/hawkbit-artifact-repository-filesystem/.gitignore +++ b/hawkbit-artifact-repository-filesystem/.gitignore @@ -1 +1,2 @@ /artifactrepo/* +/.apt_generated/ diff --git a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/ArtifactStoreAutoConfiguration.java b/hawkbit-artifact-repository-filesystem/src/main/java/org/eclipse/hawkbit/artifact/repository/ArtifactFilesystemConfiguration.java similarity index 71% rename from hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/ArtifactStoreAutoConfiguration.java rename to hawkbit-artifact-repository-filesystem/src/main/java/org/eclipse/hawkbit/artifact/repository/ArtifactFilesystemConfiguration.java index f75343538..bd4dd90f6 100644 --- a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/ArtifactStoreAutoConfiguration.java +++ b/hawkbit-artifact-repository-filesystem/src/main/java/org/eclipse/hawkbit/artifact/repository/ArtifactFilesystemConfiguration.java @@ -6,23 +6,19 @@ * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ -package org.eclipse.hawkbit.autoconfigure.repository; +package org.eclipse.hawkbit.artifact.repository; -import org.eclipse.hawkbit.artifact.repository.ArtifactFilesystemProperties; -import org.eclipse.hawkbit.artifact.repository.ArtifactFilesystemRepository; -import org.eclipse.hawkbit.artifact.repository.ArtifactRepository; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** - * Auto configuration for the {@link ArtifactFilesystemRepository}. + * Configuration for the {@link ArtifactFilesystemRepository}. */ @Configuration -@ConditionalOnMissingBean(ArtifactRepository.class) @EnableConfigurationProperties(ArtifactFilesystemProperties.class) -public class ArtifactStoreAutoConfiguration { +public class ArtifactFilesystemConfiguration { /** * @param artifactFilesystemProperties @@ -30,6 +26,7 @@ public class ArtifactStoreAutoConfiguration { * @return Default {@link ArtifactRepository} implementation. */ @Bean + @ConditionalOnMissingBean public ArtifactRepository artifactRepository(final ArtifactFilesystemProperties artifactFilesystemProperties) { return new ArtifactFilesystemRepository(artifactFilesystemProperties); } diff --git a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/amqp/AmqpAutoConfiguration.java b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/amqp/DmfApiAutoConfiguration.java similarity index 77% rename from hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/amqp/AmqpAutoConfiguration.java rename to hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/amqp/DmfApiAutoConfiguration.java index 3e1f48c27..e03a6a9f2 100644 --- a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/amqp/AmqpAutoConfiguration.java +++ b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/amqp/DmfApiAutoConfiguration.java @@ -8,25 +8,22 @@ */ package org.eclipse.hawkbit.autoconfigure.amqp; -import org.eclipse.hawkbit.amqp.AmqpConfiguration; -import org.eclipse.hawkbit.amqp.annotation.EnableAmqp; +import org.eclipse.hawkbit.amqp.DmfApiConfiguration; import org.springframework.amqp.rabbit.listener.ConditionalRejectingErrorHandler; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.springframework.util.ErrorHandler; /** - * The amqp autoconfiguration. - * - * - * + * The AMQP 0.9 based device Management Federation API (DMF) auto configuration. */ @Configuration -@ConditionalOnClass(value = AmqpConfiguration.class) -@EnableAmqp -public class AmqpAutoConfiguration { +@ConditionalOnClass(DmfApiConfiguration.class) +@Import(DmfApiConfiguration.class) +public class DmfApiAutoConfiguration { /** * Create default error handler bean. diff --git a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/ArtifactFilesystemAutoConfiguration.java b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/ArtifactFilesystemAutoConfiguration.java new file mode 100644 index 000000000..2ff5d61cd --- /dev/null +++ b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/ArtifactFilesystemAutoConfiguration.java @@ -0,0 +1,28 @@ +/** + * Copyright (c) 2015 Bosch Software Innovations GmbH and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + */ +package org.eclipse.hawkbit.autoconfigure.repository; + +import org.eclipse.hawkbit.artifact.repository.ArtifactFilesystemConfiguration; +import org.eclipse.hawkbit.artifact.repository.ArtifactFilesystemRepository; +import org.eclipse.hawkbit.artifact.repository.ArtifactRepository; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; + +/** + * Auto configuration for the {@link ArtifactFilesystemRepository}. + */ +@Configuration +@ConditionalOnMissingBean(ArtifactRepository.class) +@ConditionalOnClass({ ArtifactFilesystemConfiguration.class }) +@Import(ArtifactFilesystemConfiguration.class) +public class ArtifactFilesystemAutoConfiguration { + +} diff --git a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/JpaRepositoryAutoConfiguration.java b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/JpaRepositoryAutoConfiguration.java index c2a2e8759..73c6935d5 100644 --- a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/JpaRepositoryAutoConfiguration.java +++ b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/JpaRepositoryAutoConfiguration.java @@ -8,7 +8,7 @@ */ package org.eclipse.hawkbit.autoconfigure.repository; -import org.eclipse.hawkbit.EnableJpaRepository; +import org.eclipse.hawkbit.repository.jpa.RepositoryApplicationConfiguration; import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer; import org.eclipse.hawkbit.repository.rsql.VirtualPropertyResolver; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -22,8 +22,8 @@ import org.springframework.context.annotation.Import; * */ @Configuration -@ConditionalOnClass({ EnableJpaRepository.class }) -@Import({ EnableJpaRepository.class }) +@ConditionalOnClass({ RepositoryApplicationConfiguration.class }) +@Import({ RepositoryApplicationConfiguration.class }) public class JpaRepositoryAutoConfiguration { /** diff --git a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/security/SecurityAutoConfiguration.java b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/security/SecurityAutoConfiguration.java index d74b27dc8..84ffb994d 100644 --- a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/security/SecurityAutoConfiguration.java +++ b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/security/SecurityAutoConfiguration.java @@ -10,8 +10,11 @@ package org.eclipse.hawkbit.autoconfigure.security; import org.eclipse.hawkbit.im.authentication.PermissionService; import org.eclipse.hawkbit.security.DdiSecurityProperties; +import org.eclipse.hawkbit.security.HawkbitSecurityProperties; import org.eclipse.hawkbit.security.SecurityContextTenantAware; +import org.eclipse.hawkbit.security.SecurityTokenGenerator; import org.eclipse.hawkbit.security.SpringSecurityAuditorAware; +import org.eclipse.hawkbit.security.SystemSecurityContext; import org.eclipse.hawkbit.tenancy.TenantAware; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -22,12 +25,9 @@ import org.springframework.data.domain.AuditorAware; /** * {@link EnableAutoConfiguration Auto-configuration} for security. - * - * - * */ @Configuration -@EnableConfigurationProperties(DdiSecurityProperties.class) +@EnableConfigurationProperties({ DdiSecurityProperties.class, HawkbitSecurityProperties.class }) public class SecurityAutoConfiguration { /** @@ -62,4 +62,24 @@ public class SecurityAutoConfiguration { return new SpringSecurityAuditorAware(); } + /** + * @param tenantAware + * singleton bean + * @return tenantAware {@link SystemSecurityContext} + */ + @Bean + @ConditionalOnMissingBean + public SystemSecurityContext systemSecurityContext(final TenantAware tenantAware) { + return new SystemSecurityContext(tenantAware); + } + + /** + * @return {@link SecurityTokenGenerator} bean + */ + @Bean + @ConditionalOnMissingBean + public SecurityTokenGenerator securityTokenGenerator() { + return new SecurityTokenGenerator(); + } + } diff --git a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/security/SecurityManagedConfiguration.java b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/security/SecurityManagedConfiguration.java index 42c69a1e0..d42060822 100644 --- a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/security/SecurityManagedConfiguration.java +++ b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/security/SecurityManagedConfiguration.java @@ -22,19 +22,21 @@ import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; -import org.eclipse.hawkbit.ExcludePathAwareShallowETagFilter; import org.eclipse.hawkbit.cache.DownloadIdCache; +import org.eclipse.hawkbit.ddi.rest.resource.DdiApiConfiguration; import org.eclipse.hawkbit.im.authentication.SpPermission; import org.eclipse.hawkbit.im.authentication.SpPermission.SpringEvalExpressions; import org.eclipse.hawkbit.im.authentication.TenantUserPasswordAuthenticationToken; import org.eclipse.hawkbit.im.authentication.UserAuthenticationFilter; import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; +import org.eclipse.hawkbit.mgmt.rest.resource.MgmtApiConfiguration; import org.eclipse.hawkbit.repository.ControllerManagement; import org.eclipse.hawkbit.repository.SystemManagement; import org.eclipse.hawkbit.repository.TenantConfigurationManagement; import org.eclipse.hawkbit.security.ControllerTenantAwareAuthenticationDetailsSource; import org.eclipse.hawkbit.security.DdiSecurityProperties; import org.eclipse.hawkbit.security.DosFilter; +import org.eclipse.hawkbit.security.ExcludePathAwareShallowETagFilter; import org.eclipse.hawkbit.security.HawkbitSecurityProperties; import org.eclipse.hawkbit.security.HttpControllerPreAuthenticateAnonymousDownloadFilter; import org.eclipse.hawkbit.security.HttpControllerPreAuthenticateSecurityTokenFilter; @@ -44,9 +46,11 @@ import org.eclipse.hawkbit.security.HttpDownloadAuthenticationFilter; import org.eclipse.hawkbit.security.PreAuthTokenSourceTrustAuthenticationProvider; import org.eclipse.hawkbit.security.SystemSecurityContext; import org.eclipse.hawkbit.tenancy.TenantAware; +import org.eclipse.hawkbit.ui.MgmtUiConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.security.SecurityProperties; import org.springframework.boot.context.embedded.FilterRegistrationBean; @@ -96,9 +100,6 @@ public class SecurityManagedConfiguration { private static final Logger LOG = LoggerFactory.getLogger(SecurityManagedConfiguration.class); - @Autowired - private HawkbitSecurityProperties securityProperties; - @Autowired private AuthenticationConfiguration configuration; @@ -131,6 +132,7 @@ public class SecurityManagedConfiguration { */ @Configuration @Order(300) + @ConditionalOnClass(DdiApiConfiguration.class) static class ControllerSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter { @Autowired @@ -151,6 +153,26 @@ public class SecurityManagedConfiguration { @Autowired private SystemSecurityContext systemSecurityContext; + /** + * Filter to protect the hawkBit server DDI interface against to many + * requests. + * + * @param securityProperties + * for filter configuration + * + * @return the spring filter registration bean for registering a denial + * of service protection filter in the filter chain + */ + @Bean + @ConditionalOnClass(DdiApiConfiguration.class) + public FilterRegistrationBean dosDDiFilter(final HawkbitSecurityProperties securityProperties) { + + final FilterRegistrationBean filterRegBean = dosFilter(securityProperties); + filterRegBean.addUrlPatterns("/{tenant}/controller/v1/**"); + + return filterRegBean; + } + @Override protected void configure(final HttpSecurity http) throws Exception { @@ -221,14 +243,26 @@ public class SecurityManagedConfiguration { } /** - * Filter to protect the SP server against denial of service attacks. + * Filter to protect the hawkBit server system management interface against + * to many requests. + * + * @param securityProperties + * for filter configuration * - * @return he spring filter registration bean for registering an denial of + * @return the spring filter registration bean for registering a denial of * service protection filter in the filter chain */ @Bean - @Order(50) - public FilterRegistrationBean dosFilter() { + @Order(52) + public FilterRegistrationBean dosSystemFilter(final HawkbitSecurityProperties securityProperties) { + + final FilterRegistrationBean filterRegBean = dosFilter(securityProperties); + filterRegBean.addUrlPatterns("/system/*"); + + return filterRegBean; + } + + private static FilterRegistrationBean dosFilter(final HawkbitSecurityProperties securityProperties) { final FilterRegistrationBean filterRegBean = new FilterRegistrationBean(); @@ -236,7 +270,6 @@ public class SecurityManagedConfiguration { securityProperties.getDos().getFilter().getMaxWrite(), securityProperties.getDos().getFilter().getWhitelist(), securityProperties.getClients().getBlacklist(), securityProperties.getClients().getRemoteIpHeader())); - filterRegBean.addUrlPatterns("/{tenant}/controller/v1/*", "/rest/*"); return filterRegBean; } @@ -268,6 +301,7 @@ public class SecurityManagedConfiguration { */ @Configuration @Order(350) + @ConditionalOnClass(MgmtApiConfiguration.class) public static class RestSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter { @Autowired @@ -276,15 +310,31 @@ public class SecurityManagedConfiguration { @Autowired private SystemManagement systemManagement; - @Autowired - private TenantAware tenantAware; - @Autowired private SecurityProperties springSecurityProperties; @Autowired private SystemSecurityContext systemSecurityContext; + /** + * Filter to protect the hawkBit server Management interface against to + * many requests. + * + * @param securityProperties + * for filter configuration + * + * @return the spring filter registration bean for registering a denial + * of service protection filter in the filter chain + */ + @Bean + public FilterRegistrationBean dosMgmtFilter(final HawkbitSecurityProperties securityProperties) { + + final FilterRegistrationBean filterRegBean = dosFilter(securityProperties); + filterRegBean.addUrlPatterns("/rest/**"); + + return filterRegBean; + } + @Override protected void configure(final HttpSecurity http) throws Exception { @@ -330,6 +380,7 @@ public class SecurityManagedConfiguration { @Configuration @Order(400) @EnableVaadinSecurity + @ConditionalOnClass(MgmtUiConfiguration.class) public static class UISecurityConfigurationAdapter extends WebSecurityConfigurerAdapter { @Autowired private VaadinSecurityContext vaadinSecurityContext; @@ -417,8 +468,7 @@ public class SecurityManagedConfiguration { @Override public void configure(final WebSecurity webSecurity) throws Exception { - webSecurity.ignoring().antMatchers("/documentation/**", "/VAADIN/**", "/*.*", "/v2/api-docs/**", - "/docs/**"); + webSecurity.ignoring().antMatchers("/documentation/**", "/VAADIN/**", "/*.*", "/docs/**"); } } @@ -428,6 +478,7 @@ public class SecurityManagedConfiguration { @Configuration @EnableWebSecurity @Order(200) + @ConditionalOnClass(DdiApiConfiguration.class) public static class IdRestSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter { @Autowired diff --git a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/ui/UIAutoConfiguration.java b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/ui/UIAutoConfiguration.java index 71e0a904d..4ff89d2c6 100644 --- a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/ui/UIAutoConfiguration.java +++ b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/ui/UIAutoConfiguration.java @@ -11,14 +11,17 @@ package org.eclipse.hawkbit.autoconfigure.ui; import java.util.concurrent.ScheduledExecutorService; import org.eclipse.hawkbit.DistributedResourceBundleMessageSource; +import org.eclipse.hawkbit.ui.MgmtUiConfiguration; import org.eclipse.hawkbit.ui.push.DelayedEventBusPushStrategy; import org.eclipse.hawkbit.ui.push.EventPushStrategy; import org.eclipse.hawkbit.ui.push.HawkbitEventProvider; import org.eclipse.hawkbit.ui.push.UIEventProvider; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.vaadin.spring.annotation.EnableVaadinExtensions; import org.vaadin.spring.events.EventBus.UIEventBus; import org.vaadin.spring.events.annotation.EnableEventBus; @@ -33,6 +36,8 @@ import com.vaadin.spring.annotation.UIScope; @EnableVaadinSecurity @EnableVaadinExtensions @EnableEventBus +@ConditionalOnClass(MgmtUiConfiguration.class) +@Import(MgmtUiConfiguration.class) public class UIAutoConfiguration { /** diff --git a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/web/ResourceControllerAutoConfiguration.java b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/web/DDiApiAutoConfiguration.java similarity index 65% rename from hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/web/ResourceControllerAutoConfiguration.java rename to hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/web/DDiApiAutoConfiguration.java index ee54995c8..82516be19 100644 --- a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/web/ResourceControllerAutoConfiguration.java +++ b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/web/DDiApiAutoConfiguration.java @@ -8,19 +8,18 @@ */ package org.eclipse.hawkbit.autoconfigure.web; -import org.eclipse.hawkbit.ddi.EnableDdiApi; -import org.eclipse.hawkbit.mgmt.EnableMgmtApi; +import org.eclipse.hawkbit.ddi.rest.resource.DdiApiConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; /** - * Auto-Configuration for enabling the REST-Resources. + * Auto-Configuration for enabling the DDI REST-Resources. * */ @Configuration -@ConditionalOnClass({ EnableDdiApi.class, EnableMgmtApi.class }) -@Import({ EnableDdiApi.class, EnableMgmtApi.class }) -public class ResourceControllerAutoConfiguration { +@ConditionalOnClass(DdiApiConfiguration.class) +@Import(DdiApiConfiguration.class) +public class DDiApiAutoConfiguration { } diff --git a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/web/MgmtApiAutoConfiguration.java b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/web/MgmtApiAutoConfiguration.java new file mode 100644 index 000000000..584f6dc8f --- /dev/null +++ b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/web/MgmtApiAutoConfiguration.java @@ -0,0 +1,25 @@ +/** + * Copyright (c) 2015 Bosch Software Innovations GmbH and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + */ +package org.eclipse.hawkbit.autoconfigure.web; + +import org.eclipse.hawkbit.mgmt.rest.resource.MgmtApiConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; + +/** + * Auto-Configuration for enabling the Management API REST-Resources. + * + */ +@Configuration +@ConditionalOnClass(MgmtApiConfiguration.class) +@Import(MgmtApiConfiguration.class) +public class MgmtApiAutoConfiguration { + +} diff --git a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/web/WebMvcAutoConfiguration.java b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/web/WebMvcAutoConfiguration.java index 37431a554..e0a770137 100644 --- a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/web/WebMvcAutoConfiguration.java +++ b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/web/WebMvcAutoConfiguration.java @@ -18,8 +18,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter * from Spring because it will truncate the dot in a REST URL which leads to * problem in case a controllerId contains dots and is a path parameter or * filename ending. - * - * */ @Configuration public class WebMvcAutoConfiguration extends WebMvcConfigurerAdapter { diff --git a/hawkbit-autoconfigure/src/main/resources/META-INF/spring.factories b/hawkbit-autoconfigure/src/main/resources/META-INF/spring.factories index 86bde0447..4f6096ca4 100644 --- a/hawkbit-autoconfigure/src/main/resources/META-INF/spring.factories +++ b/hawkbit-autoconfigure/src/main/resources/META-INF/spring.factories @@ -5,11 +5,14 @@ org.eclipse.hawkbit.autoconfigure.ui.UIAutoConfiguration,\ org.eclipse.hawkbit.autoconfigure.security.SecurityAutoConfiguration,\ org.eclipse.hawkbit.autoconfigure.url.PropertyHostnameResolverAutoConfiguration,\ org.eclipse.hawkbit.autoconfigure.web.WebMvcAutoConfiguration,\ +org.eclipse.hawkbit.autoconfigure.web.DDiApiAutoConfiguration,\ +org.eclipse.hawkbit.autoconfigure.web.MgmtApiAutoConfiguration,\ org.eclipse.hawkbit.autoconfigure.cache.CacheAutoConfiguration,\ org.eclipse.hawkbit.autoconfigure.cache.DownloadIdCacheAutoConfiguration,\ org.eclipse.hawkbit.autoconfigure.event.EventPublisherAutoConfiguration,\ org.eclipse.hawkbit.autoconfigure.scheduling.AsyncConfigurerAutoConfiguration,\ org.eclipse.hawkbit.autoconfigure.scheduling.ExecutorAutoConfiguration,\ -org.eclipse.hawkbit.autoconfigure.amqp.AmqpAutoConfiguration,\ +org.eclipse.hawkbit.autoconfigure.amqp.DmfApiAutoConfiguration,\ org.eclipse.hawkbit.autoconfigure.security.InMemoryUserManagementConfiguration,\ -org.eclipse.hawkbit.autoconfigure.repository.ArtifactStoreAutoConfiguration +org.eclipse.hawkbit.autoconfigure.repository.ArtifactFilesystemAutoConfiguration,\ +org.eclipse.hawkbit.autoconfigure.repository.JpaRepositoryAutoConfiguration diff --git a/hawkbit-core/src/main/java/org/eclipse/hawkbit/ControllerPollProperties.java b/hawkbit-core/src/main/java/org/eclipse/hawkbit/ControllerPollProperties.java index 4eba5c0f5..472b2bfdd 100644 --- a/hawkbit-core/src/main/java/org/eclipse/hawkbit/ControllerPollProperties.java +++ b/hawkbit-core/src/main/java/org/eclipse/hawkbit/ControllerPollProperties.java @@ -13,7 +13,6 @@ import java.io.Serializable; import org.eclipse.hawkbit.tenancy.configuration.TenantConfigurationKey; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.EnvironmentAware; -import org.springframework.stereotype.Component; /** * Defines global configuration for the controllers/clients on the provisioning @@ -25,7 +24,6 @@ import org.springframework.stereotype.Component; * {@link TenantConfigurationKey} and injected using {@link EnvironmentAware}. * */ -@Component @ConfigurationProperties(prefix = "hawkbit.controller") public class ControllerPollProperties implements Serializable { private static final long serialVersionUID = 1L; diff --git a/hawkbit-core/src/main/java/org/eclipse/hawkbit/artifact/repository/ArtifactRepository.java b/hawkbit-core/src/main/java/org/eclipse/hawkbit/artifact/repository/ArtifactRepository.java index b25ba8c15..0cdddcdfc 100644 --- a/hawkbit-core/src/main/java/org/eclipse/hawkbit/artifact/repository/ArtifactRepository.java +++ b/hawkbit-core/src/main/java/org/eclipse/hawkbit/artifact/repository/ArtifactRepository.java @@ -33,6 +33,9 @@ public interface ArtifactRepository { * @param contentType * the content type of the artifact * @return the stored artifact + * + * @throws MethodNotSupportedException + * if implementation does not support the operation * @throws ArtifactStoreException * in case storing of the artifact was not successful */ @@ -51,6 +54,9 @@ public interface ArtifactRepository { * the hashes of the artifact to do hash-checks after storing the * artifact, might be {@code null} * @return the stored artifact + * + * @throws MethodNotSupportedException + * if implementation does not support the operation * @throws ArtifactStoreException * in case storing of the artifact was not successful * @throws HashNotMatchException @@ -62,8 +68,12 @@ public interface ArtifactRepository { /** * Deletes an artifact by its SHA1 hash. * + * * @param sha1Hash * the sha1-hash of the artifact to delete + * + * @throws MethodNotSupportedException + * if implementation does not support the operation */ void deleteBySha1(final String sha1Hash); @@ -73,6 +83,9 @@ public interface ArtifactRepository { * @param sha1Hash * the sha1-hash of the file to lookup. * @return The artifact file object or {@code null} if no file exists. + * + * @throws MethodNotSupportedException + * if implementation does not support the operation */ - DbArtifact getArtifactBySha1(String sha1); + DbArtifact getArtifactBySha1(String sha1Hash); } diff --git a/hawkbit-core/src/main/java/org/eclipse/hawkbit/exception/SpServerError.java b/hawkbit-core/src/main/java/org/eclipse/hawkbit/exception/SpServerError.java index 80e81e220..073336dd8 100644 --- a/hawkbit-core/src/main/java/org/eclipse/hawkbit/exception/SpServerError.java +++ b/hawkbit-core/src/main/java/org/eclipse/hawkbit/exception/SpServerError.java @@ -169,7 +169,12 @@ public enum SpServerError { /** * */ - SP_ROLLOUT_VERIFICATION_FAILED("hawkbit.server.error.rollout.verificationFailed", "The rollout configuration could not be verified successfully"); + SP_ROLLOUT_VERIFICATION_FAILED("hawkbit.server.error.rollout.verificationFailed", "The rollout configuration could not be verified successfully"), + + /** + * + */ + SP_REPO_OPERATION_NOT_SUPPORTED("hawkbit.server.error.operation.notSupported", "Operation or method is (no longer) supported by service."); private final String key; private final String message; diff --git a/hawkbit-ddi-resource/pom.xml b/hawkbit-ddi-resource/pom.xml index c798534aa..567fe4c61 100644 --- a/hawkbit-ddi-resource/pom.xml +++ b/hawkbit-ddi-resource/pom.xml @@ -45,6 +45,11 @@ org.springframework.plugin spring-plugin-core + + javax.servlet + javax.servlet-api + provided + diff --git a/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/EnableDdiApi.java b/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiApiConfiguration.java similarity index 55% rename from hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/EnableDdiApi.java rename to hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiApiConfiguration.java index d9572166a..7fa0b9bb9 100644 --- a/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/EnableDdiApi.java +++ b/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiApiConfiguration.java @@ -6,28 +6,22 @@ * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ -package org.eclipse.hawkbit.ddi; +package org.eclipse.hawkbit.ddi.rest.resource; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.eclipse.hawkbit.rest.configuration.RestConfiguration; +import org.eclipse.hawkbit.rest.RestConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.stereotype.Controller; /** - * Annotation to enable {@link ComponentScan} in the resource package to setup - * all {@link Controller} annotated classes and setup the Direct Device API. + * Enable {@link ComponentScan} in the resource package to setup all + * {@link Controller} annotated classes and setup the REST-Resources for the + * Direct Device Integration API. */ -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.RUNTIME) @Configuration @ComponentScan @Import(RestConfiguration.class) -public @interface EnableDdiApi { +public class DdiApiConfiguration { } diff --git a/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/AbstractDDiApiIntegrationTest.java b/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/AbstractDDiApiIntegrationTest.java new file mode 100644 index 000000000..3b9297fc6 --- /dev/null +++ b/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/AbstractDDiApiIntegrationTest.java @@ -0,0 +1,17 @@ +/** + * Copyright (c) 2015 Bosch Software Innovations GmbH and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + */ +package org.eclipse.hawkbit.ddi.rest.resource; + +import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; +import org.springframework.boot.test.SpringApplicationConfiguration; + +@SpringApplicationConfiguration(classes = { DdiApiConfiguration.class }) +public abstract class AbstractDDiApiIntegrationTest extends AbstractRestIntegrationTest { + +} diff --git a/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiArtifactDownloadTest.java b/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiArtifactDownloadTest.java index c31ada5bc..68541b960 100644 --- a/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiArtifactDownloadTest.java +++ b/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiArtifactDownloadTest.java @@ -38,7 +38,6 @@ import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.test.util.TestdataFactory; import org.eclipse.hawkbit.repository.test.util.WithUser; -import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.junit.Before; import org.junit.Test; import org.springframework.boot.test.SpringApplicationConfiguration; @@ -63,7 +62,7 @@ import ru.yandex.qatools.allure.annotations.Stories; @Features("Component Tests - Direct Device Integration API") @Stories("Artifact Download Resource") @SpringApplicationConfiguration(classes = DownloadTestConfiguration.class) -public class DdiArtifactDownloadTest extends AbstractRestIntegrationTest { +public class DdiArtifactDownloadTest extends AbstractDDiApiIntegrationTest { private static final int ARTIFACT_SIZE = 5 * 1024 * 1024; diff --git a/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiCancelActionTest.java b/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiCancelActionTest.java index 8430131d8..b299ec4c6 100644 --- a/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiCancelActionTest.java +++ b/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiCancelActionTest.java @@ -28,7 +28,6 @@ import org.eclipse.hawkbit.repository.model.Action.Status; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.test.util.TestdataFactory; -import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.eclipse.hawkbit.rest.util.JsonBuilder; import org.eclipse.hawkbit.rest.util.MockMvcResultPrinter; import org.junit.Test; @@ -43,7 +42,7 @@ import ru.yandex.qatools.allure.annotations.Stories; */ @Features("Component Tests - Direct Device Integration API") @Stories("Cancel Action Resource") -public class DdiCancelActionTest extends AbstractRestIntegrationTest { +public class DdiCancelActionTest extends AbstractDDiApiIntegrationTest { @Test @Description("Test of the controller can continue a started update even after a cancel command if it so desires.") diff --git a/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfigDataTest.java b/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfigDataTest.java index 1a0632ca7..f0ce9e24c 100644 --- a/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfigDataTest.java +++ b/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfigDataTest.java @@ -22,7 +22,6 @@ import java.util.HashMap; import java.util.Map; import org.eclipse.hawkbit.repository.model.Target; -import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.eclipse.hawkbit.rest.util.JsonBuilder; import org.eclipse.hawkbit.rest.util.MockMvcResultPrinter; import org.junit.Test; @@ -40,7 +39,7 @@ import ru.yandex.qatools.allure.annotations.Stories; @ActiveProfiles({ "im", "test" }) @Features("Component Tests - Direct Device Integration API") @Stories("Config Data Resource") -public class DdiConfigDataTest extends AbstractRestIntegrationTest { +public class DdiConfigDataTest extends AbstractDDiApiIntegrationTest { @Test @Description("We verify that the config data (i.e. device attributes like serial number, hardware revision etc.) " diff --git a/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiDeploymentBaseTest.java b/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiDeploymentBaseTest.java index da2cfd85d..705897906 100644 --- a/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiDeploymentBaseTest.java +++ b/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiDeploymentBaseTest.java @@ -37,7 +37,6 @@ import org.eclipse.hawkbit.repository.model.DistributionSetAssignmentResult; import org.eclipse.hawkbit.repository.model.RepositoryModelConstants; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.model.TargetUpdateStatus; -import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.eclipse.hawkbit.rest.util.JsonBuilder; import org.eclipse.hawkbit.rest.util.MockMvcResultPrinter; import org.fest.assertions.core.Condition; @@ -59,7 +58,7 @@ import ru.yandex.qatools.allure.annotations.Stories; */ @Features("Component Tests - Direct Device Integration API") @Stories("Deployment Action Resource") -public class DdiDeploymentBaseTest extends AbstractRestIntegrationTest { +public class DdiDeploymentBaseTest extends AbstractDDiApiIntegrationTest { private static final String HTTP_LOCALHOST = "http://localhost:8080/"; diff --git a/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootControllerTest.java b/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootControllerTest.java index 589ceb68c..2e777fb96 100644 --- a/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootControllerTest.java +++ b/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootControllerTest.java @@ -39,7 +39,6 @@ import org.eclipse.hawkbit.repository.test.matcher.Expect; import org.eclipse.hawkbit.repository.test.matcher.ExpectEvents; import org.eclipse.hawkbit.repository.test.util.WithSpringAuthorityRule; import org.eclipse.hawkbit.repository.test.util.WithUser; -import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.eclipse.hawkbit.rest.util.JsonBuilder; import org.eclipse.hawkbit.rest.util.MockMvcResultPrinter; import org.eclipse.hawkbit.security.HawkbitSecurityProperties; @@ -58,7 +57,7 @@ import ru.yandex.qatools.allure.annotations.Stories; */ @Features("Component Tests - Direct Device Integration API") @Stories("Root Poll Resource") -public class DdiRootControllerTest extends AbstractRestIntegrationTest { +public class DdiRootControllerTest extends AbstractDDiApiIntegrationTest { @Autowired private HawkbitSecurityProperties securityProperties; diff --git a/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DosFilterTest.java b/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DosFilterTest.java index 83eb9c004..59141320e 100644 --- a/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DosFilterTest.java +++ b/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DosFilterTest.java @@ -18,7 +18,6 @@ import java.util.List; import org.eclipse.hawkbit.repository.model.Action; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.Target; -import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.eclipse.hawkbit.rest.util.JsonBuilder; import org.junit.Test; import org.springframework.http.HttpStatus; @@ -40,7 +39,7 @@ import ru.yandex.qatools.allure.annotations.Stories; @ActiveProfiles({ "test" }) @Features("Component Tests - REST Security") @Stories("Denial of Service protection filter") -public class DosFilterTest extends AbstractRestIntegrationTest { +public class DosFilterTest extends AbstractDDiApiIntegrationTest { @Test @Description("Ensures that clients that are on the blacklist are forbidded ") diff --git a/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/annotation/EnableAmqp.java b/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/DmfApiConfiguration.java similarity index 52% rename from hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/annotation/EnableAmqp.java rename to hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/DmfApiConfiguration.java index 2eb20c60b..50b52cca4 100644 --- a/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/annotation/EnableAmqp.java +++ b/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/DmfApiConfiguration.java @@ -6,24 +6,18 @@ * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ -package org.eclipse.hawkbit.amqp.annotation; +package org.eclipse.hawkbit.amqp; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.eclipse.hawkbit.amqp.AmqpConfiguration; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; /** - * Annotation to enable amqp. - * - * + * Enable Device Management Federation API. */ -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.RUNTIME) +@Configuration +@ComponentScan @Import(AmqpConfiguration.class) -public @interface EnableAmqp { +public class DmfApiConfiguration { } diff --git a/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherServiceTest.java b/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherServiceTest.java index 6ab728602..38406fb00 100644 --- a/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherServiceTest.java +++ b/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherServiceTest.java @@ -33,7 +33,7 @@ import org.eclipse.hawkbit.dmf.json.model.DownloadAndUpdateRequest; import org.eclipse.hawkbit.repository.SystemManagement; import org.eclipse.hawkbit.repository.event.remote.TargetAssignDistributionSetEvent; import org.eclipse.hawkbit.repository.event.remote.entity.CancelTargetAssignmentEvent; -import org.eclipse.hawkbit.repository.jpa.ActionRepository; +import org.eclipse.hawkbit.repository.jpa.RepositoryApplicationConfiguration; import org.eclipse.hawkbit.repository.model.Action; import org.eclipse.hawkbit.repository.model.Artifact; import org.eclipse.hawkbit.repository.model.DistributionSet; @@ -50,7 +50,6 @@ import org.springframework.amqp.core.MessageProperties; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.support.converter.AbstractJavaTypeMapper; import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.SpringApplicationConfiguration; import org.springframework.test.context.ActiveProfiles; @@ -63,7 +62,7 @@ import ru.yandex.qatools.allure.annotations.Stories; @ActiveProfiles({ "test" }) @Features("Component Tests - Device Management Federation API") @Stories("AmqpMessage Dispatcher Service Test") -@SpringApplicationConfiguration(classes = { org.eclipse.hawkbit.RepositoryApplicationConfiguration.class }) +@SpringApplicationConfiguration(classes = { RepositoryApplicationConfiguration.class }) public class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTest { private static final String TENANT = "default"; @@ -73,21 +72,16 @@ public class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTest { private static final String TEST_TOKEN = "testToken"; + private static final String CONTROLLER_ID = "1"; + private AmqpMessageDispatcherService amqpMessageDispatcherService; private RabbitTemplate rabbitTemplate; private DefaultAmqpSenderService senderService; - private SystemManagement systemManagement; - - private static final String CONTROLLER_ID = "1"; - private Target testTarget; - @Autowired - protected ActionRepository actionRepository; - @Override public void before() throws Exception { super.before(); diff --git a/hawkbit-http-security/pom.xml b/hawkbit-http-security/pom.xml index bb77df454..6ac1456b9 100644 --- a/hawkbit-http-security/pom.xml +++ b/hawkbit-http-security/pom.xml @@ -35,6 +35,11 @@ hawkbit-security-integration ${project.version} + + javax.servlet + javax.servlet-api + provided + diff --git a/hawkbit-mgmt-resource/pom.xml b/hawkbit-mgmt-resource/pom.xml index 173507809..20848b483 100644 --- a/hawkbit-mgmt-resource/pom.xml +++ b/hawkbit-mgmt-resource/pom.xml @@ -43,7 +43,12 @@ org.springframework spring-context - + + + javax.servlet + javax.servlet-api + provided + diff --git a/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/EnableMgmtApi.java b/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtApiConfiguration.java similarity index 55% rename from hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/EnableMgmtApi.java rename to hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtApiConfiguration.java index 6d4252e55..6ba3c8c70 100644 --- a/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/EnableMgmtApi.java +++ b/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtApiConfiguration.java @@ -6,29 +6,22 @@ * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ -package org.eclipse.hawkbit.mgmt; +package org.eclipse.hawkbit.mgmt.rest.resource; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.eclipse.hawkbit.rest.configuration.RestConfiguration; +import org.eclipse.hawkbit.rest.RestConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.stereotype.Controller; /** - * Annotation to enable {@link ComponentScan} in the resource package to setup - * all {@link Controller} annotated classes and setup the REST-Resources for the + * Enable {@link ComponentScan} in the resource package to setup all + * {@link Controller} annotated classes and setup the REST-Resources for the * Management API. */ -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.RUNTIME) @Configuration @ComponentScan @Import(RestConfiguration.class) -public @interface EnableMgmtApi { +public class MgmtApiConfiguration { } diff --git a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/AbstractManagementApiIntegrationTest.java b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/AbstractManagementApiIntegrationTest.java new file mode 100644 index 000000000..833aacb58 --- /dev/null +++ b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/AbstractManagementApiIntegrationTest.java @@ -0,0 +1,17 @@ +/** + * Copyright (c) 2015 Bosch Software Innovations GmbH and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + */ +package org.eclipse.hawkbit.mgmt.rest.resource; + +import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; +import org.springframework.boot.test.SpringApplicationConfiguration; + +@SpringApplicationConfiguration(classes = { MgmtApiConfiguration.class }) +public abstract class AbstractManagementApiIntegrationTest extends AbstractRestIntegrationTest { + +} diff --git a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResourceTest.java b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResourceTest.java index 0f36307da..e713e3319 100644 --- a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResourceTest.java +++ b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResourceTest.java @@ -39,7 +39,6 @@ import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.model.TargetWithActionType; import org.eclipse.hawkbit.repository.test.util.TestdataFactory; import org.eclipse.hawkbit.repository.test.util.WithUser; -import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.eclipse.hawkbit.rest.util.JsonBuilder; import org.eclipse.hawkbit.rest.util.MockMvcResultPrinter; import org.json.JSONArray; @@ -59,7 +58,7 @@ import ru.yandex.qatools.allure.annotations.Stories; @Features("Component Tests - Management API") @Stories("Distribution Set Resource") -public class MgmtDistributionSetResourceTest extends AbstractRestIntegrationTest { +public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegrationTest { @Test @Description("This test verifies the call of all Software Modules that are assiged to a Distribution Set through the RESTful API.") diff --git a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResourceTest.java b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResourceTest.java index 35257edea..52620901f 100644 --- a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResourceTest.java +++ b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResourceTest.java @@ -30,7 +30,6 @@ import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.eclipse.hawkbit.repository.model.DistributionSetType; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; import org.eclipse.hawkbit.repository.test.util.WithUser; -import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.eclipse.hawkbit.rest.util.JsonBuilder; import org.eclipse.hawkbit.rest.util.MockMvcResultPrinter; import org.json.JSONException; @@ -53,7 +52,7 @@ import ru.yandex.qatools.allure.annotations.Stories; */ @Features("Component Tests - Management API") @Stories("Distribution Set Type Resource") -public class MgmtDistributionSetTypeResourceTest extends AbstractRestIntegrationTest { +public class MgmtDistributionSetTypeResourceTest extends AbstractManagementApiIntegrationTest { @Test @WithUser(principal = "uploadTester", allSpPermissions = true) diff --git a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDownloadResourceTest.java b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDownloadResourceTest.java index 7ae128996..5bbc359ff 100644 --- a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDownloadResourceTest.java +++ b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDownloadResourceTest.java @@ -18,7 +18,6 @@ import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.eclipse.hawkbit.repository.model.Artifact; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.SoftwareModule; -import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.eclipse.hawkbit.rest.util.MockMvcResultPrinter; import org.junit.Before; import org.junit.Test; @@ -30,7 +29,7 @@ import ru.yandex.qatools.allure.annotations.Stories; @Features("Component Tests - Management API") @Stories("Download Resource") -public class MgmtDownloadResourceTest extends AbstractRestIntegrationTest { +public class MgmtDownloadResourceTest extends AbstractManagementApiIntegrationTest { @Autowired private DownloadIdCache downloadIdCache; @@ -44,7 +43,7 @@ public class MgmtDownloadResourceTest extends AbstractRestIntegrationTest { final DistributionSet distributionSet = testdataFactory.createDistributionSet("Test"); final SoftwareModule softwareModule = distributionSet.getModules().stream().findFirst().get(); - final Artifact artifact = testdataFactory.createArtifacts(softwareModule.getId()).stream().findFirst().get(); + final Artifact artifact = testdataFactory.createArtifacts(softwareModule.getId()).stream().findFirst().get(); downloadIdCache.put(downloadIdSha1, new DownloadArtifactCache(DownloadType.BY_SHA1, artifact.getSha1Hash())); } diff --git a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutResourceTest.java b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutResourceTest.java index 0880b3002..ff69bad11 100644 --- a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutResourceTest.java +++ b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutResourceTest.java @@ -37,7 +37,6 @@ import org.eclipse.hawkbit.repository.model.RolloutGroupConditionBuilder; import org.eclipse.hawkbit.repository.model.RolloutGroupConditions; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.test.util.WithUser; -import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.eclipse.hawkbit.rest.util.JsonBuilder; import org.eclipse.hawkbit.rest.util.MockMvcResultPrinter; import org.eclipse.hawkbit.rest.util.SuccessCondition; @@ -59,7 +58,7 @@ import ru.yandex.qatools.allure.annotations.Stories; */ @Features("Component Tests - Management API") @Stories("Rollout Resource") -public class MgmtRolloutResourceTest extends AbstractRestIntegrationTest { +public class MgmtRolloutResourceTest extends AbstractManagementApiIntegrationTest { private static final String HREF_ROLLOUT_PREFIX = "http://localhost/rest/v1/rollouts/"; diff --git a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResourceTest.java b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResourceTest.java index 1f1af61fe..0e27312d0 100644 --- a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResourceTest.java +++ b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResourceTest.java @@ -44,7 +44,6 @@ import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.SoftwareModuleMetadata; import org.eclipse.hawkbit.repository.test.util.HashGeneratorUtils; import org.eclipse.hawkbit.repository.test.util.WithUser; -import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.eclipse.hawkbit.rest.json.model.ExceptionInfo; import org.eclipse.hawkbit.rest.util.JsonBuilder; import org.eclipse.hawkbit.rest.util.MockMvcResultPrinter; @@ -71,7 +70,7 @@ import ru.yandex.qatools.allure.annotations.Stories; */ @Features("Component Tests - Management API") @Stories("Software Module Resource") -public class MgmtSoftwareModuleResourceTest extends AbstractRestIntegrationTest { +public class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTest { @Before public void assertPreparationOfRepo() { diff --git a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java index 79cf18a47..dd693ba63 100644 --- a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java +++ b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java @@ -28,7 +28,6 @@ import org.apache.commons.lang3.RandomStringUtils; import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; import org.eclipse.hawkbit.repository.test.util.WithUser; -import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.eclipse.hawkbit.rest.util.JsonBuilder; import org.eclipse.hawkbit.rest.util.MockMvcResultPrinter; import org.json.JSONException; @@ -50,7 +49,7 @@ import ru.yandex.qatools.allure.annotations.Stories; */ @Features("Component Tests - Management API") @Stories("Software Module Type Resource") -public class MgmtSoftwareModuleTypeResourceTest extends AbstractRestIntegrationTest { +public class MgmtSoftwareModuleTypeResourceTest extends AbstractManagementApiIntegrationTest { @Test @WithUser(principal = "uploadTester", allSpPermissions = true) diff --git a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetFilterQueryResourceTest.java b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetFilterQueryResourceTest.java index 2b7247caa..a92dce6be 100644 --- a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetFilterQueryResourceTest.java +++ b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetFilterQueryResourceTest.java @@ -23,7 +23,6 @@ import org.eclipse.hawkbit.exception.SpServerError; import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.TargetFilterQuery; -import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.eclipse.hawkbit.rest.exception.MessageNotReadableException; import org.eclipse.hawkbit.rest.json.model.ExceptionInfo; import org.eclipse.hawkbit.rest.util.MockMvcResultPrinter; @@ -42,7 +41,7 @@ import ru.yandex.qatools.allure.annotations.Stories; */ @Features("Component Tests - Management API") @Stories("Target Filter Query Resource") -public class MgmtTargetFilterQueryResourceTest extends AbstractRestIntegrationTest { +public class MgmtTargetFilterQueryResourceTest extends AbstractManagementApiIntegrationTest { private static final String JSON_PATH_ROOT = "$"; diff --git a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResourceTest.java b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResourceTest.java index beb2d2e15..1e15334ad 100644 --- a/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResourceTest.java +++ b/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResourceTest.java @@ -45,7 +45,6 @@ import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.test.util.WithUser; -import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.eclipse.hawkbit.rest.exception.MessageNotReadableException; import org.eclipse.hawkbit.rest.json.model.ExceptionInfo; import org.eclipse.hawkbit.rest.util.JsonBuilder; @@ -73,7 +72,7 @@ import ru.yandex.qatools.allure.annotations.Stories; */ @Features("Component Tests - Management API") @Stories("Target Resource") -public class MgmtTargetResourceTest extends AbstractRestIntegrationTest { +public class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest { private static final String TARGET_DESCRIPTION_TEST = "created in test"; diff --git a/hawkbit-repository/hawkbit-repository-api/pom.xml b/hawkbit-repository/hawkbit-repository-api/pom.xml index 079c038ab..68241de55 100644 --- a/hawkbit-repository/hawkbit-repository-api/pom.xml +++ b/hawkbit-repository/hawkbit-repository-api/pom.xml @@ -40,6 +40,12 @@ org.springframework.cloud spring-cloud-bus + + + org.springframework.boot + spring-boot-starter-tomcat + + diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/AutoAssignProperties.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/AutoAssignProperties.java index 2c9bd7849..862fc4e8c 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/AutoAssignProperties.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/AutoAssignProperties.java @@ -24,11 +24,16 @@ public class AutoAssignProperties { public static final String PROP_SCHEDULER_DELAY_PLACEHOLDER = "${hawkbit.autoassign.scheduler.fixedDelay:60000}"; /** - * Schedule where the autoassign scheduler looks necessary state changes in - * milliseconds. + * Schedule where the autoassign scheduler looks necessary state changes + * in milliseconds. */ private long fixedDelay = 60000L; + /** + * Set to true to run the autoassign scheduler. + */ + private boolean enabled = true; + public long getFixedDelay() { return fixedDelay; } @@ -37,6 +42,14 @@ public class AutoAssignProperties { this.fixedDelay = fixedDelay; } + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(final boolean enabled) { + this.enabled = enabled; + } + } private final Scheduler scheduler = new Scheduler(); diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/RolloutProperties.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/RolloutProperties.java index b2e4d91ae..86ba8d91d 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/RolloutProperties.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/RolloutProperties.java @@ -9,13 +9,11 @@ package org.eclipse.hawkbit.repository; import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; /** * Rollout Management properties. * */ -@Component @ConfigurationProperties("hawkbit.rollout") public class RolloutProperties { // used by @Scheduled annotation which needs constant diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/MethodNotSupportedException.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/MethodNotSupportedException.java new file mode 100644 index 000000000..fd9686218 --- /dev/null +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/MethodNotSupportedException.java @@ -0,0 +1,53 @@ +/** + * Copyright (c) 2015 Bosch Software Innovations GmbH and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + */ +package org.eclipse.hawkbit.repository.exception; + +import org.eclipse.hawkbit.exception.AbstractServerRtException; +import org.eclipse.hawkbit.exception.SpServerError; + +/** + * Thrown if repository operation is no longer supported. + * + */ +public final class MethodNotSupportedException extends AbstractServerRtException { + /** + * + */ + private static final long serialVersionUID = 1L; + + /** + * Creates a new MethodNotSupportedException with + * {@link SpServerError#SP_REPO_OPERATION_NOT_SUPPORTED} error. + */ + public MethodNotSupportedException() { + super(SpServerError.SP_REPO_OPERATION_NOT_SUPPORTED); + } + + /** + * Creates a new MethodNotSupportedException with + * {@link SpServerError#SP_REPO_OPERATION_NOT_SUPPORTED} error. + * + * @param cause + * for the exception + */ + public MethodNotSupportedException(final Throwable cause) { + super(SpServerError.SP_REPO_OPERATION_NOT_SUPPORTED, cause); + } + + /** + * Creates a new MethodNotSupportedException with + * {@link SpServerError#SP_REPO_OPERATION_NOT_SUPPORTED} error. + * + * @param message + * of the error + */ + public MethodNotSupportedException(final String message) { + super(message, SpServerError.SP_REPO_OPERATION_NOT_SUPPORTED); + } +} diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/EnableJpaRepository.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/EnableJpaRepository.java deleted file mode 100644 index 55fd4a111..000000000 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/EnableJpaRepository.java +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Copyright (c) 2015 Bosch Software Innovations GmbH and others. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.hawkbit; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.stereotype.Controller; - -/** - * Annotation to enable {@link ComponentScan} in the resource package to setup - * all {@link Controller} annotated classes and setup the REST-Resources for the - * Management API. - */ -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.RUNTIME) -@Configuration -@Import(RepositoryApplicationConfiguration.class) -public @interface EnableJpaRepository { - -} diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaArtifactManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaArtifactManagement.java index 19a396663..35a5c8311 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaArtifactManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaArtifactManagement.java @@ -196,7 +196,7 @@ public class JpaArtifactManagement implements ArtifactManagement { final boolean overrideExisting) { return createArtifact(inputStream, moduleId, filename, null, null, overrideExisting, null); } - + @Override public Long countArtifactsAll() { return localArtifactRepository.count(); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutManagement.java index 9954f590e..035093f4b 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutManagement.java @@ -14,7 +14,6 @@ import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; -import javax.persistence.EntityManager; import javax.persistence.EntityNotFoundException; import javax.validation.ConstraintDeclarationException; @@ -92,9 +91,6 @@ public class JpaRolloutManagement implements RolloutManagement { */ private static final int TRANSACTION_TARGETS = 1000; - @Autowired - private EntityManager entityManager; - @Autowired private RolloutRepository rolloutRepository; diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/RepositoryApplicationConfiguration.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/RepositoryApplicationConfiguration.java similarity index 94% rename from hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/RepositoryApplicationConfiguration.java rename to hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/RepositoryApplicationConfiguration.java index 67fd2f3e4..3411f08d5 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/RepositoryApplicationConfiguration.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/RepositoryApplicationConfiguration.java @@ -6,12 +6,13 @@ * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ -package org.eclipse.hawkbit; +package org.eclipse.hawkbit.repository.jpa; import java.util.Map; import javax.persistence.EntityManager; +import org.eclipse.hawkbit.ControllerPollProperties; import org.eclipse.hawkbit.repository.ArtifactManagement; import org.eclipse.hawkbit.repository.ControllerManagement; import org.eclipse.hawkbit.repository.DeploymentManagement; @@ -21,6 +22,7 @@ import org.eclipse.hawkbit.repository.ReportManagement; import org.eclipse.hawkbit.repository.RepositoryProperties; import org.eclipse.hawkbit.repository.RolloutGroupManagement; import org.eclipse.hawkbit.repository.RolloutManagement; +import org.eclipse.hawkbit.repository.RolloutProperties; import org.eclipse.hawkbit.repository.SoftwareManagement; import org.eclipse.hawkbit.repository.SystemManagement; import org.eclipse.hawkbit.repository.TagManagement; @@ -35,21 +37,6 @@ import org.eclipse.hawkbit.repository.builder.SoftwareModuleBuilder; import org.eclipse.hawkbit.repository.builder.TargetFilterQueryBuilder; import org.eclipse.hawkbit.repository.event.remote.EventEntityManager; import org.eclipse.hawkbit.repository.event.remote.EventEntityManagerHolder; -import org.eclipse.hawkbit.repository.jpa.JpaArtifactManagement; -import org.eclipse.hawkbit.repository.jpa.JpaControllerManagement; -import org.eclipse.hawkbit.repository.jpa.JpaDeploymentManagement; -import org.eclipse.hawkbit.repository.jpa.JpaDistributionSetManagement; -import org.eclipse.hawkbit.repository.jpa.JpaEntityFactory; -import org.eclipse.hawkbit.repository.jpa.JpaReportManagement; -import org.eclipse.hawkbit.repository.jpa.JpaRolloutGroupManagement; -import org.eclipse.hawkbit.repository.jpa.JpaRolloutManagement; -import org.eclipse.hawkbit.repository.jpa.JpaSoftwareManagement; -import org.eclipse.hawkbit.repository.jpa.JpaSystemManagement; -import org.eclipse.hawkbit.repository.jpa.JpaTagManagement; -import org.eclipse.hawkbit.repository.jpa.JpaTargetFilterQueryManagement; -import org.eclipse.hawkbit.repository.jpa.JpaTargetManagement; -import org.eclipse.hawkbit.repository.jpa.JpaTenantConfigurationManagement; -import org.eclipse.hawkbit.repository.jpa.JpaTenantStatsManagement; import org.eclipse.hawkbit.repository.jpa.aspects.ExceptionMappingAspectHandler; import org.eclipse.hawkbit.repository.jpa.autoassign.AutoAssignChecker; import org.eclipse.hawkbit.repository.jpa.autoassign.AutoAssignScheduler; @@ -78,6 +65,7 @@ import org.eclipse.hawkbit.security.SecurityTokenGenerator; import org.eclipse.hawkbit.security.SystemSecurityContext; import org.eclipse.hawkbit.tenancy.TenantAware; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.orm.jpa.EntityScan; @@ -106,7 +94,7 @@ import com.google.common.collect.Maps; @EnableAspectJAutoProxy @Configuration @ComponentScan -@EnableConfigurationProperties(RepositoryProperties.class) +@EnableConfigurationProperties({ RepositoryProperties.class, ControllerPollProperties.class, RolloutProperties.class }) @EnableScheduling @EntityScan("org.eclipse.hawkbit.repository.jpa.model") public class RepositoryApplicationConfiguration extends JpaBaseConfiguration { @@ -525,6 +513,7 @@ public class RepositoryApplicationConfiguration extends JpaBaseConfiguration { */ @Bean @ConditionalOnMissingBean + @ConditionalOnProperty(prefix = "hawkbit.autoassign.scheduler", name = "enabled", matchIfMissing = true) public AutoAssignScheduler autoAssignScheduler(final TenantAware tenantAware, final SystemManagement systemManagement, final SystemSecurityContext systemSecurityContext, final AutoAssignChecker autoAssignChecker) { diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/autoassign/AutoAssignScheduler.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/autoassign/AutoAssignScheduler.java index e677f889b..127adae7c 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/autoassign/AutoAssignScheduler.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/autoassign/AutoAssignScheduler.java @@ -50,8 +50,8 @@ public class AutoAssignScheduler { * @param autoAssignChecker * to run a check as tenant */ - public AutoAssignScheduler(TenantAware tenantAware, SystemManagement systemManagement, - SystemSecurityContext systemSecurityContext, AutoAssignChecker autoAssignChecker) { + public AutoAssignScheduler(final TenantAware tenantAware, final SystemManagement systemManagement, + final SystemSecurityContext systemSecurityContext, final AutoAssignChecker autoAssignChecker) { this.tenantAware = tenantAware; this.systemManagement = systemManagement; this.systemSecurityContext = systemSecurityContext; diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractJpaIntegrationTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractJpaIntegrationTest.java index 746c6fb48..686af157f 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractJpaIntegrationTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractJpaIntegrationTest.java @@ -23,7 +23,8 @@ import org.springframework.boot.test.SpringApplicationConfiguration; import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Transactional; -@SpringApplicationConfiguration(classes = { org.eclipse.hawkbit.RepositoryApplicationConfiguration.class }) +@SpringApplicationConfiguration(classes = { + org.eclipse.hawkbit.repository.jpa.RepositoryApplicationConfiguration.class }) public abstract class AbstractJpaIntegrationTest extends AbstractIntegrationTest { @PersistenceContext diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/resources/application-test.properties b/hawkbit-repository/hawkbit-repository-jpa/src/test/resources/application-test.properties index 3a2f0baff..185131ffb 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/resources/application-test.properties +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/resources/application-test.properties @@ -35,7 +35,6 @@ spring.jpa.properties.eclipselink.logging.parameters=true flyway.enabled=true flyway.sqlMigrationSuffix=${spring.jpa.database}.sql -#spring.jpa.show-sql=true # DDI configuration hawkbit.controller.pollingTime=00:01:00 diff --git a/hawkbit-repository/hawkbit-repository-test/pom.xml b/hawkbit-repository/hawkbit-repository-test/pom.xml index d75799feb..c00e25f98 100644 --- a/hawkbit-repository/hawkbit-repository-test/pom.xml +++ b/hawkbit-repository/hawkbit-repository-test/pom.xml @@ -43,6 +43,20 @@ org.springframework.boot spring-boot-starter-logging + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + org.springframework.boot + spring-boot-starter-jetty + org.springframework spring-context-support diff --git a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/TestConfiguration.java b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/TestConfiguration.java similarity index 91% rename from hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/TestConfiguration.java rename to hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/TestConfiguration.java index e70ef2ca2..24e75a1c1 100644 --- a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/TestConfiguration.java +++ b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/TestConfiguration.java @@ -6,11 +6,13 @@ * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ -package org.eclipse.hawkbit; +package org.eclipse.hawkbit.repository.test; import java.util.concurrent.Executor; import java.util.concurrent.Executors; +import org.eclipse.hawkbit.ControllerPollProperties; +import org.eclipse.hawkbit.HawkbitServerProperties; import org.eclipse.hawkbit.api.ArtifactUrlHandlerProperties; import org.eclipse.hawkbit.api.PropertyBasedArtifactUrlHandler; import org.eclipse.hawkbit.artifact.repository.ArtifactFilesystemProperties; @@ -29,7 +31,9 @@ import org.eclipse.hawkbit.repository.test.util.TestContextProvider; import org.eclipse.hawkbit.repository.test.util.TestRepositoryManagement; import org.eclipse.hawkbit.repository.test.util.TestdataFactory; import org.eclipse.hawkbit.security.DdiSecurityProperties; +import org.eclipse.hawkbit.security.HawkbitSecurityProperties; import org.eclipse.hawkbit.security.SecurityContextTenantAware; +import org.eclipse.hawkbit.security.SecurityTokenGenerator; import org.eclipse.hawkbit.security.SpringSecurityAuditorAware; import org.eclipse.hawkbit.security.SystemSecurityContext; import org.eclipse.hawkbit.tenancy.TenantAware; @@ -56,21 +60,28 @@ import org.springframework.security.concurrent.DelegatingSecurityContextExecutor import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.util.AntPathMatcher; - /** * Spring context configuration required for Dev.Environment. - * - * - * */ @Configuration @EnableGlobalMethodSecurity(prePostEnabled = true, mode = AdviceMode.PROXY, proxyTargetClass = false, securedEnabled = true) @EnableConfigurationProperties({ HawkbitServerProperties.class, DdiSecurityProperties.class, - ArtifactUrlHandlerProperties.class, ArtifactFilesystemProperties.class }) + ArtifactUrlHandlerProperties.class, ArtifactFilesystemProperties.class, HawkbitSecurityProperties.class, + ControllerPollProperties.class }) @Profile("test") @EnableAutoConfiguration public class TestConfiguration implements AsyncConfigurer { + @Bean + public SecurityTokenGenerator securityTokenGenerator() { + return new SecurityTokenGenerator(); + } + + @Bean + public SystemSecurityContext systemSecurityContext(final TenantAware tenantAware) { + return new SystemSecurityContext(tenantAware); + } + @Bean public ArtifactRepository artifactRepository(final ArtifactFilesystemProperties artifactFilesystemProperties) { return new ArtifactFilesystemRepository(artifactFilesystemProperties); diff --git a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/AbstractIntegrationTest.java b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/AbstractIntegrationTest.java index 1b3598661..5ac51ecb4 100644 --- a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/AbstractIntegrationTest.java +++ b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/AbstractIntegrationTest.java @@ -19,8 +19,6 @@ import java.util.List; import java.util.stream.Collectors; import org.apache.commons.io.FileUtils; -import org.eclipse.hawkbit.ExcludePathAwareShallowETagFilter; -import org.eclipse.hawkbit.TestConfiguration; import org.eclipse.hawkbit.artifact.repository.ArtifactFilesystemProperties; import org.eclipse.hawkbit.artifact.repository.ArtifactRepository; import org.eclipse.hawkbit.cache.TenantAwareCacheManager; @@ -54,8 +52,10 @@ import org.eclipse.hawkbit.repository.model.RolloutGroupConditions; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.model.TargetWithActionType; +import org.eclipse.hawkbit.repository.test.TestConfiguration; import org.eclipse.hawkbit.repository.test.matcher.EventVerifier; import org.eclipse.hawkbit.security.DosFilter; +import org.eclipse.hawkbit.security.ExcludePathAwareShallowETagFilter; import org.eclipse.hawkbit.security.SystemSecurityContext; import org.eclipse.hawkbit.tenancy.TenantAware; import org.junit.After; diff --git a/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/configuration/RestConfiguration.java b/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/RestConfiguration.java similarity index 94% rename from hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/configuration/RestConfiguration.java rename to hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/RestConfiguration.java index 73f7eed76..b78325440 100644 --- a/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/configuration/RestConfiguration.java +++ b/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/RestConfiguration.java @@ -6,7 +6,7 @@ * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ -package org.eclipse.hawkbit.rest.configuration; +package org.eclipse.hawkbit.rest; import javax.servlet.http.HttpServletResponse; @@ -15,6 +15,7 @@ import org.eclipse.hawkbit.rest.util.HttpResponseFactoryBean; import org.eclipse.hawkbit.rest.util.RequestResponseContextHolder; import org.springframework.beans.factory.FactoryBean; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; import org.springframework.hateoas.config.EnableHypermediaSupport; @@ -25,6 +26,7 @@ import org.springframework.web.context.WebApplicationContext; * Configuration for Rest api. */ @Configuration +@ComponentScan @EnableHypermediaSupport(type = { HypermediaType.HAL }) public class RestConfiguration { diff --git a/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/exception/ResponseExceptionHandler.java b/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/exception/ResponseExceptionHandler.java index feab1f388..c0ebb4e59 100644 --- a/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/exception/ResponseExceptionHandler.java +++ b/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/exception/ResponseExceptionHandler.java @@ -70,6 +70,8 @@ public class ResponseExceptionHandler { ERROR_TO_HTTP_STATUS.put(SpServerError.SP_CONFIGURATION_KEY_INVALID, HttpStatus.BAD_REQUEST); ERROR_TO_HTTP_STATUS.put(SpServerError.SP_REPO_INVALID_TARGET_ADDRESS, HttpStatus.BAD_REQUEST); ERROR_TO_HTTP_STATUS.put(SpServerError.SP_REPO_CONSTRAINT_VIOLATION, HttpStatus.BAD_REQUEST); + ERROR_TO_HTTP_STATUS.put(SpServerError.SP_REPO_OPERATION_NOT_SUPPORTED, HttpStatus.GONE); + } private static HttpStatus getStatusOrDefault(final SpServerError error) { diff --git a/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/AbstractRestIntegrationTest.java b/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/AbstractRestIntegrationTest.java index 1708bf6cc..4f0c9e760 100644 --- a/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/AbstractRestIntegrationTest.java +++ b/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/AbstractRestIntegrationTest.java @@ -8,8 +8,8 @@ */ package org.eclipse.hawkbit.rest; +import org.eclipse.hawkbit.repository.jpa.RepositoryApplicationConfiguration; import org.eclipse.hawkbit.repository.test.util.AbstractIntegrationTest; -import org.eclipse.hawkbit.rest.configuration.RestConfiguration; import org.eclipse.hawkbit.rest.util.FilterHttpResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.SpringApplicationConfiguration; @@ -18,8 +18,7 @@ import org.springframework.test.web.servlet.setup.DefaultMockMvcBuilder; /** * Abstract Test for Rest tests. */ -@SpringApplicationConfiguration(classes = { RestConfiguration.class, - org.eclipse.hawkbit.RepositoryApplicationConfiguration.class }) +@SpringApplicationConfiguration(classes = { RestConfiguration.class, RepositoryApplicationConfiguration.class }) public abstract class AbstractRestIntegrationTest extends AbstractIntegrationTest { @Autowired diff --git a/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/ExcludePathAwareShallowETagFilter.java b/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/ExcludePathAwareShallowETagFilter.java similarity index 87% rename from hawkbit-security-core/src/main/java/org/eclipse/hawkbit/ExcludePathAwareShallowETagFilter.java rename to hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/ExcludePathAwareShallowETagFilter.java index 195cd4fea..3f51c7cce 100644 --- a/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/ExcludePathAwareShallowETagFilter.java +++ b/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/ExcludePathAwareShallowETagFilter.java @@ -6,7 +6,7 @@ * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ -package org.eclipse.hawkbit; +package org.eclipse.hawkbit.security; import java.io.IOException; @@ -23,10 +23,6 @@ import org.springframework.web.filter.ShallowEtagHeaderFilter; * where no ETag header should be generated due that calculating the ETag is an * expensive operation and the response output need to be copied in memory which * should be excluded in case of artifact downloads which could be big of size. - * - * - * - * */ public class ExcludePathAwareShallowETagFilter extends ShallowEtagHeaderFilter { @@ -41,14 +37,6 @@ public class ExcludePathAwareShallowETagFilter extends ShallowEtagHeaderFilter { this.antMatcher = new AntPathMatcher(); } - /* - * (non-Javadoc) - * - * @see - * org.springframework.web.filter.ShallowEtagHeaderFilter#doFilterInternal( - * javax.servlet.http .HttpServletRequest, - * javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) - */ @Override protected void doFilterInternal(final HttpServletRequest request, final HttpServletResponse response, final FilterChain filterChain) throws ServletException, IOException { diff --git a/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/HawkbitSecurityProperties.java b/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/HawkbitSecurityProperties.java index d6de1f80e..652002d57 100644 --- a/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/HawkbitSecurityProperties.java +++ b/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/HawkbitSecurityProperties.java @@ -9,13 +9,11 @@ package org.eclipse.hawkbit.security; import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; /** * Security related hawkbit configuration. * */ -@Component @ConfigurationProperties("hawkbit.server.security") public class HawkbitSecurityProperties { diff --git a/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/SecurityTokenGenerator.java b/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/SecurityTokenGenerator.java index d6a484d8b..3d468cf74 100644 --- a/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/SecurityTokenGenerator.java +++ b/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/SecurityTokenGenerator.java @@ -11,18 +11,12 @@ package org.eclipse.hawkbit.security; import java.security.SecureRandom; import org.apache.commons.lang3.RandomStringUtils; -import org.springframework.stereotype.Service; /** * A security token generator service which can be used to generate security * tokens for e.g. target or gateway tokens which are valid for authenticates * against SP. - * - * - * - * */ -@Service public class SecurityTokenGenerator { private static final boolean LETTERS_GENERATION = true; diff --git a/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/SystemSecurityContext.java b/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/SystemSecurityContext.java index 4432fbb67..b0e830f56 100644 --- a/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/SystemSecurityContext.java +++ b/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/SystemSecurityContext.java @@ -17,21 +17,18 @@ import org.eclipse.hawkbit.im.authentication.SpPermission.SpringEvalExpressions; import org.eclipse.hawkbit.tenancy.TenantAware; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextImpl; -import org.springframework.stereotype.Service; import com.google.common.base.Throwables; /** * A Service which provide to run system code. */ -@Service public class SystemSecurityContext { private static final Logger LOG = LoggerFactory.getLogger(SystemSecurityContext.class); @@ -44,7 +41,6 @@ public class SystemSecurityContext { * @param tenantAware * the tenant aware bean to retrieve the current tenant */ - @Autowired public SystemSecurityContext(final TenantAware tenantAware) { this.tenantAware = tenantAware; } diff --git a/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/util/SPInfo.java b/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/util/SPInfo.java deleted file mode 100644 index feb94c0d7..000000000 --- a/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/util/SPInfo.java +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Copyright (c) 2015 Bosch Software Innovations GmbH and others. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.hawkbit.util; - -import javax.servlet.MultipartConfigElement; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * Bean which contains all informations about the SP software, e.g. like - * version, built time etc. from the environment. - * - */ -@Component -public class SPInfo { - - // package private for testing purposes - static final String UNKNOWN_VERSION = "unknown"; - - static final String UNKNOWN_CREDENTIAL = "unknown credential"; - - @Autowired - private MultipartConfigElement configElement; - - /** - * @return the max file size to upload artifact files in bytes which has - * been configured. - */ - public long getMaxArtifactFileSize() { - return configElement.getMaxFileSize(); - } -} diff --git a/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/ExcludePathAwareShallowETagFilterTest.java b/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/security/ExcludePathAwareShallowETagFilterTest.java similarity index 97% rename from hawkbit-security-core/src/test/java/org/eclipse/hawkbit/ExcludePathAwareShallowETagFilterTest.java rename to hawkbit-security-core/src/test/java/org/eclipse/hawkbit/security/ExcludePathAwareShallowETagFilterTest.java index 0b2c0b116..cd7cf5d0d 100644 --- a/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/ExcludePathAwareShallowETagFilterTest.java +++ b/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/security/ExcludePathAwareShallowETagFilterTest.java @@ -6,7 +6,7 @@ * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ -package org.eclipse.hawkbit; +package org.eclipse.hawkbit.security; import static org.fest.assertions.Assertions.assertThat; import static org.mockito.Mockito.mockingDetails; @@ -21,6 +21,7 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.eclipse.hawkbit.security.ExcludePathAwareShallowETagFilter; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; diff --git a/hawkbit-security-integration/pom.xml b/hawkbit-security-integration/pom.xml index 455e3ece1..401d6b0bc 100644 --- a/hawkbit-security-integration/pom.xml +++ b/hawkbit-security-integration/pom.xml @@ -35,8 +35,13 @@ org.springframework.security spring-security-web + + javax.servlet + javax.servlet-api + provided + - + org.eclipse.hawkbit hawkbit-repository-jpa diff --git a/hawkbit-starters/README.md b/hawkbit-starters/README.md new file mode 100644 index 000000000..121094e02 --- /dev/null +++ b/hawkbit-starters/README.md @@ -0,0 +1,5 @@ +This is a set of [Spring Boot Starters](http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter) that allows to quick start a spring boot based application with hawkBit's core functionality. + +The [all in one](hawkbit-boot-starter) starter contains the complete feature set in addition we provide four starters for the hawkBit interfaces. They can be combined in any order. + +Check out the hawkBit [example application](../examples/hawkbit-example-app) as a reference. \ No newline at end of file diff --git a/hawkbit-starters/hawkbit-boot-starter-ddi-api/README.MD b/hawkbit-starters/hawkbit-boot-starter-ddi-api/README.MD new file mode 100644 index 000000000..7a900dfae --- /dev/null +++ b/hawkbit-starters/hawkbit-boot-starter-ddi-api/README.MD @@ -0,0 +1 @@ +[Spring Boot Starter](http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter) for the [Direct Device Integration API](https://www.eclipse.org/hawkbit/documentation/interfaces/ddi-api.html). \ No newline at end of file diff --git a/hawkbit-starters/hawkbit-boot-starter-ddi-api/pom.xml b/hawkbit-starters/hawkbit-boot-starter-ddi-api/pom.xml new file mode 100644 index 000000000..043aeb49e --- /dev/null +++ b/hawkbit-starters/hawkbit-boot-starter-ddi-api/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + org.eclipse.hawkbit + hawkbit-starters + 0.2.0-SNAPSHOT + + hawkbit-boot-starter-ddi-api + hawkBit :: Spring Boot Starter DDI API + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + org.springframework.boot + spring-boot-starter-jetty + + + org.springframework.boot + spring-boot-starter + + + org.springframework.security + spring-security-web + + + org.springframework.security + spring-security-config + + + org.springframework.security + spring-security-aspects + + + + + + org.eclipse.hawkbit + hawkbit-ddi-resource + ${project.version} + + + org.eclipse.hawkbit + hawkbit-security-integration + ${project.version} + + + org.eclipse.hawkbit + hawkbit-http-security + ${project.version} + + + org.eclipse.hawkbit + hawkbit-repository-jpa + ${project.version} + + + org.eclipse.hawkbit + hawkbit-autoconfigure + ${project.version} + + + + + \ No newline at end of file diff --git a/hawkbit-starters/hawkbit-boot-starter-dmf-api/README.MD b/hawkbit-starters/hawkbit-boot-starter-dmf-api/README.MD new file mode 100644 index 000000000..6ed433b5c --- /dev/null +++ b/hawkbit-starters/hawkbit-boot-starter-dmf-api/README.MD @@ -0,0 +1 @@ +[Spring Boot Starter](http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter) for the [Device Management Federation API (AMQP 0.9)](https://www.eclipse.org/hawkbit/documentation/interfaces/dmf-api.html). \ No newline at end of file diff --git a/hawkbit-starters/hawkbit-boot-starter-dmf-api/pom.xml b/hawkbit-starters/hawkbit-boot-starter-dmf-api/pom.xml new file mode 100644 index 000000000..cd9deeb0f --- /dev/null +++ b/hawkbit-starters/hawkbit-boot-starter-dmf-api/pom.xml @@ -0,0 +1,56 @@ + + + 4.0.0 + + org.eclipse.hawkbit + hawkbit-starters + 0.2.0-SNAPSHOT + + hawkbit-boot-starter-dmf-api + hawkBit :: Spring Boot Starter DMF API + + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.security + spring-security-config + + + org.springframework.security + spring-security-aspects + + + + + + org.eclipse.hawkbit + hawkbit-dmf-amqp + ${project.version} + + + org.eclipse.hawkbit + hawkbit-repository-jpa + ${project.version} + + + org.eclipse.hawkbit + hawkbit-autoconfigure + ${project.version} + + + + + \ No newline at end of file diff --git a/hawkbit-starters/hawkbit-boot-starter-mgmt-api/README.MD b/hawkbit-starters/hawkbit-boot-starter-mgmt-api/README.MD new file mode 100644 index 000000000..2202eef70 --- /dev/null +++ b/hawkbit-starters/hawkbit-boot-starter-mgmt-api/README.MD @@ -0,0 +1 @@ +[Spring Boot Starter](http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter) for the [Management API](https://www.eclipse.org/hawkbit/documentation/interfaces/management-api.html). \ No newline at end of file diff --git a/hawkbit-starters/hawkbit-boot-starter-mgmt-api/pom.xml b/hawkbit-starters/hawkbit-boot-starter-mgmt-api/pom.xml new file mode 100644 index 000000000..ee083cc21 --- /dev/null +++ b/hawkbit-starters/hawkbit-boot-starter-mgmt-api/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + org.eclipse.hawkbit + hawkbit-starters + 0.2.0-SNAPSHOT + + hawkbit-boot-starter-mgmt-api + hawkBit :: Spring Boot Starter Management API + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + org.springframework.boot + spring-boot-starter-jetty + + + org.springframework.boot + spring-boot-starter + + + org.springframework.security + spring-security-web + + + org.springframework.security + spring-security-config + + + org.springframework.security + spring-security-aspects + + + + + + org.eclipse.hawkbit + hawkbit-mgmt-resource + ${project.version} + + + org.eclipse.hawkbit + hawkbit-security-integration + ${project.version} + + + org.eclipse.hawkbit + hawkbit-http-security + ${project.version} + + + org.eclipse.hawkbit + hawkbit-repository-jpa + ${project.version} + + + org.eclipse.hawkbit + hawkbit-autoconfigure + ${project.version} + + + + + + \ No newline at end of file diff --git a/hawkbit-starters/hawkbit-boot-starter-mgmt-ui/README.MD b/hawkbit-starters/hawkbit-boot-starter-mgmt-ui/README.MD new file mode 100644 index 000000000..3cf04beca --- /dev/null +++ b/hawkbit-starters/hawkbit-boot-starter-mgmt-ui/README.MD @@ -0,0 +1 @@ +[Spring Boot Starter](http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter) for the [Management UI](https://www.eclipse.org/hawkbit/documentation/interfaces/management-ui.html). \ No newline at end of file diff --git a/hawkbit-starters/hawkbit-boot-starter-mgmt-ui/pom.xml b/hawkbit-starters/hawkbit-boot-starter-mgmt-ui/pom.xml new file mode 100644 index 000000000..91c299718 --- /dev/null +++ b/hawkbit-starters/hawkbit-boot-starter-mgmt-ui/pom.xml @@ -0,0 +1,86 @@ + + + 4.0.0 + + org.eclipse.hawkbit + hawkbit-starters + 0.2.0-SNAPSHOT + + hawkbit-boot-starter-mgmt-ui + hawkBit :: Spring Boot Starter Management UI + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + org.springframework.boot + spring-boot-starter-jetty + + + org.springframework.boot + spring-boot-starter + + + org.springframework.security + spring-security-web + + + org.springframework.security + spring-security-config + + + org.springframework.security + spring-security-aspects + + + + + + org.eclipse.hawkbit + hawkbit-ui + ${project.version} + + + org.eclipse.hawkbit + hawkbit-repository-jpa + ${project.version} + + + org.eclipse.hawkbit + hawkbit-autoconfigure + ${project.version} + + + + + + com.vaadin + vaadin-client + + + com.vaadin.external.gwt + gwt-elemental + + + + + + \ No newline at end of file diff --git a/hawkbit-starters/hawkbit-boot-starter/README.MD b/hawkbit-starters/hawkbit-boot-starter/README.MD new file mode 100644 index 000000000..e208fba09 --- /dev/null +++ b/hawkbit-starters/hawkbit-boot-starter/README.MD @@ -0,0 +1,6 @@ +[Spring Boot Starter](http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter) including all four interfaces: + +* [Management UI](https://www.eclipse.org/hawkbit/documentation/interfaces/management-ui.html) +* [Management API](https://www.eclipse.org/hawkbit/documentation/interfaces/management-api.html) +* [Direct Device Integration API](https://www.eclipse.org/hawkbit/documentation/interfaces/ddi-api.html) +* [Device Management Federation API (AMQP 0.9)](https://www.eclipse.org/hawkbit/documentation/interfaces/dmf-api.html) \ No newline at end of file diff --git a/hawkbit-starters/hawkbit-boot-starter/pom.xml b/hawkbit-starters/hawkbit-boot-starter/pom.xml new file mode 100644 index 000000000..d20f4201a --- /dev/null +++ b/hawkbit-starters/hawkbit-boot-starter/pom.xml @@ -0,0 +1,46 @@ + + + 4.0.0 + + org.eclipse.hawkbit + hawkbit-starters + 0.2.0-SNAPSHOT + + hawkbit-boot-starter + hawkBit :: Spring Boot Starter + Complete starter, including auto-configuration, logging and all hawkBit interfaces + + + + org.eclipse.hawkbit + hawkbit-boot-starter-ddi-api + ${project.version} + + + org.eclipse.hawkbit + hawkbit-boot-starter-dmf-api + ${project.version} + + + org.eclipse.hawkbit + hawkbit-boot-starter-mgmt-api + ${project.version} + + + org.eclipse.hawkbit + hawkbit-boot-starter-mgmt-ui + ${project.version} + + + + \ No newline at end of file diff --git a/hawkbit-starters/pom.xml b/hawkbit-starters/pom.xml new file mode 100644 index 000000000..111ac401f --- /dev/null +++ b/hawkbit-starters/pom.xml @@ -0,0 +1,30 @@ + + + 4.0.0 + + org.eclipse.hawkbit + hawkbit-parent + 0.2.0-SNAPSHOT + + hawkbit-starters + hawkBit :: Spring Boot Starters Parent + pom + + hawkbit-boot-starter + hawkbit-boot-starter-mgmt-ui + hawkbit-boot-starter-mgmt-api + hawkbit-boot-starter-ddi-api + hawkbit-boot-starter-dmf-api + + + \ No newline at end of file diff --git a/hawkbit-ui/pom.xml b/hawkbit-ui/pom.xml index cda6da026..b8827dc89 100644 --- a/hawkbit-ui/pom.xml +++ b/hawkbit-ui/pom.xml @@ -130,7 +130,7 @@ com.vaadin vaadin-maven-plugin - [7.6.3,) + [7.7.3,) compile-theme diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/repository/OffsetBasedPageRequest.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/repository/OffsetBasedPageRequest.java deleted file mode 100644 index f463bf7ab..000000000 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/repository/OffsetBasedPageRequest.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Copyright (c) 2015 Bosch Software Innovations GmbH and others. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.hawkbit.repository; - -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; - -/** - * An implementation of the {@link PageRequest} which is offset based by means - * the offset is given and not the page number as in the original - * {@link PageRequest} implemntation where the offset is generated. Due that the - * REST-API is working with {@code offset} and {@code limit} parameter we need - * an offset based page request for JPA. - * - * - * - * - */ -public final class OffsetBasedPageRequest extends PageRequest { - - private static final long serialVersionUID = 1L; - private final int offset; - - /** - * Creates a new {@link OffsetBasedPageRequest}. Offsets are zero indexed, - * thus providing 0 for {@code offset} will return the first entry. - * - * @param offset - * zero-based offset index. - * @param limit - * the limit of the page to be returned. - */ - public OffsetBasedPageRequest(final int offset, final int limit) { - this(offset, limit, null); - } - - /** - * Creates a new {@link OffsetBasedPageRequest}. Offsets are zero indexed, - * thus providing 0 for {@code offset} will return the first entry. - * - * @param offset - * zero-based offset index. - * @param limit - * the limit of the page to be returned. - * @param sort - * sort can be {@literal null}. - */ - public OffsetBasedPageRequest(final int offset, final int limit, final Sort sort) { - super(0, limit, sort); - this.offset = offset; - } - - @Override - public int getOffset() { - return offset; - } - - @Override - public String toString() { - return "OffsetBasedPageRequest [offset=" + offset + ", getPageSize()=" + getPageSize() + ", getPageNumber()=" - + getPageNumber() + "]"; - } -} diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/push/AsyncVaadinServletConfiguration.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/AsyncVaadinServletConfiguration.java similarity index 97% rename from hawkbit-ui/src/main/java/org/eclipse/hawkbit/push/AsyncVaadinServletConfiguration.java rename to hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/AsyncVaadinServletConfiguration.java index 89ff3413e..41a687f77 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/push/AsyncVaadinServletConfiguration.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/AsyncVaadinServletConfiguration.java @@ -6,7 +6,7 @@ * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ -package org.eclipse.hawkbit.push; +package org.eclipse.hawkbit.ui; import org.atmosphere.container.JSR356AsyncSupport; import org.atmosphere.cpr.ApplicationConfig; @@ -23,9 +23,6 @@ import com.vaadin.spring.boot.internal.VaadinServletConfigurationProperties; * {@link VaadinServletConfiguration} that sets the context path for * {@link JSR356AsyncSupport} that registers * {@link SpringSecurityAtmosphereInterceptor} for spring security integration. - * - * - * */ @Configuration @EnableConfigurationProperties(VaadinServletConfigurationProperties.class) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/DefaultHawkbitUI.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/DefaultHawkbitUI.java index 959df4c43..623734218 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/DefaultHawkbitUI.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/DefaultHawkbitUI.java @@ -16,10 +16,6 @@ import com.vaadin.ui.UI; /** * Abstract class for the ui to set widgetset and theme. - * - * - * - * */ @SuppressWarnings("serial") @Widgetset(value = HawkbitTheme.WIDGET_SET_NAME) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/DispatcherRunnable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/DispatcherRunnable.java index c15350bed..16f8aed19 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/DispatcherRunnable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/DispatcherRunnable.java @@ -20,10 +20,6 @@ import com.vaadin.util.CurrentInstance; /** * A {@link Runnable} implementation for the {@link UI#access(Runnable)} to * dispatch events to the UI in the UI thread. - * - * - * - * */ public class DispatcherRunnable implements Runnable { @@ -51,11 +47,6 @@ public class DispatcherRunnable implements Runnable { this.event = event; } - /* - * (non-Javadoc) - * - * @see java.lang.Runnable#run() - */ @Override public void run() { CurrentInstance.setCurrent(session.getUIs().iterator().next()); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/MgmtUiConfiguration.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/MgmtUiConfiguration.java new file mode 100644 index 000000000..24e377564 --- /dev/null +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/MgmtUiConfiguration.java @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2015 Bosch Software Innovations GmbH and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + */ +package org.eclipse.hawkbit.ui; + +import org.eclipse.hawkbit.im.authentication.PermissionService; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; + +/** + * Enables UI components for the Management UI. + * + */ +@Configuration +@ComponentScan +@Import(AsyncVaadinServletConfiguration.class) +@EnableConfigurationProperties(UiProperties.class) +public class MgmtUiConfiguration { + + /** + * @param permissionService + * to use in the checker + * @return {@link SpPermissionChecker} bean + */ + @Bean + @ConditionalOnMissingBean + public SpPermissionChecker spPermissionChecker(final PermissionService permissionService) { + return new SpPermissionChecker(permissionService); + } + +} diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/repository/SpPermissionChecker.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/SpPermissionChecker.java similarity index 99% rename from hawkbit-ui/src/main/java/org/eclipse/hawkbit/repository/SpPermissionChecker.java rename to hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/SpPermissionChecker.java index 5253f899a..01e9760a6 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/repository/SpPermissionChecker.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/SpPermissionChecker.java @@ -6,7 +6,7 @@ * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ -package org.eclipse.hawkbit.repository; +package org.eclipse.hawkbit.ui; import java.io.Serializable; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/push/SpringSecurityAtmosphereInterceptor.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/SpringSecurityAtmosphereInterceptor.java similarity index 89% rename from hawkbit-ui/src/main/java/org/eclipse/hawkbit/push/SpringSecurityAtmosphereInterceptor.java rename to hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/SpringSecurityAtmosphereInterceptor.java index 64423bd4f..bee5ab948 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/push/SpringSecurityAtmosphereInterceptor.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/SpringSecurityAtmosphereInterceptor.java @@ -6,7 +6,7 @@ * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ -package org.eclipse.hawkbit.push; +package org.eclipse.hawkbit.ui; import org.atmosphere.config.service.AtmosphereInterceptorService; import org.atmosphere.cpr.Action; @@ -23,20 +23,10 @@ import org.springframework.security.web.context.HttpSessionSecurityContextReposi * {@link SecurityContextHolder}. This is necessary due that websocket requests * are not going through the spring security filter chain and the * {@link SecurityContext} will not be present in the current Thread. - * - * - * - * */ @AtmosphereInterceptorService public class SpringSecurityAtmosphereInterceptor extends AtmosphereInterceptorAdapter { - /* - * (non-Javadoc) - * - * @see org.atmosphere.cpr.AtmosphereInterceptor#inspect(org.atmosphere.cpr. - * AtmosphereResource) - */ @Override public Action inspect(final AtmosphereResource r) { final SecurityContext context = (SecurityContext) r.getRequest().getSession() diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/UiProperties.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/UiProperties.java index 119b57b10..0e0bdac8a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/UiProperties.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/UiProperties.java @@ -11,13 +11,11 @@ package org.eclipse.hawkbit.ui; import java.io.Serializable; import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; /** * Properties for Management UI customization. * */ -@Component @ConfigurationProperties("hawkbit.server.ui") public class UiProperties implements Serializable { private static final long serialVersionUID = 1L; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/UploadArtifactView.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/UploadArtifactView.java index 4b7b8860f..17d14f05a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/UploadArtifactView.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/UploadArtifactView.java @@ -10,13 +10,14 @@ package org.eclipse.hawkbit.ui.artifacts; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; +import javax.servlet.MultipartConfigElement; import org.eclipse.hawkbit.repository.ArtifactManagement; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.ui.HawkbitUI; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.details.ArtifactDetailsLayout; import org.eclipse.hawkbit.ui.artifacts.event.ArtifactDetailsEvent; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent; @@ -30,7 +31,6 @@ import org.eclipse.hawkbit.ui.dd.criteria.UploadViewClientCriterion; import org.eclipse.hawkbit.ui.utils.I18N; import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; import org.eclipse.hawkbit.ui.utils.UINotification; -import org.eclipse.hawkbit.util.SPInfo; import org.springframework.beans.factory.annotation.Autowired; import org.vaadin.spring.events.EventBus; import org.vaadin.spring.events.EventBus.UIEventBus; @@ -92,7 +92,7 @@ public class UploadArtifactView extends VerticalLayout implements View, BrowserW final UINotification uiNotification, final ArtifactUploadState artifactUploadState, final TagManagement tagManagement, final EntityFactory entityFactory, final SoftwareManagement softwareManagement, final UploadViewClientCriterion uploadViewClientCriterion, - final SPInfo spInfo, final ArtifactManagement artifactManagement) { + final MultipartConfigElement multipartConfigElement, final ArtifactManagement artifactManagement) { this.eventBus = eventBus; this.permChecker = permChecker; this.i18n = i18n; @@ -104,8 +104,8 @@ public class UploadArtifactView extends VerticalLayout implements View, BrowserW eventBus, softwareManagement, entityFactory, uploadViewClientCriterion); this.artifactDetailsLayout = new ArtifactDetailsLayout(i18n, eventBus, artifactUploadState, uiNotification, artifactManagement); - this.uploadLayout = new UploadLayout(i18n, uiNotification, eventBus, artifactUploadState, spInfo, - artifactManagement); + this.uploadLayout = new UploadLayout(i18n, uiNotification, eventBus, artifactUploadState, + multipartConfigElement, artifactManagement); this.deleteActionsLayout = new SMDeleteActionsLayout(i18n, permChecker, eventBus, uiNotification, artifactUploadState, softwareManagement, uploadViewClientCriterion); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/footer/SMDeleteActionsLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/footer/SMDeleteActionsLayout.java index 8910fcc8d..b9156da39 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/footer/SMDeleteActionsLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/footer/SMDeleteActionsLayout.java @@ -11,7 +11,7 @@ package org.eclipse.hawkbit.ui.artifacts.footer; import java.util.Set; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.event.UploadArtifactUIEvent; import org.eclipse.hawkbit.ui.artifacts.state.ArtifactUploadState; import org.eclipse.hawkbit.ui.common.footer.AbstractDeleteActionsLayout; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleDetails.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleDetails.java index 18790f29e..d9a749367 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleDetails.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleDetails.java @@ -10,9 +10,9 @@ package org.eclipse.hawkbit.ui.artifacts.smtable; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.model.MetaData; import org.eclipse.hawkbit.repository.model.SoftwareModule; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent; import org.eclipse.hawkbit.ui.artifacts.state.ArtifactUploadState; import org.eclipse.hawkbit.ui.common.detailslayout.AbstractNamedVersionedEntityTableDetailsLayout; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java index 66392840e..b2f6e949c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java @@ -8,7 +8,7 @@ */ package org.eclipse.hawkbit.ui.artifacts.smtable; -import org.eclipse.hawkbit.repository.SpPermissionChecker; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.event.SMFilterEvent; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent; import org.eclipse.hawkbit.ui.artifacts.event.UploadArtifactUIEvent; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableLayout.java index bc024c7a4..948001448 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableLayout.java @@ -10,7 +10,7 @@ package org.eclipse.hawkbit.ui.artifacts.smtable; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.state.ArtifactUploadState; import org.eclipse.hawkbit.ui.common.table.AbstractTableLayout; import org.eclipse.hawkbit.ui.dd.criteria.UploadViewClientCriterion; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java index 83451a192..94671636e 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java @@ -13,9 +13,9 @@ import java.util.List; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleTypeEvent; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleTypeEvent.SoftwareModuleTypeEnum; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerConstants; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterHeader.java index 94cac35d9..56949ec95 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterHeader.java @@ -10,8 +10,8 @@ package org.eclipse.hawkbit.ui.artifacts.smtype; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.event.UploadArtifactUIEvent; import org.eclipse.hawkbit.ui.artifacts.state.ArtifactUploadState; import org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterHeader; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterLayout.java index 06eb02439..4d31c7192 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/SMTypeFilterLayout.java @@ -10,8 +10,8 @@ package org.eclipse.hawkbit.ui.artifacts.smtype; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.event.UploadArtifactUIEvent; import org.eclipse.hawkbit.ui.artifacts.state.ArtifactUploadState; import org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterLayout; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadLayout.java index 96e21c6da..ec076830a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadLayout.java @@ -17,6 +17,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Set; +import javax.servlet.MultipartConfigElement; + import org.apache.commons.io.FileUtils; import org.eclipse.hawkbit.repository.ArtifactManagement; import org.eclipse.hawkbit.repository.exception.ArtifactUploadFailedException; @@ -40,7 +42,6 @@ import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions; import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions; import org.eclipse.hawkbit.ui.utils.UIComponentIdProvider; import org.eclipse.hawkbit.ui.utils.UINotification; -import org.eclipse.hawkbit.util.SPInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; @@ -89,7 +90,7 @@ public class UploadLayout extends VerticalLayout { private final ArtifactUploadState artifactUploadState; - private final transient SPInfo spInfo; + private final transient MultipartConfigElement multipartConfigElement; private final List duplicateFileNamesList = new ArrayList<>(); @@ -117,14 +118,14 @@ public class UploadLayout extends VerticalLayout { private final transient ArtifactManagement artifactManagement; public UploadLayout(final I18N i18n, final UINotification uiNotification, final UIEventBus eventBus, - final ArtifactUploadState artifactUploadState, final SPInfo spInfo, + final ArtifactUploadState artifactUploadState, final MultipartConfigElement multipartConfigElement, final ArtifactManagement artifactManagement) { this.uploadInfoWindow = new UploadStatusInfoWindow(eventBus, artifactUploadState, i18n); this.i18n = i18n; this.uiNotification = uiNotification; this.eventBus = eventBus; this.artifactUploadState = artifactUploadState; - this.spInfo = spInfo; + this.multipartConfigElement = multipartConfigElement; this.artifactManagement = artifactManagement; createComponents(); @@ -173,8 +174,8 @@ public class UploadLayout extends VerticalLayout { private void buildLayout() { final Upload upload = new Upload(); - final UploadHandler uploadHandler = new UploadHandler(null, 0, this, spInfo.getMaxArtifactFileSize(), upload, - null, null); + final UploadHandler uploadHandler = new UploadHandler(null, 0, this, multipartConfigElement.getMaxFileSize(), + upload, null, null); upload.setButtonCaption(i18n.get("upload.file")); upload.setImmediate(true); upload.setReceiver(uploadHandler); @@ -282,7 +283,7 @@ public class UploadLayout extends VerticalLayout { private StreamVariable createStreamVariable(final Html5File file, final SoftwareModule selectedSw) { return new UploadHandler(file.getFileName(), file.getFileSize(), UploadLayout.this, - spInfo.getMaxArtifactFileSize(), null, file.getType(), selectedSw); + multipartConfigElement.getMaxFileSize(), null, file.getType(), selectedSw); } private boolean isDirectory(final Html5File file) { @@ -647,13 +648,6 @@ public class UploadLayout extends VerticalLayout { return i18n; } - /** - * @return - */ - SPInfo getSPInfo() { - return spInfo; - } - void setCurrentUploadConfirmationwindow(final UploadConfirmationWindow currentUploadConfirmationwindow) { this.currentUploadConfirmationwindow = currentUploadConfirmationwindow; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java index ca71d7c25..9fcd87838 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java @@ -11,10 +11,10 @@ package org.eclipse.hawkbit.ui.common; import java.util.List; import java.util.Set; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.exception.EntityNotFoundException; import org.eclipse.hawkbit.repository.model.MetaData; import org.eclipse.hawkbit.repository.model.NamedVersionedEntity; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.CommonDialogWindow.SaveDialogCloseListener; import org.eclipse.hawkbit.ui.common.builder.LabelBuilder; import org.eclipse.hawkbit.ui.common.builder.TextAreaBuilder; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/AbstractNamedVersionedEntityTableDetailsLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/AbstractNamedVersionedEntityTableDetailsLayout.java index a5952c0da..710c4ff40 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/AbstractNamedVersionedEntityTableDetailsLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/AbstractNamedVersionedEntityTableDetailsLayout.java @@ -8,8 +8,8 @@ */ package org.eclipse.hawkbit.ui.common.detailslayout; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.model.NamedVersionedEntity; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.management.state.ManagementUIState; import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil; import org.eclipse.hawkbit.ui.utils.I18N; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/AbstractTableDetailsLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/AbstractTableDetailsLayout.java index 1e278a69e..ada82e335 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/AbstractTableDetailsLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/AbstractTableDetailsLayout.java @@ -11,9 +11,9 @@ package org.eclipse.hawkbit.ui.common.detailslayout; import java.util.Map; import org.apache.commons.lang3.StringUtils; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.Target; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.builder.LabelBuilder; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; import org.eclipse.hawkbit.ui.common.table.BaseUIEntityEvent; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/DistributionSetMetadatadetailslayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/DistributionSetMetadatadetailslayout.java index b834509ab..580ef167c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/DistributionSetMetadatadetailslayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/DistributionSetMetadatadetailslayout.java @@ -12,9 +12,9 @@ import java.util.List; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.DistributionSetMetadata; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; import org.eclipse.hawkbit.ui.decorators.SPUIButtonStyleSmallNoBorder; import org.eclipse.hawkbit.ui.distributions.dstable.DsMetadataPopupLayout; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/SoftwareModuleDetailsTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/SoftwareModuleDetailsTable.java index c0eb14347..0df177350 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/SoftwareModuleDetailsTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/SoftwareModuleDetailsTable.java @@ -11,11 +11,11 @@ package org.eclipse.hawkbit.ui.common.detailslayout; import java.util.Set; import org.eclipse.hawkbit.repository.DistributionSetManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.exception.EntityReadOnlyException; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.DistributionSetIdName; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/SoftwareModuleMetadatadetailslayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/SoftwareModuleMetadatadetailslayout.java index 49fc1b0a0..2691773d2 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/SoftwareModuleMetadatadetailslayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/detailslayout/SoftwareModuleMetadatadetailslayout.java @@ -12,9 +12,9 @@ import java.util.List; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.SoftwareModuleMetadata; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; import org.eclipse.hawkbit.ui.decorators.SPUIButtonStyleSmallNoBorder; import org.eclipse.hawkbit.ui.distributions.smtable.SwMetadataPopupLayout; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/filterlayout/AbstractFilterHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/filterlayout/AbstractFilterHeader.java index 4eab54951..8ddf90111 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/filterlayout/AbstractFilterHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/filterlayout/AbstractFilterHeader.java @@ -8,7 +8,7 @@ */ package org.eclipse.hawkbit.ui.common.filterlayout; -import org.eclipse.hawkbit.repository.SpPermissionChecker; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.builder.LabelBuilder; import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; import org.eclipse.hawkbit.ui.decorators.SPUIButtonStyleSmallNoBorder; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/footer/AbstractDeleteActionsLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/footer/AbstractDeleteActionsLayout.java index 90f8736e3..8b1c58317 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/footer/AbstractDeleteActionsLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/footer/AbstractDeleteActionsLayout.java @@ -8,7 +8,7 @@ */ package org.eclipse.hawkbit.ui.common.footer; -import org.eclipse.hawkbit.repository.SpPermissionChecker; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.builder.WindowBuilder; import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; import org.eclipse.hawkbit.ui.decorators.SPUIButtonStyleSmall; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/grid/AbstractGrid.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/grid/AbstractGrid.java index 3d9a5afac..9a29b9c61 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/grid/AbstractGrid.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/grid/AbstractGrid.java @@ -8,7 +8,7 @@ */ package org.eclipse.hawkbit.ui.common.grid; -import org.eclipse.hawkbit.repository.SpPermissionChecker; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.utils.I18N; import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; import org.vaadin.spring.events.EventBus; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/grid/AbstractGridHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/grid/AbstractGridHeader.java index c319f84e5..67a3257ab 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/grid/AbstractGridHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/grid/AbstractGridHeader.java @@ -8,7 +8,7 @@ */ package org.eclipse.hawkbit.ui.common.grid; -import org.eclipse.hawkbit.repository.SpPermissionChecker; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.builder.TextFieldBuilder; import org.eclipse.hawkbit.ui.components.SPUIButton; import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java index 4ad92b482..8d41ff654 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java @@ -8,7 +8,7 @@ */ package org.eclipse.hawkbit.ui.common.table; -import org.eclipse.hawkbit.repository.SpPermissionChecker; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.state.ArtifactUploadState; import org.eclipse.hawkbit.ui.common.builder.LabelBuilder; import org.eclipse.hawkbit.ui.common.builder.TextFieldBuilder; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTagToken.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTagToken.java index 9abc83090..ede305c68 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTagToken.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTagToken.java @@ -13,8 +13,8 @@ import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.model.BaseEntity; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; import org.eclipse.hawkbit.ui.common.table.BaseUIEntityEvent; import org.eclipse.hawkbit.ui.management.state.ManagementUIState; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTargetTagToken.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTargetTagToken.java index f5e189773..abfb1a498 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTargetTagToken.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/AbstractTargetTagToken.java @@ -10,10 +10,10 @@ package org.eclipse.hawkbit.ui.common.tagdetails; import java.util.List; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.event.remote.entity.TargetTagUpdateEvent; import org.eclipse.hawkbit.repository.model.BaseEntity; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.management.state.ManagementUIState; import org.eclipse.hawkbit.ui.push.TargetTagCreatedEventContainer; import org.eclipse.hawkbit.ui.push.TargetTagDeletedEventContainer; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/DistributionTagToken.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/DistributionTagToken.java index cb9845d65..6aa79759c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/DistributionTagToken.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/DistributionTagToken.java @@ -12,11 +12,11 @@ import java.util.List; import java.util.stream.Collectors; import org.eclipse.hawkbit.repository.DistributionSetManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.DistributionSetTag; import org.eclipse.hawkbit.repository.model.DistributionSetTagAssignmentResult; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.management.event.DistributionTableEvent; import org.eclipse.hawkbit.ui.management.event.ManagementUIEvent; import org.eclipse.hawkbit.ui.management.state.ManagementUIState; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/TargetTagToken.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/TargetTagToken.java index 4d5ab0a8d..d52828108 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/TargetTagToken.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/tagdetails/TargetTagToken.java @@ -11,12 +11,12 @@ package org.eclipse.hawkbit.ui.common.tagdetails; import java.util.HashSet; import java.util.Set; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.model.TargetTag; import org.eclipse.hawkbit.repository.model.TargetTagAssignmentResult; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.management.event.ManagementUIEvent; import org.eclipse.hawkbit.ui.management.event.TargetTableEvent; import org.eclipse.hawkbit.ui.management.state.ManagementUIState; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/client/criteria/ItemIdClientCriterion.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/client/criteria/ItemIdClientCriterion.java index d99747a6c..e58c98422 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/client/criteria/ItemIdClientCriterion.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/client/criteria/ItemIdClientCriterion.java @@ -11,8 +11,8 @@ package org.eclipse.hawkbit.ui.dd.client.criteria; import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.COMPONENT; import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.COMPONENT_COUNT; import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.MODE; -import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.STRICT_MODE; import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.PREFIX_MODE; +import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.STRICT_MODE; import java.util.logging.Level; import java.util.logging.Logger; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/client/criteria/ViewComponentClientCriterion.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/client/criteria/ViewComponentClientCriterion.java index b65860928..27d9f8718 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/client/criteria/ViewComponentClientCriterion.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/client/criteria/ViewComponentClientCriterion.java @@ -9,10 +9,10 @@ package org.eclipse.hawkbit.ui.dd.client.criteria; import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.DRAG_SOURCE; -import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.DROP_TARGET; -import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.DROP_TARGET_COUNT; import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.DROP_AREA; import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.DROP_AREA_COUNT; +import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.DROP_TARGET; +import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.DROP_TARGET_COUNT; import java.util.logging.Level; import java.util.logging.Logger; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/criteria/ServerItemIdClientCriterion.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/criteria/ServerItemIdClientCriterion.java index ded4b063d..f7987922e 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/criteria/ServerItemIdClientCriterion.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/criteria/ServerItemIdClientCriterion.java @@ -11,8 +11,8 @@ package org.eclipse.hawkbit.ui.dd.criteria; import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.COMPONENT; import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.COMPONENT_COUNT; import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.MODE; -import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.STRICT_MODE; import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.PREFIX_MODE; +import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.STRICT_MODE; import com.vaadin.event.dd.DragAndDropEvent; import com.vaadin.event.dd.acceptcriteria.ClientSideCriterion; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/criteria/ServerViewComponentClientCriterion.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/criteria/ServerViewComponentClientCriterion.java index 85a6bf9af..f16a70950 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/criteria/ServerViewComponentClientCriterion.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/dd/criteria/ServerViewComponentClientCriterion.java @@ -9,10 +9,10 @@ package org.eclipse.hawkbit.ui.dd.criteria; import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.DRAG_SOURCE; -import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.DROP_TARGET; -import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.DROP_TARGET_COUNT; import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.DROP_AREA; import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.DROP_AREA_COUNT; +import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.DROP_TARGET; +import static org.eclipse.hawkbit.ui.dd.criteria.AcceptCriteriaConstants.DROP_TARGET_COUNT; import com.vaadin.event.dd.DragAndDropEvent; import com.vaadin.event.dd.acceptcriteria.ClientSideCriterion; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/DistributionsView.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/DistributionsView.java index 2f66785b6..bd81315fa 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/DistributionsView.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/DistributionsView.java @@ -15,11 +15,11 @@ import org.eclipse.hawkbit.repository.ArtifactManagement; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.SystemManagement; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.ui.HawkbitUI; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent; import org.eclipse.hawkbit.ui.artifacts.state.ArtifactUploadState; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; @@ -49,7 +49,6 @@ import com.vaadin.spring.annotation.SpringView; import com.vaadin.spring.annotation.UIScope; import com.vaadin.ui.Alignment; import com.vaadin.ui.GridLayout; -import com.vaadin.ui.UI; import com.vaadin.ui.VerticalLayout; /** diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java index dbb83ef25..6cebde29c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java @@ -15,11 +15,11 @@ import java.util.stream.Collectors; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.builder.DistributionSetTypeUpdate; import org.eclipse.hawkbit.repository.model.DistributionSetType; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerConstants; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerHelper; import org.eclipse.hawkbit.ui.common.DistributionSetTypeBeanQuery; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterHeader.java index 7aa464fda..5c2e6c746 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterHeader.java @@ -11,8 +11,8 @@ package org.eclipse.hawkbit.ui.distributions.disttype; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.CommonDialogWindow; import org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterHeader; import org.eclipse.hawkbit.ui.distributions.event.DistributionsUIEvent; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterLayout.java index e22ee7a41..4378a3d95 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterLayout.java @@ -11,8 +11,8 @@ package org.eclipse.hawkbit.ui.distributions.disttype; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterLayout; import org.eclipse.hawkbit.ui.dd.criteria.DistributionsViewClientCriterion; import org.eclipse.hawkbit.ui.distributions.event.DistributionsUIEvent; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetDetails.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetDetails.java index c0b27b7ba..41c004f9a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetDetails.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetDetails.java @@ -16,12 +16,12 @@ import java.util.Set; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.SoftwareModuleIdName; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent.SoftwareModuleEventType; import org.eclipse.hawkbit.ui.common.DistributionSetIdName; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java index 3bc5fa881..b991a4fd2 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java @@ -17,13 +17,13 @@ import java.util.Set; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.event.remote.DistributionSetDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.DistributionSetUpdateEvent; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.SoftwareModuleIdName; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent.SoftwareModuleEventType; import org.eclipse.hawkbit.ui.common.DistributionSetIdName; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java index b21104b1b..18e79f1c2 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java @@ -8,7 +8,7 @@ */ package org.eclipse.hawkbit.ui.distributions.dstable; -import org.eclipse.hawkbit.repository.SpPermissionChecker; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.table.AbstractTableHeader; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; import org.eclipse.hawkbit.ui.distributions.event.DistributionsUIEvent; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableLayout.java index d81b45ae4..b2fa5e7e7 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableLayout.java @@ -11,10 +11,10 @@ package org.eclipse.hawkbit.ui.distributions.dstable; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.SystemManagement; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.TargetManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.table.AbstractTableLayout; import org.eclipse.hawkbit.ui.dd.criteria.DistributionsViewClientCriterion; import org.eclipse.hawkbit.ui.distributions.state.ManageDistUIState; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DsMetadataPopupLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DsMetadataPopupLayout.java index a9c3726fe..c73f55aac 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DsMetadataPopupLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DsMetadataPopupLayout.java @@ -13,10 +13,10 @@ import java.util.List; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.DistributionSetMetadata; import org.eclipse.hawkbit.repository.model.MetaData; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.AbstractMetadataPopupLayout; import org.eclipse.hawkbit.ui.utils.I18N; import org.eclipse.hawkbit.ui.utils.UINotification; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/footer/DSDeleteActionsLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/footer/DSDeleteActionsLayout.java index 131ca4b14..6245d8398 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/footer/DSDeleteActionsLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/footer/DSDeleteActionsLayout.java @@ -9,16 +9,15 @@ package org.eclipse.hawkbit.ui.distributions.footer; import java.util.HashSet; -import java.util.List; import java.util.Map.Entry; import java.util.Set; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.SystemManagement; import org.eclipse.hawkbit.repository.model.DistributionSetType; import org.eclipse.hawkbit.repository.model.SoftwareModuleIdName; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.DistributionSetIdName; import org.eclipse.hawkbit.ui.common.footer.AbstractDeleteActionsLayout; import org.eclipse.hawkbit.ui.common.table.AbstractTable; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwMetadataPopupLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwMetadataPopupLayout.java index 50c12b3f7..0389811d9 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwMetadataPopupLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwMetadataPopupLayout.java @@ -13,10 +13,10 @@ import java.util.List; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.model.MetaData; import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.SoftwareModuleMetadata; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.AbstractMetadataPopupLayout; import org.eclipse.hawkbit.ui.distributions.event.MetadataEvent; import org.eclipse.hawkbit.ui.distributions.event.MetadataEvent.MetadataUIEvent; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleDetails.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleDetails.java index 758fd72ed..5da1625de 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleDetails.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleDetails.java @@ -10,9 +10,9 @@ package org.eclipse.hawkbit.ui.distributions.smtable; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.model.MetaData; import org.eclipse.hawkbit.repository.model.SoftwareModule; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent; import org.eclipse.hawkbit.ui.artifacts.smtable.SoftwareModuleAddUpdateWindow; import org.eclipse.hawkbit.ui.common.detailslayout.AbstractNamedVersionedEntityTableDetailsLayout; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java index 918de2254..4d24f9d6b 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java @@ -8,7 +8,7 @@ */ package org.eclipse.hawkbit.ui.distributions.smtable; -import org.eclipse.hawkbit.repository.SpPermissionChecker; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.event.SMFilterEvent; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent; import org.eclipse.hawkbit.ui.artifacts.smtable.SoftwareModuleAddUpdateWindow; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableLayout.java index 272ef41be..4223faa85 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableLayout.java @@ -11,7 +11,7 @@ package org.eclipse.hawkbit.ui.distributions.smtable; import org.eclipse.hawkbit.repository.ArtifactManagement; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.smtable.SoftwareModuleAddUpdateWindow; import org.eclipse.hawkbit.ui.artifacts.state.ArtifactUploadState; import org.eclipse.hawkbit.ui.common.table.AbstractTableLayout; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterHeader.java index 3ee98a6aa..78df12233 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterHeader.java @@ -10,8 +10,8 @@ package org.eclipse.hawkbit.ui.distributions.smtype; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.artifacts.smtype.CreateUpdateSoftwareTypeLayout; import org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterHeader; import org.eclipse.hawkbit.ui.distributions.event.DistributionsUIEvent; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterLayout.java index e8cea8586..5ce4fffec 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtype/DistSMTypeFilterLayout.java @@ -10,8 +10,8 @@ package org.eclipse.hawkbit.ui.distributions.smtype; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SoftwareManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterLayout; import org.eclipse.hawkbit.ui.dd.criteria.DistributionsViewClientCriterion; import org.eclipse.hawkbit.ui.distributions.event.DistributionsUIEvent; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CreateOrUpdateFilterHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CreateOrUpdateFilterHeader.java index dc3d4acf6..58ca19786 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CreateOrUpdateFilterHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/CreateOrUpdateFilterHeader.java @@ -11,9 +11,9 @@ package org.eclipse.hawkbit.ui.filtermanagement; import java.util.Optional; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TargetFilterQueryManagement; import org.eclipse.hawkbit.repository.model.TargetFilterQuery; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.UiProperties; import org.eclipse.hawkbit.ui.common.builder.LabelBuilder; import org.eclipse.hawkbit.ui.common.builder.TextFieldBuilder; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/FilterManagementView.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/FilterManagementView.java index d9ea4da22..c85ab5ece 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/FilterManagementView.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/FilterManagementView.java @@ -12,10 +12,10 @@ import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TargetFilterQueryManagement; import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.ui.HawkbitUI; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.UiProperties; import org.eclipse.hawkbit.ui.distributions.state.ManageDistUIState; import org.eclipse.hawkbit.ui.filtermanagement.event.CustomFilterUIEvent; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterHeader.java index aaf5ae8b9..11fed88ae 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterHeader.java @@ -8,7 +8,7 @@ */ package org.eclipse.hawkbit.ui.filtermanagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.builder.LabelBuilder; import org.eclipse.hawkbit.ui.common.builder.TextFieldBuilder; import org.eclipse.hawkbit.ui.components.SPUIButton; 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 1b7aed7ee..9a20c9906 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 @@ -9,13 +9,13 @@ package org.eclipse.hawkbit.ui.layouts; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.builder.TagUpdate; import org.eclipse.hawkbit.repository.model.DistributionSetTag; import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.Tag; import org.eclipse.hawkbit.repository.model.TargetTag; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerConstants; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerHelper; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerLayout; 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 e5ac40906..c384e7392 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 @@ -9,9 +9,9 @@ package org.eclipse.hawkbit.ui.layouts; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.model.NamedEntity; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerConstants; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerHelper; import org.eclipse.hawkbit.ui.common.builder.LabelBuilder; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/DeploymentView.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/DeploymentView.java index a001c23b1..dfc76ec56 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/DeploymentView.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/DeploymentView.java @@ -14,12 +14,12 @@ import javax.annotation.PreDestroy; import org.eclipse.hawkbit.repository.DeploymentManagement; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.SystemManagement; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.TargetFilterQueryManagement; import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.ui.HawkbitUI; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.UiProperties; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; import org.eclipse.hawkbit.ui.dd.criteria.ManagementViewClientCriterion; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionDetails.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionDetails.java index e23b9c955..543db5676 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionDetails.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionDetails.java @@ -10,9 +10,9 @@ package org.eclipse.hawkbit.ui.management.dstable; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.model.DistributionSet; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.DistributionSetIdName; import org.eclipse.hawkbit.ui.common.detailslayout.AbstractNamedVersionedEntityTableDetailsLayout; import org.eclipse.hawkbit.ui.common.detailslayout.DistributionSetMetadatadetailslayout; 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 e48382bff..2e1de8b89 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.SpPermissionChecker; import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.event.remote.DistributionSetDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.DistributionSetUpdateEvent; @@ -26,6 +25,7 @@ import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.DistributionSetTagAssignmentResult; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.model.TargetIdName; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.DistributionSetIdName; import org.eclipse.hawkbit.ui.common.table.AbstractNamedVersionTable; import org.eclipse.hawkbit.ui.common.table.AbstractTable; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java index f340177fb..b5ba18575 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java @@ -8,7 +8,7 @@ */ package org.eclipse.hawkbit.ui.management.dstable; -import org.eclipse.hawkbit.repository.SpPermissionChecker; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.table.AbstractTableHeader; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; import org.eclipse.hawkbit.ui.management.event.DistributionTableEvent; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableLayout.java index d27bc6829..b2bf668f7 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableLayout.java @@ -10,10 +10,10 @@ package org.eclipse.hawkbit.ui.management.dstable; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.SystemManagement; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.TargetManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.table.AbstractTableLayout; import org.eclipse.hawkbit.ui.dd.criteria.ManagementViewClientCriterion; import org.eclipse.hawkbit.ui.distributions.dstable.DsMetadataPopupLayout; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/CreateUpdateDistributionTagLayoutWindow.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/CreateUpdateDistributionTagLayoutWindow.java index af6be8c4e..d3e907c6f 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/CreateUpdateDistributionTagLayoutWindow.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/CreateUpdateDistributionTagLayoutWindow.java @@ -13,9 +13,9 @@ import static org.apache.commons.lang3.StringUtils.isNotEmpty; import java.util.List; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.model.DistributionSetTag; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerConstants; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerHelper; import org.eclipse.hawkbit.ui.layouts.AbstractCreateUpdateTagLayout; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagButtons.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagButtons.java index f2a20f28d..05aadb09f 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagButtons.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagButtons.java @@ -12,8 +12,8 @@ import java.util.Collections; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.model.Tag; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterButtons; import org.eclipse.hawkbit.ui.dd.criteria.ManagementViewClientCriterion; import org.eclipse.hawkbit.ui.management.event.DistributionTagDropEvent; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagHeader.java index 364ed66ca..d0e485c70 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagHeader.java @@ -9,8 +9,8 @@ package org.eclipse.hawkbit.ui.management.dstag; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterHeader; import org.eclipse.hawkbit.ui.management.event.ManagementUIEvent; import org.eclipse.hawkbit.ui.management.state.ManagementUIState; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagLayout.java index b2114dff8..af497a1ee 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/DistributionTagLayout.java @@ -10,8 +10,8 @@ package org.eclipse.hawkbit.ui.management.dstag; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterLayout; import org.eclipse.hawkbit.ui.dd.criteria.ManagementViewClientCriterion; import org.eclipse.hawkbit.ui.management.event.ManagementUIEvent; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/DistributionTagDropEvent.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/DistributionTagDropEvent.java index f71536ae0..93f73b007 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/DistributionTagDropEvent.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/DistributionTagDropEvent.java @@ -13,8 +13,8 @@ import java.util.Set; import java.util.stream.Collectors; import org.eclipse.hawkbit.repository.DistributionSetManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.model.DistributionSetTagAssignmentResult; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.DistributionSetIdName; import org.eclipse.hawkbit.ui.common.table.AbstractTable; import org.eclipse.hawkbit.ui.dd.criteria.ManagementViewClientCriterion; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/DeleteActionsLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/DeleteActionsLayout.java index 247f99149..d9f83a28e 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/DeleteActionsLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/DeleteActionsLayout.java @@ -12,10 +12,10 @@ import java.util.Set; import org.eclipse.hawkbit.repository.DeploymentManagement; import org.eclipse.hawkbit.repository.DistributionSetManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.model.TargetIdName; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.DistributionSetIdName; import org.eclipse.hawkbit.ui.common.footer.AbstractDeleteActionsLayout; import org.eclipse.hawkbit.ui.common.table.AbstractTable; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkTokenTags.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkTokenTags.java index 04e98505c..f229fc288 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkTokenTags.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkTokenTags.java @@ -10,9 +10,9 @@ package org.eclipse.hawkbit.ui.management.targettable; import java.util.Map; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.model.TargetTag; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.tagdetails.AbstractTargetTagToken; import org.eclipse.hawkbit.ui.management.state.ManagementUIState; import org.eclipse.hawkbit.ui.utils.I18N; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetBulkUpdateWindowLayout.java index c57631bf0..889d968cd 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 @@ -13,9 +13,9 @@ import java.util.List; import java.util.Map; import org.eclipse.hawkbit.repository.DeploymentManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.TargetManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.UiProperties; import org.eclipse.hawkbit.ui.common.DistributionSetIdName; import org.eclipse.hawkbit.ui.common.builder.TextAreaBuilder; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetDetails.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetDetails.java index 472b9dec5..1c7473413 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetDetails.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetDetails.java @@ -12,12 +12,12 @@ import java.net.URI; import org.apache.commons.lang3.StringUtils; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.Target; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.detailslayout.AbstractTableDetailsLayout; import org.eclipse.hawkbit.ui.common.tagdetails.TargetTagToken; import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java index ea635feb9..9ac5a3e7e 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java @@ -28,7 +28,6 @@ import java.util.stream.Stream; import org.apache.commons.collections4.CollectionUtils; import org.eclipse.hawkbit.repository.FilterParams; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.event.remote.TargetDeletedEvent; import org.eclipse.hawkbit.repository.model.NamedEntity; @@ -37,6 +36,7 @@ import org.eclipse.hawkbit.repository.model.TargetIdName; import org.eclipse.hawkbit.repository.model.TargetInfo; import org.eclipse.hawkbit.repository.model.TargetTagAssignmentResult; import org.eclipse.hawkbit.repository.model.TargetUpdateStatus; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.DistributionSetIdName; import org.eclipse.hawkbit.ui.common.ManagmentEntityState; import org.eclipse.hawkbit.ui.common.UserDetailsFormatter; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java index 0a5dbcaea..78bfbcf83 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java @@ -12,9 +12,9 @@ import java.util.Set; import org.eclipse.hawkbit.repository.DeploymentManagement; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.TargetManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.UiProperties; import org.eclipse.hawkbit.ui.common.DistributionSetIdName; import org.eclipse.hawkbit.ui.common.table.AbstractTable; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableLayout.java index 2cf4eb8ba..f5496c111 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableLayout.java @@ -10,9 +10,9 @@ package org.eclipse.hawkbit.ui.management.targettable; import org.eclipse.hawkbit.repository.DeploymentManagement; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.TargetManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.UiProperties; import org.eclipse.hawkbit.ui.common.table.AbstractTableLayout; import org.eclipse.hawkbit.ui.dd.criteria.ManagementViewClientCriterion; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/CreateUpdateTargetTagLayoutWindow.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/CreateUpdateTargetTagLayoutWindow.java index 830b53c74..0d765cc77 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/CreateUpdateTargetTagLayoutWindow.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/CreateUpdateTargetTagLayoutWindow.java @@ -13,9 +13,9 @@ import static org.apache.commons.lang3.StringUtils.isNotEmpty; import java.util.List; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.model.TargetTag; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerConstants; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerHelper; import org.eclipse.hawkbit.ui.layouts.AbstractCreateUpdateTagLayout; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/MultipleTargetFilter.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/MultipleTargetFilter.java index ed3710836..84d5327d4 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/MultipleTargetFilter.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/MultipleTargetFilter.java @@ -9,9 +9,9 @@ package org.eclipse.hawkbit.ui.management.targettag; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TargetFilterQueryManagement; import org.eclipse.hawkbit.repository.TargetManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; import org.eclipse.hawkbit.ui.dd.criteria.ManagementViewClientCriterion; import org.eclipse.hawkbit.ui.decorators.SPUIButtonStyleSmallNoBorder; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterButtons.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterButtons.java index d5ef76bb0..5386e9587 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterButtons.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterButtons.java @@ -13,11 +13,11 @@ import java.util.Set; import java.util.stream.Collectors; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.model.Tag; import org.eclipse.hawkbit.repository.model.TargetIdName; import org.eclipse.hawkbit.repository.model.TargetTagAssignmentResult; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterButtons; import org.eclipse.hawkbit.ui.common.table.AbstractTable; import org.eclipse.hawkbit.ui.dd.criteria.ManagementViewClientCriterion; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterHeader.java index e579b3372..e276e9267 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterHeader.java @@ -8,7 +8,7 @@ */ package org.eclipse.hawkbit.ui.management.targettag; -import org.eclipse.hawkbit.repository.SpPermissionChecker; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterHeader; import org.eclipse.hawkbit.ui.management.event.ManagementUIEvent; import org.eclipse.hawkbit.ui.management.state.ManagementUIState; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterLayout.java index b0f4bc73b..230600246 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/TargetTagFilterLayout.java @@ -9,9 +9,9 @@ package org.eclipse.hawkbit.ui.management.targettag; import org.eclipse.hawkbit.repository.EntityFactory; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TargetFilterQueryManagement; import org.eclipse.hawkbit.repository.TargetManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.dd.criteria.ManagementViewClientCriterion; import org.eclipse.hawkbit.ui.management.event.ManagementUIEvent; import org.eclipse.hawkbit.ui.management.state.ManagementUIState; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutView.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutView.java index bdb08d7f3..9adde32e0 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutView.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutView.java @@ -14,9 +14,9 @@ import javax.annotation.PreDestroy; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.RolloutGroupManagement; import org.eclipse.hawkbit.repository.RolloutManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.ui.HawkbitUI; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.UiProperties; import org.eclipse.hawkbit.ui.rollout.event.RolloutEvent; import org.eclipse.hawkbit.ui.rollout.rollout.RolloutListView; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java index 35af17ce1..8bb635387 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java @@ -37,12 +37,12 @@ import java.util.Set; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.RolloutManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.model.Rollout; import org.eclipse.hawkbit.repository.model.Rollout.RolloutStatus; import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.UiProperties; import org.eclipse.hawkbit.ui.common.CommonDialogWindow; import org.eclipse.hawkbit.ui.common.grid.AbstractGrid; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListHeader.java index 074452c43..b72dbb8f6 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListHeader.java @@ -10,8 +10,8 @@ package org.eclipse.hawkbit.ui.rollout.rollout; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.RolloutManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TargetManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.UiProperties; import org.eclipse.hawkbit.ui.common.builder.LabelBuilder; import org.eclipse.hawkbit.ui.common.grid.AbstractGridHeader; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListView.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListView.java index 96fcd4159..767a347aa 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListView.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListView.java @@ -10,8 +10,8 @@ package org.eclipse.hawkbit.ui.rollout.rollout; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.RolloutManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TargetManagement; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.UiProperties; import org.eclipse.hawkbit.ui.common.grid.AbstractGridLayout; import org.eclipse.hawkbit.ui.rollout.state.RolloutUIState; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupListGrid.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupListGrid.java index 1ff4d30f4..19682dd2a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupListGrid.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupListGrid.java @@ -17,9 +17,9 @@ import java.util.Map; import java.util.Optional; import org.eclipse.hawkbit.repository.RolloutGroupManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.model.RolloutGroup.RolloutGroupStatus; import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.grid.AbstractGrid; import org.eclipse.hawkbit.ui.customrenderers.client.renderers.RolloutRendererData; import org.eclipse.hawkbit.ui.customrenderers.renderers.HtmlLabelRenderer; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupsListView.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupsListView.java index 4c34c1a8a..11df1c981 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupsListView.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupsListView.java @@ -9,7 +9,7 @@ package org.eclipse.hawkbit.ui.rollout.rolloutgroup; import org.eclipse.hawkbit.repository.RolloutGroupManagement; -import org.eclipse.hawkbit.repository.SpPermissionChecker; +import org.eclipse.hawkbit.ui.SpPermissionChecker; import org.eclipse.hawkbit.ui.common.grid.AbstractGridLayout; import org.eclipse.hawkbit.ui.rollout.state.RolloutUIState; import org.eclipse.hawkbit.ui.utils.I18N; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/HawkbitCommonUtil.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/HawkbitCommonUtil.java index 872abe62d..9fb1a9377 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/HawkbitCommonUtil.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/HawkbitCommonUtil.java @@ -39,7 +39,6 @@ import com.vaadin.shared.ui.label.ContentMode; import com.vaadin.ui.Button; import com.vaadin.ui.Label; import com.vaadin.ui.Table; -import com.vaadin.ui.UI; /** * Common util class. diff --git a/hawkbit-ui/src/test/java/org/eclipse/hawkbit/push/SpringSecurityAtmosphereInterceptorTest.java b/hawkbit-ui/src/test/java/org/eclipse/hawkbit/push/SpringSecurityAtmosphereInterceptorTest.java index bcf0dcf72..0aa4c7fae 100644 --- a/hawkbit-ui/src/test/java/org/eclipse/hawkbit/push/SpringSecurityAtmosphereInterceptorTest.java +++ b/hawkbit-ui/src/test/java/org/eclipse/hawkbit/push/SpringSecurityAtmosphereInterceptorTest.java @@ -15,6 +15,7 @@ import javax.servlet.http.HttpSession; import org.atmosphere.cpr.AtmosphereRequest; import org.atmosphere.cpr.AtmosphereResource; +import org.eclipse.hawkbit.ui.SpringSecurityAtmosphereInterceptor; import org.junit.After; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/pom.xml b/pom.xml index aed04b4b8..0757545d2 100644 --- a/pom.xml +++ b/pom.xml @@ -43,6 +43,7 @@ hawkbit-test-report examples extensions + hawkbit-starters