From affae1026a38b8a019b9b78a43c53a47145aa307 Mon Sep 17 00:00:00 2001 From: Avgustin Marinov Date: Wed, 2 Jul 2025 08:32:55 +0300 Subject: [PATCH] Improve Spring Bus usage (remove stream direct use) (#2521) * Improve Spring Bus usage (remove stream direct use) Signed-off-by: Avgustin Marinov * Remove getApplicaton when creating remote events --------- Signed-off-by: Avgustin Marinov --- .../ddi/rest/resource/DdiRootController.java | 3 +-- .../AbstractDDiApiIntegrationTest.java | 3 --- hawkbit-ddi/hawkbit-ddi-server/pom.xml | 5 ---- .../AmqpMessageDispatcherServiceTest.java | 27 +++++++------------ .../AbstractAmqpServiceIntegrationTest.java | 3 --- .../test/AbstractAmqpIntegrationTest.java | 3 --- hawkbit-dmf/hawkbit-dmf-server/pom.xml | 5 ---- .../AbstractManagementApiIntegrationTest.java | 3 --- .../resource/MgmtBasicAuthResourceTest.java | 3 --- hawkbit-mgmt/hawkbit-mgmt-server/pom.xml | 5 ---- .../hawkbit-update-server/README.md | 17 +++++------- .../hawkbit-repository-api/pom.xml | 24 +---------------- .../event}/EventPublisherHolder.java | 10 +++---- .../event/remote/AbstractAssignmentEvent.java | 11 ++++---- .../remote/CancelTargetAssignmentEvent.java | 8 +++--- .../remote/DistributionSetDeletedEvent.java | 12 ++------- .../DistributionSetTagDeletedEvent.java | 14 ++-------- .../DistributionSetTypeDeletedEvent.java | 13 ++------- .../event/remote/DownloadProgressEvent.java | 6 ++--- .../remote/EventEntityManagerHolder.java | 9 ++----- .../event/remote/MultiActionAssignEvent.java | 5 ++-- .../event/remote/MultiActionCancelEvent.java | 11 ++------ .../event/remote/MultiActionEvent.java | 13 +++------ .../event/remote/RemoteIdEvent.java | 21 +++------------ .../event/remote/RemoteTenantAwareEvent.java | 20 ++++++-------- .../event/remote/RolloutDeletedEvent.java | 13 ++------- .../remote/RolloutGroupDeletedEvent.java | 13 ++------- .../event/remote/RolloutStoppedEvent.java | 14 ++-------- .../remote/SoftwareModuleDeletedEvent.java | 13 ++------- .../SoftwareModuleTypeDeletedEvent.java | 13 ++------- .../TargetAssignDistributionSetEvent.java | 21 +++++---------- .../TargetAttributesRequestedEvent.java | 18 +++---------- .../event/remote/TargetDeletedEvent.java | 16 +++-------- .../remote/TargetFilterQueryDeletedEvent.java | 11 ++------ .../event/remote/TargetPollEvent.java | 9 +++---- .../event/remote/TargetTagDeletedEvent.java | 13 ++------- .../event/remote/TargetTypeDeletedEvent.java | 13 ++------- .../TenantConfigurationDeletedEvent.java | 18 ++++--------- .../remote/entity/AbstractActionEvent.java | 18 +++---------- .../entity/AbstractRolloutGroupEvent.java | 19 ++++++------- .../remote/entity/ActionCreatedEvent.java | 14 ++-------- .../remote/entity/ActionUpdatedEvent.java | 14 ++-------- .../entity/DistributionSetCreatedEvent.java | 10 ++----- .../DistributionSetTagCreatedEvent.java | 10 ++----- .../DistributionSetTagUpdatedEvent.java | 10 ++----- .../DistributionSetTypeCreatedEvent.java | 10 ++----- .../DistributionSetTypeUpdatedEvent.java | 10 ++----- .../entity/DistributionSetUpdatedEvent.java | 7 +++-- .../remote/entity/RemoteEntityEvent.java | 10 ++----- .../remote/entity/RolloutCreatedEvent.java | 10 ++----- .../entity/RolloutGroupCreatedEvent.java | 11 ++------ .../entity/RolloutGroupUpdatedEvent.java | 11 ++------ .../remote/entity/RolloutUpdatedEvent.java | 10 ++----- .../entity/SoftwareModuleCreatedEvent.java | 10 ++----- .../SoftwareModuleTypeCreatedEvent.java | 10 ++----- .../SoftwareModuleTypeUpdatedEvent.java | 10 ++----- .../entity/SoftwareModuleUpdatedEvent.java | 10 ++----- .../remote/entity/TargetCreatedEvent.java | 10 ++----- .../entity/TargetFilterQueryCreatedEvent.java | 10 ++----- .../entity/TargetFilterQueryUpdatedEvent.java | 10 ++----- .../remote/entity/TargetTagCreatedEvent.java | 10 ++----- .../remote/entity/TargetTagUpdatedEvent.java | 10 ++----- .../remote/entity/TargetTypeCreatedEvent.java | 10 ++----- .../remote/entity/TargetTypeUpdatedEvent.java | 10 ++----- .../remote/entity/TargetUpdatedEvent.java | 10 ++----- .../TenantConfigurationCreatedEvent.java | 10 ++----- .../TenantConfigurationUpdatedEvent.java | 10 ++----- .../event/EventPublisherConfiguration.java | 5 ++-- .../BusProtoStuffMessageConverterTest.java | 15 ++++++----- .../repository/jpa/JpaRolloutExecutor.java | 14 +++++----- .../RepositoryApplicationConfiguration.java | 21 +++++++-------- .../AbstractDsAssignmentStrategy.java | 19 +++++-------- .../management/JpaControllerManagement.java | 26 ++++++++---------- .../management/JpaDeploymentManagement.java | 7 +++-- .../jpa/management/JpaRolloutManagement.java | 10 +++---- .../jpa/management/JpaTargetManagement.java | 14 +++++----- .../OfflineDsAssignmentStrategy.java | 5 ++-- .../OnlineDsAssignmentStrategy.java | 27 +++++++++---------- .../repository/jpa/model/JpaAction.java | 12 ++++----- .../jpa/model/JpaDistributionSet.java | 12 ++++----- .../jpa/model/JpaDistributionSetTag.java | 12 ++++----- .../jpa/model/JpaDistributionSetType.java | 17 ++++-------- .../repository/jpa/model/JpaRollout.java | 14 ++++------ .../repository/jpa/model/JpaRolloutGroup.java | 8 +++--- .../jpa/model/JpaSoftwareModule.java | 15 +++++------ .../jpa/model/JpaSoftwareModuleType.java | 12 ++++----- .../repository/jpa/model/JpaTarget.java | 11 +++----- .../jpa/model/JpaTargetFilterQuery.java | 12 ++++----- .../repository/jpa/model/JpaTargetTag.java | 11 +++----- .../repository/jpa/model/JpaTargetType.java | 11 +++----- .../jpa/model/JpaTenantConfiguration.java | 11 +++----- .../event/remote/RemoteIdEventTest.java | 9 +++---- .../remote/RemoteTenantAwareEventTest.java | 16 ++++------- .../entity/AbstractRemoteEntityEventTest.java | 13 ++++----- .../event/remote/entity/ActionEventTest.java | 4 +-- .../entity/DistributionSetTagEventTest.java | 3 +-- .../DistributionSetUpdatedEventTest.java | 9 +++---- .../remote/entity/RolloutGroupEventTest.java | 7 +++-- .../jpa/AbstractJpaIntegrationTest.java | 3 --- .../repository/jpa/rsql/RSQLToSQLTest.java | 3 --- .../hawkbit-repository-test/pom.xml | 8 ------ .../repository/test/TestConfiguration.java | 4 +-- .../test/util/AbstractIntegrationTest.java | 8 +----- .../rest/AbstractRestIntegrationTest.java | 3 --- 104 files changed, 327 insertions(+), 837 deletions(-) rename hawkbit-repository/{hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/model/helper => hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event}/EventPublisherHolder.java (89%) diff --git a/hawkbit-ddi/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java b/hawkbit-ddi/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java index 19ce8026c..4755fb36c 100644 --- a/hawkbit-ddi/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java +++ b/hawkbit-ddi/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java @@ -212,8 +212,7 @@ public class DdiRootController implements DdiRootControllerRestApi { (length, shippedSinceLastEvent, total) -> { if (actionStatus != null) { eventPublisher.publishEvent(new DownloadProgressEvent( - tenantAware.getCurrentTenant(), actionStatus.getId(), shippedSinceLastEvent, - serviceMatcher != null ? serviceMatcher.getBusId() : bus.getId())); + tenantAware.getCurrentTenant(), actionStatus.getId(), shippedSinceLastEvent)); } }); } diff --git a/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/AbstractDDiApiIntegrationTest.java b/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/AbstractDDiApiIntegrationTest.java index ab427d03c..f38b2672b 100644 --- a/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/AbstractDDiApiIntegrationTest.java +++ b/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/AbstractDDiApiIntegrationTest.java @@ -47,8 +47,6 @@ import org.eclipse.hawkbit.repository.test.TestConfiguration; import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.eclipse.hawkbit.rest.RestConfiguration; import org.eclipse.hawkbit.rest.util.MockMvcResultPrinter; -import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; -import org.springframework.context.annotation.Import; import org.springframework.http.MediaType; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; @@ -58,7 +56,6 @@ import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; @ContextConfiguration( classes = { DdiApiConfiguration.class, RestConfiguration.class, RepositoryApplicationConfiguration.class, TestConfiguration.class }) -@Import(TestChannelBinderConfiguration.class) @TestPropertySource(locations = "classpath:/ddi-test.properties") public abstract class AbstractDDiApiIntegrationTest extends AbstractRestIntegrationTest { diff --git a/hawkbit-ddi/hawkbit-ddi-server/pom.xml b/hawkbit-ddi/hawkbit-ddi-server/pom.xml index 47da6d229..85c985234 100644 --- a/hawkbit-ddi/hawkbit-ddi-server/pom.xml +++ b/hawkbit-ddi/hawkbit-ddi-server/pom.xml @@ -32,11 +32,6 @@ ${project.version} - - org.springframework.cloud - spring-cloud-stream-binder-rabbit - - com.h2database diff --git a/hawkbit-dmf/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherServiceTest.java b/hawkbit-dmf/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherServiceTest.java index 922ddff1b..041473a2c 100644 --- a/hawkbit-dmf/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherServiceTest.java +++ b/hawkbit-dmf/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherServiceTest.java @@ -82,7 +82,7 @@ class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTest { private Target testTarget; @BeforeEach - public void beforeEach() { + void beforeEach() { testTarget = targetManagement.create(entityFactory.target().create().controllerId(CONTROLLER_ID) .securityToken(TEST_TOKEN).address(AMQP_URI.toString())); @@ -126,8 +126,7 @@ class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTest { final Action action = createAction(createDistributionSet); - final TargetAssignDistributionSetEvent targetAssignDistributionSetEvent = new TargetAssignDistributionSetEvent( - action, serviceMatcher.getBusId()); + final TargetAssignDistributionSetEvent targetAssignDistributionSetEvent = new TargetAssignDistributionSetEvent(action); amqpMessageDispatcherService.targetAssignDistributionSet(targetAssignDistributionSetEvent); final Message sendMessage = getCaptureAddressEvent(targetAssignDistributionSetEvent); final DmfDownloadAndUpdateRequest downloadAndUpdateRequest = assertDownloadAndInstallMessage(sendMessage, @@ -175,8 +174,7 @@ class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTest { Mockito.when(rabbitTemplate.convertSendAndReceive(any())).thenReturn(receivedList); - final TargetAssignDistributionSetEvent targetAssignDistributionSetEvent = new TargetAssignDistributionSetEvent( - action, serviceMatcher.getBusId()); + final TargetAssignDistributionSetEvent targetAssignDistributionSetEvent = new TargetAssignDistributionSetEvent(action); amqpMessageDispatcherService.targetAssignDistributionSet(targetAssignDistributionSetEvent); final Message sendMessage = getCaptureAddressEvent(targetAssignDistributionSetEvent); final DmfDownloadAndUpdateRequest downloadAndUpdateRequest = assertDownloadAndInstallMessage(sendMessage, @@ -215,8 +213,8 @@ class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTest { @Test void sendUpdateAttributesRequest() { final String amqpUri = "amqp://anyhost"; - final TargetAttributesRequestedEvent targetAttributesRequestedEvent = new TargetAttributesRequestedEvent(TENANT, - 1L, CONTROLLER_ID, amqpUri, Target.class, serviceMatcher.getBusId()); + final TargetAttributesRequestedEvent targetAttributesRequestedEvent = new TargetAttributesRequestedEvent( + TENANT,1L, Target.class, CONTROLLER_ID, amqpUri); amqpMessageDispatcherService.targetTriggerUpdateAttributes(targetAttributesRequestedEvent); @@ -233,10 +231,8 @@ class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTest { when(action.getId()).thenReturn(1L); when(action.getTenant()).thenReturn(TENANT); when(action.getTarget()).thenReturn(testTarget); - final CancelTargetAssignmentEvent cancelTargetAssignmentDistributionSetEvent = new CancelTargetAssignmentEvent( - action, serviceMatcher.getBusId()); - amqpMessageDispatcherService - .targetCancelAssignmentToDistributionSet(cancelTargetAssignmentDistributionSetEvent); + final CancelTargetAssignmentEvent cancelTargetAssignmentDistributionSetEvent = new CancelTargetAssignmentEvent(action); + amqpMessageDispatcherService.targetCancelAssignmentToDistributionSet(cancelTargetAssignmentDistributionSetEvent); final Message sendMessage = createArgumentCapture(AMQP_URI); assertCancelMessage(sendMessage); @@ -250,8 +246,7 @@ class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTest { // setup final String amqpUri = "amqp://anyhost"; - final TargetDeletedEvent targetDeletedEvent = new TargetDeletedEvent(TENANT, 1L, CONTROLLER_ID, amqpUri, - Target.class, serviceMatcher.getBusId()); + final TargetDeletedEvent targetDeletedEvent = new TargetDeletedEvent(TENANT, 1L, Target.class, CONTROLLER_ID, amqpUri); // test amqpMessageDispatcherService.targetDelete(targetDeletedEvent); @@ -269,8 +264,7 @@ class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTest { // setup final String noAmqpUri = "http://anyhost"; - final TargetDeletedEvent targetDeletedEvent = new TargetDeletedEvent(TENANT, 1L, CONTROLLER_ID, noAmqpUri, - Target.class, serviceMatcher.getBusId()); + final TargetDeletedEvent targetDeletedEvent = new TargetDeletedEvent(TENANT, 1L, Target.class, CONTROLLER_ID, noAmqpUri); // test amqpMessageDispatcherService.targetDelete(targetDeletedEvent); @@ -287,8 +281,7 @@ class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTest { // setup final String noAmqpUri = null; - final TargetDeletedEvent targetDeletedEvent = new TargetDeletedEvent(TENANT, 1L, CONTROLLER_ID, noAmqpUri, - Target.class, serviceMatcher.getBusId()); + final TargetDeletedEvent targetDeletedEvent = new TargetDeletedEvent(TENANT, 1L, Target.class, CONTROLLER_ID, noAmqpUri); // test amqpMessageDispatcherService.targetDelete(targetDeletedEvent); diff --git a/hawkbit-dmf/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/integration/AbstractAmqpServiceIntegrationTest.java b/hawkbit-dmf/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/integration/AbstractAmqpServiceIntegrationTest.java index 71fd994d4..c6039e6c0 100644 --- a/hawkbit-dmf/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/integration/AbstractAmqpServiceIntegrationTest.java +++ b/hawkbit-dmf/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/integration/AbstractAmqpServiceIntegrationTest.java @@ -58,8 +58,6 @@ import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageProperties; import org.springframework.amqp.rabbit.test.RabbitListenerTestHarness; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; -import org.springframework.context.annotation.Import; import org.springframework.test.context.ContextConfiguration; import org.springframework.util.CollectionUtils; @@ -69,7 +67,6 @@ import org.springframework.util.CollectionUtils; @ContextConfiguration(classes = { DmfApiConfiguration.class, DmfTestConfiguration.class, RepositoryApplicationConfiguration.class, AmqpTestConfiguration.class }) -@Import(TestChannelBinderConfiguration.class) abstract class AbstractAmqpServiceIntegrationTest extends AbstractAmqpIntegrationTest { protected static final String TENANT_EXIST = "DEFAULT"; diff --git a/hawkbit-dmf/hawkbit-dmf-rabbitmq-test/src/main/java/org/eclipse/hawkbit/rabbitmq/test/AbstractAmqpIntegrationTest.java b/hawkbit-dmf/hawkbit-dmf-rabbitmq-test/src/main/java/org/eclipse/hawkbit/rabbitmq/test/AbstractAmqpIntegrationTest.java index 6615c9b20..cfbd2fcc7 100644 --- a/hawkbit-dmf/hawkbit-dmf-rabbitmq-test/src/main/java/org/eclipse/hawkbit/rabbitmq/test/AbstractAmqpIntegrationTest.java +++ b/hawkbit-dmf/hawkbit-dmf-rabbitmq-test/src/main/java/org/eclipse/hawkbit/rabbitmq/test/AbstractAmqpIntegrationTest.java @@ -28,8 +28,6 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.junit.RabbitAvailable; import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; -import org.springframework.context.annotation.Import; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.DirtiesContext.ClassMode; import org.springframework.test.context.ContextConfiguration; @@ -37,7 +35,6 @@ import org.springframework.test.context.ContextConfiguration; @Slf4j @RabbitAvailable @ContextConfiguration(classes = { RepositoryApplicationConfiguration.class, AmqpTestConfiguration.class, TestConfiguration.class }) -@Import(TestChannelBinderConfiguration.class) // Dirty context is necessary to create a new vhost and recreate all necessary beans after every test class. @DirtiesContext(classMode = ClassMode.AFTER_CLASS) @SuppressWarnings("java:S6813") // constructor injects are not possible for test classes diff --git a/hawkbit-dmf/hawkbit-dmf-server/pom.xml b/hawkbit-dmf/hawkbit-dmf-server/pom.xml index 1cab00ca4..1a7c08d53 100644 --- a/hawkbit-dmf/hawkbit-dmf-server/pom.xml +++ b/hawkbit-dmf/hawkbit-dmf-server/pom.xml @@ -32,11 +32,6 @@ ${project.version} - - org.springframework.cloud - spring-cloud-stream-binder-rabbit - - com.h2database diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/AbstractManagementApiIntegrationTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/AbstractManagementApiIntegrationTest.java index afd5840bc..2a8be887a 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/AbstractManagementApiIntegrationTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/AbstractManagementApiIntegrationTest.java @@ -27,15 +27,12 @@ import org.eclipse.hawkbit.repository.test.TestConfiguration; import org.eclipse.hawkbit.rest.AbstractRestIntegrationTest; import org.eclipse.hawkbit.rest.RestConfiguration; import org.json.JSONObject; -import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; -import org.springframework.context.annotation.Import; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; import org.springframework.test.web.servlet.ResultMatcher; @ContextConfiguration( classes = { MgmtApiConfiguration.class, RestConfiguration.class, RepositoryApplicationConfiguration.class, TestConfiguration.class }) -@Import(TestChannelBinderConfiguration.class) @TestPropertySource(locations = "classpath:/mgmt-test.properties") public abstract class AbstractManagementApiIntegrationTest extends AbstractRestIntegrationTest { diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtBasicAuthResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtBasicAuthResourceTest.java index ec6ccaa2d..26dde90d1 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtBasicAuthResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtBasicAuthResourceTest.java @@ -34,8 +34,6 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; -import org.springframework.context.annotation.Import; import org.springframework.hateoas.MediaTypes; import org.springframework.http.HttpHeaders; import org.springframework.test.annotation.DirtiesContext; @@ -70,7 +68,6 @@ import org.springframework.web.context.WebApplicationContext; @AutoConfigureMockMvc @ContextConfiguration(classes = { MgmtApiConfiguration.class, RestConfiguration.class, RepositoryApplicationConfiguration.class, TestConfiguration.class }) -@Import(TestChannelBinderConfiguration.class) /** * Feature: Component Tests - Management API
* Story: Basic auth Userinfo Resource diff --git a/hawkbit-mgmt/hawkbit-mgmt-server/pom.xml b/hawkbit-mgmt/hawkbit-mgmt-server/pom.xml index f4058e20e..e9dc7220b 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-server/pom.xml +++ b/hawkbit-mgmt/hawkbit-mgmt-server/pom.xml @@ -32,11 +32,6 @@ ${project.version}
- - org.springframework.cloud - spring-cloud-stream-binder-rabbit - - com.h2database diff --git a/hawkbit-monolith/hawkbit-update-server/README.md b/hawkbit-monolith/hawkbit-update-server/README.md index 85467856c..c825f279b 100644 --- a/hawkbit-monolith/hawkbit-update-server/README.md +++ b/hawkbit-monolith/hawkbit-update-server/README.md @@ -24,28 +24,25 @@ The Management API can be accessed via http://localhost:8080/rest/v1 ## Enable Clustering (experimental) -Clustering in hawkBit is based on _Spring Cloud Bus_. It is not enabled in the example app by default. +Clustering in hawkBit is based on _Spring Cloud Bus_. It is enabled by default in microservice apps and disabled (by default) in the +monolith app. To enable it for monolith app you should set (via environment, system properties or properties files) the following: Add to your `pom.xml` : -```xml - - org.springframework.cloud - spring-cloud-stream-binder-rabbit - +```properties +spring.autoconfigure.exclude= +spring.cloud.bus.enabled=true ``` Optional as well is the addition of [Protostuff](https://github.com/protostuff/protostuff) based message payload -serialization for improved performance. - -Add to your `application.properties` : +serialization for improved performance. To enable it set (via environment, system properties or properties files): ```properties spring.cloud.stream.bindings.springCloudBusInput.content-type=application/binary+protostuff spring.cloud.stream.bindings.springCloudBusOutput.content-type=application/binary+protostuff ``` -Add to your `pom.xml` : +and add to your `pom.xml` : ```xml diff --git a/hawkbit-repository/hawkbit-repository-api/pom.xml b/hawkbit-repository/hawkbit-repository-api/pom.xml index 92aa81d06..f0062cc73 100644 --- a/hawkbit-repository/hawkbit-repository-api/pom.xml +++ b/hawkbit-repository/hawkbit-repository-api/pom.xml @@ -39,29 +39,7 @@ org.springframework.cloud - spring-cloud-bus - - - org.springframework.boot - spring-boot-starter-tomcat - - - org.springframework.security - spring-security-rsa - - - org.objenesis - objenesis - - - org.apache.tomcat.embed - tomcat-embed-el - - - org.springframework.cloud - spring-cloud-function-context - - + spring-cloud-starter-bus-amqp diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/model/helper/EventPublisherHolder.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/EventPublisherHolder.java similarity index 89% rename from hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/model/helper/EventPublisherHolder.java rename to hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/EventPublisherHolder.java index b7178c365..1bf4e687d 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/model/helper/EventPublisherHolder.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/EventPublisherHolder.java @@ -7,7 +7,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.eclipse.hawkbit.repository.model.helper; +package org.eclipse.hawkbit.repository.event; import lombok.AccessLevel; import lombok.Getter; @@ -55,17 +55,17 @@ public final class EventPublisherHolder { } /** - * @return the service origin Id coming either from {@link ServiceMatcher} when available or {@link BusProperties} - * otherwise. + * @return the service origin Id coming either from {@link ServiceMatcher} when available or {@link BusProperties} otherwise. */ public String getApplicationId() { String id = null; if (serviceMatcher != null) { id = serviceMatcher.getBusId(); } - if (id == null) { + if (id == null && bus != null) { id = bus.getId(); } - return id; + // due to a bug (?) in Spring Cloud, we cannot pass null for applicationId + return id == null ? "" : id; } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/AbstractAssignmentEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/AbstractAssignmentEvent.java index be4551815..de79ccfc1 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/AbstractAssignmentEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/AbstractAssignmentEvent.java @@ -38,14 +38,13 @@ public abstract class AbstractAssignmentEvent extends RemoteTenantAwareEvent { private final Map actions = new HashMap<>(); - protected AbstractAssignmentEvent(final Object source, final Action a, final String applicationId) { - super(source, a.getTenant(), applicationId); + protected AbstractAssignmentEvent(final Action a) { + super(a.getTenant(), null); actions.put(a.getTarget().getControllerId(), new ActionProperties(a)); } - protected AbstractAssignmentEvent(final Object source, final String tenant, final List a, - final String applicationId) { - super(source, tenant, applicationId); + protected AbstractAssignmentEvent(final String tenant, final Object source, final List a) { + super(tenant, source); actions.putAll(a.stream() .collect(Collectors.toMap(action -> action.getTarget().getControllerId(), ActionProperties::new))); } @@ -53,4 +52,4 @@ public abstract class AbstractAssignmentEvent extends RemoteTenantAwareEvent { public Optional getActionPropertiesForController(final String controllerId) { return Optional.ofNullable(actions.get(controllerId)); } -} +} \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/CancelTargetAssignmentEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/CancelTargetAssignmentEvent.java index d9adac29a..16a996ec9 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/CancelTargetAssignmentEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/CancelTargetAssignmentEvent.java @@ -24,11 +24,11 @@ public class CancelTargetAssignmentEvent extends AbstractAssignmentEvent { @Serial private static final long serialVersionUID = 1L; - public CancelTargetAssignmentEvent(final Action a, final String applicationId) { - super(applicationId, a, applicationId); + public CancelTargetAssignmentEvent(final Action a) { + super(a); } - public CancelTargetAssignmentEvent(final String tenant, final List a, final String applicationId) { - super(applicationId, tenant, a, applicationId); + public CancelTargetAssignmentEvent(final String tenant, final List a) { + super(tenant, null, a); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DistributionSetDeletedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DistributionSetDeletedEvent.java index 732490c72..482f8f96b 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DistributionSetDeletedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DistributionSetDeletedEvent.java @@ -25,15 +25,7 @@ public class DistributionSetDeletedEvent extends RemoteIdEvent implements Entity @Serial private static final long serialVersionUID = 1L; - /** - * Constructor. - * - * @param tenant the tenant - * @param entityId the entity id - * @param applicationId the origin application id - */ - public DistributionSetDeletedEvent(final String tenant, final Long entityId, - final Class entityClass, final String applicationId) { - super(entityId, tenant, entityClass, applicationId); + public DistributionSetDeletedEvent(final String tenant, final Long entityId, final Class entityClass) { + super(tenant, entityId, entityClass); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DistributionSetTagDeletedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DistributionSetTagDeletedEvent.java index d7d775938..a6119a12c 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DistributionSetTagDeletedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DistributionSetTagDeletedEvent.java @@ -25,17 +25,7 @@ public class DistributionSetTagDeletedEvent extends RemoteIdEvent implements Ent @Serial private static final long serialVersionUID = 1L; - /** - * Constructor for json serialization. - * - * @param tenant the tenant - * @param entityId the entity id - * @param entityClass the entity class - * @param applicationId the origin application id - */ - public DistributionSetTagDeletedEvent( - final String tenant, final Long entityId, - final Class entityClass, final String applicationId) { - super(entityId, tenant, entityClass, applicationId); + public DistributionSetTagDeletedEvent(final String tenant, final Long entityId, final Class entityClass) { + super(tenant, entityId, entityClass); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DistributionSetTypeDeletedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DistributionSetTypeDeletedEvent.java index 11f06b681..ca865fe1d 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DistributionSetTypeDeletedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DistributionSetTypeDeletedEvent.java @@ -25,16 +25,7 @@ public class DistributionSetTypeDeletedEvent extends RemoteIdEvent implements En @Serial private static final long serialVersionUID = 1L; - /** - * Constructor for json serialization. - * - * @param tenant the tenant - * @param entityId the entity id - * @param entityClass the entity class - * @param applicationId the origin application id - */ - public DistributionSetTypeDeletedEvent(final String tenant, final Long entityId, - final Class entityClass, final String applicationId) { - super(entityId, tenant, entityClass, applicationId); + public DistributionSetTypeDeletedEvent(final String tenant, final Long entityId, final Class entityClass) { + super(tenant, entityId, entityClass); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DownloadProgressEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DownloadProgressEvent.java index 9942df424..0f2eda908 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DownloadProgressEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/DownloadProgressEvent.java @@ -34,11 +34,9 @@ public class DownloadProgressEvent extends RemoteTenantAwareEvent { * @param tenant the tenant * @param actionStatusId of the {@link ActionStatus} the download belongs to * @param shippedBytesSinceLast the shippedBytesSinceLast - * @param applicationId the application id. */ - public DownloadProgressEvent(final String tenant, final Long actionStatusId, final long shippedBytesSinceLast, - final String applicationId) { - super(actionStatusId, tenant, applicationId); + public DownloadProgressEvent(final String tenant, final Long actionStatusId, final long shippedBytesSinceLast) { + super(tenant, actionStatusId); this.shippedBytesSinceLast = shippedBytesSinceLast; } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/EventEntityManagerHolder.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/EventEntityManagerHolder.java index aba4341fa..0e062bd35 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/EventEntityManagerHolder.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/EventEntityManagerHolder.java @@ -10,6 +10,7 @@ package org.eclipse.hawkbit.repository.event.remote; import lombok.AccessLevel; +import lombok.Getter; import lombok.NoArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; @@ -17,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired; * A singleton bean which holds the event entity manager to have autowiring in the events. */ @NoArgsConstructor(access = AccessLevel.PRIVATE) +@Getter @SuppressWarnings("java:S6548") // java:S6548 - singleton holder ensures static access to spring resources in some places public final class EventEntityManagerHolder { @@ -35,11 +37,4 @@ public final class EventEntityManagerHolder { public void setEventEntityManager(final EventEntityManager eventEntityManager) { this.eventEntityManager = eventEntityManager; } - - /** - * @return the eventEntityManager - */ - public EventEntityManager getEventEntityManager() { - return eventEntityManager; - } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionAssignEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionAssignEvent.java index c0adf9905..fd8e43e70 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionAssignEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionAssignEvent.java @@ -32,10 +32,9 @@ public class MultiActionAssignEvent extends MultiActionEvent { * Constructor. * * @param tenant tenant the event is scoped to - * @param applicationId the application id * @param actions the actions of the deployment action */ - public MultiActionAssignEvent(String tenant, String applicationId, List actions) { - super(tenant, applicationId, actions); + public MultiActionAssignEvent(String tenant, List actions) { + super(tenant, actions); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionCancelEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionCancelEvent.java index 740d05fa1..90c0e3d6f 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionCancelEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionCancelEvent.java @@ -28,14 +28,7 @@ public class MultiActionCancelEvent extends MultiActionEvent { @Serial private static final long serialVersionUID = 1L; - /** - * Constructor. - * - * @param tenant tenant the event is scoped to - * @param applicationId the application id - * @param actions the actions to be canceled - */ - public MultiActionCancelEvent(String tenant, String applicationId, List actions) { - super(tenant, applicationId, actions); + public MultiActionCancelEvent(String tenant, List actions) { + super(tenant, actions); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionEvent.java index 48b34fcdc..d0febd56c 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionEvent.java @@ -27,10 +27,10 @@ import org.eclipse.hawkbit.repository.model.Target; * Generic deployment event for the Multi-Assignments feature. The event payload holds a list of controller IDs identifying the targets which * are affected by a deployment action (e.g. a software assignment (update) or a cancellation of an update). */ +@NoArgsConstructor(access = AccessLevel.PROTECTED) // for serialization libs like jackson @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -@NoArgsConstructor(access = AccessLevel.PROTECTED) // for serialization libs like jackson public abstract class MultiActionEvent extends RemoteTenantAwareEvent implements Iterable { @Serial @@ -39,15 +39,8 @@ public abstract class MultiActionEvent extends RemoteTenantAwareEvent implements private final List controllerIds = new ArrayList<>(); private final List actionIds = new ArrayList<>(); - /** - * Constructor. - * - * @param tenant tenant the event is scoped to - * @param applicationId the application id - * @param actions the actions involved - */ - protected MultiActionEvent(String tenant, String applicationId, List actions) { - super(applicationId, tenant, applicationId); + protected MultiActionEvent(final String tenant, final List actions) { + super(tenant, null); this.controllerIds.addAll(getControllerIdsFromActions(actions)); this.actionIds.addAll(getIdsFromActions(actions)); } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RemoteIdEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RemoteIdEvent.java index a9e328fca..02719047d 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RemoteIdEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RemoteIdEvent.java @@ -32,31 +32,18 @@ public class RemoteIdEvent extends RemoteTenantAwareEvent { private static final long serialVersionUID = 1L; private Long entityId; - private String entityClass; - private String interfaceClass; - /** - * Constructor for json serialization. - * - * @param entityId the entity Id - * @param tenant the tenant - * @param entityClass the entity class - * @param applicationId the origin application id - */ - protected RemoteIdEvent(final Long entityId, final String tenant, - final Class entityClass, final String applicationId) { - super(entityId, tenant, applicationId); + protected RemoteIdEvent(final String tenant, final Long entityId, final Class entityClass) { + super(tenant, entityId); this.entityClass = entityClass.getName(); - this.interfaceClass = entityClass.isInterface() ? entityClass.getName() - : getInterfaceEntity(entityClass).getName(); + this.interfaceClass = entityClass.isInterface() ? entityClass.getName() : getInterfaceEntity(entityClass).getName(); this.entityId = entityId; } private static Class getInterfaceEntity(final Class baseEntity) { final Class[] interfaces = baseEntity.getInterfaces(); - return Arrays.stream(interfaces).filter(TenantAwareBaseEntity.class::isAssignableFrom).findFirst() - .orElse(baseEntity); + return Arrays.stream(interfaces).filter(TenantAwareBaseEntity.class::isAssignableFrom).findFirst().orElse(baseEntity); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RemoteTenantAwareEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RemoteTenantAwareEvent.java index dfd25733e..4bb36cf25 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RemoteTenantAwareEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RemoteTenantAwareEvent.java @@ -11,12 +11,12 @@ package org.eclipse.hawkbit.repository.event.remote; import java.io.Serial; -import com.cronutils.utils.StringUtils; import lombok.AccessLevel; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.ToString; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.TenantAwareEvent; import org.springframework.cloud.bus.event.RemoteApplicationEvent; @@ -25,10 +25,10 @@ import org.springframework.cloud.bus.event.RemoteApplicationEvent; * distributed events. All the necessary information of distributing events to * other nodes. */ +@NoArgsConstructor(access = AccessLevel.PROTECTED) // for serialization libs like jackson @Getter @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -@NoArgsConstructor(access = AccessLevel.PROTECTED) // for serialization libs like jackson public class RemoteTenantAwareEvent extends RemoteApplicationEvent implements TenantAwareEvent { @Serial @@ -36,16 +36,12 @@ public class RemoteTenantAwareEvent extends RemoteApplicationEvent implements Te private String tenant; - /** - * Constructor. - * - * @param source the for the remote event. - * @param tenant the tenant - * @param applicationId the applicationId - */ - public RemoteTenantAwareEvent(final Object source, final String tenant, final String applicationId) { - // due to a bug in Spring Cloud, we cannot pass null for applicationId - super(source, applicationId != null ? applicationId : StringUtils.EMPTY, DEFAULT_DESTINATION_FACTORY.getDestination(null)); + public RemoteTenantAwareEvent(final String tenant, final Object source) { + super(source == null ? getApplicationId() : source, getApplicationId(), DEFAULT_DESTINATION_FACTORY.getDestination(null)); this.tenant = tenant; } + + private static String getApplicationId() { + return EventPublisherHolder.getInstance().getApplicationId(); + } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RolloutDeletedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RolloutDeletedEvent.java index d03f90d4a..a8865de53 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RolloutDeletedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RolloutDeletedEvent.java @@ -25,16 +25,7 @@ public class RolloutDeletedEvent extends RemoteIdEvent implements EntityDeletedE @Serial private static final long serialVersionUID = 1L; - /** - * Constructor for json serialization. - * - * @param tenant the tenant - * @param entityId the entity id - * @param entityClass the entity class - * @param applicationId the origin application id - */ - public RolloutDeletedEvent(final String tenant, final Long entityId, - final Class entityClass, final String applicationId) { - super(entityId, tenant, entityClass, applicationId); + public RolloutDeletedEvent(final String tenant, final Long entityId, final Class entityClass) { + super(tenant, entityId, entityClass); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RolloutGroupDeletedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RolloutGroupDeletedEvent.java index b745ed5ca..7f1184e64 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RolloutGroupDeletedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RolloutGroupDeletedEvent.java @@ -25,16 +25,7 @@ public class RolloutGroupDeletedEvent extends RemoteIdEvent implements EntityDel @Serial private static final long serialVersionUID = 1L; - /** - * Constructor for json serialization. - * - * @param tenant the tenant - * @param entityId the entity id - * @param entityClass the entity class - * @param applicationId the origin application id - */ - public RolloutGroupDeletedEvent(final String tenant, final Long entityId, - final Class entityClass, final String applicationId) { - super(entityId, tenant, entityClass, applicationId); + public RolloutGroupDeletedEvent(final String tenant, final Long entityId, final Class entityClass) { + super(tenant, entityId, entityClass); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RolloutStoppedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RolloutStoppedEvent.java index 845f444c8..4931cf413 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RolloutStoppedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/RolloutStoppedEvent.java @@ -34,18 +34,8 @@ public class RolloutStoppedEvent extends RemoteTenantAwareEvent { private Collection rolloutGroupIds; private long rolloutId; - /** - * Constructor for json serialization. - * - * @param tenant the tenant - * @param applicationId the entity id - * @param rolloutId the entity class (and source) - * @param rolloutGroupIds the rollouts group ids - */ - public RolloutStoppedEvent( - final String tenant, final String applicationId, final long rolloutId, - final Collection rolloutGroupIds) { - super(rolloutId, tenant, applicationId); + public RolloutStoppedEvent(final String tenant, final long rolloutId, final Collection rolloutGroupIds) { + super(tenant, rolloutId); this.rolloutId = rolloutId; this.rolloutGroupIds = rolloutGroupIds; } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/SoftwareModuleDeletedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/SoftwareModuleDeletedEvent.java index f977ec1b2..424b27610 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/SoftwareModuleDeletedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/SoftwareModuleDeletedEvent.java @@ -25,16 +25,7 @@ public class SoftwareModuleDeletedEvent extends RemoteIdEvent implements EntityD @Serial private static final long serialVersionUID = 1L; - /** - * Constructor for json serialization. - * - * @param tenant the tenant - * @param entityId the entity id - * @param entityClass the entity class - * @param applicationId the origin application id - */ - public SoftwareModuleDeletedEvent(final String tenant, final Long entityId, - final Class entityClass, final String applicationId) { - super(entityId, tenant, entityClass, applicationId); + public SoftwareModuleDeletedEvent(final String tenant, final Long entityId, final Class entityClass) { + super(tenant, entityId, entityClass); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/SoftwareModuleTypeDeletedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/SoftwareModuleTypeDeletedEvent.java index ca07d1317..8f574204d 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/SoftwareModuleTypeDeletedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/SoftwareModuleTypeDeletedEvent.java @@ -25,16 +25,7 @@ public class SoftwareModuleTypeDeletedEvent extends RemoteIdEvent implements Ent @Serial private static final long serialVersionUID = 1L; - /** - * Constructor for json serialization. - * - * @param tenant the tenant - * @param entityId the entity id - * @param entityClass the entity class - * @param applicationId the origin application id - */ - public SoftwareModuleTypeDeletedEvent(final String tenant, final Long entityId, - final Class entityClass, final String applicationId) { - super(entityId, tenant, entityClass, applicationId); + public SoftwareModuleTypeDeletedEvent(final String tenant, final Long entityId, final Class entityClass) { + super(tenant, entityId, entityClass); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetAssignDistributionSetEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetAssignDistributionSetEvent.java index 84184a680..04ff6aa62 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetAssignDistributionSetEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetAssignDistributionSetEvent.java @@ -40,26 +40,17 @@ public class TargetAssignDistributionSetEvent extends AbstractAssignmentEvent { * @param tenant of the event * @param distributionSetId of the set that was assigned * @param a the actions and the targets - * @param applicationId the application id. * @param maintenanceWindowAvailable see {@link Action#isMaintenanceWindowAvailable()} */ - public TargetAssignDistributionSetEvent(final String tenant, final long distributionSetId, final List a, - final String applicationId, final boolean maintenanceWindowAvailable) { - super(distributionSetId, tenant, - a.stream().filter(action -> action.getDistributionSet().getId().longValue() == distributionSetId).toList(), - applicationId); + public TargetAssignDistributionSetEvent( + final String tenant, final long distributionSetId, final List a, final boolean maintenanceWindowAvailable) { + super(tenant, distributionSetId, + a.stream().filter(action -> action.getDistributionSet().getId().longValue() == distributionSetId).toList()); this.distributionSetId = distributionSetId; this.maintenanceWindowAvailable = maintenanceWindowAvailable; } - /** - * Constructor. - * - * @param action the action created for this assignment - * @param applicationId the application id - */ - public TargetAssignDistributionSetEvent(final Action action, final String applicationId) { - this(action.getTenant(), action.getDistributionSet().getId(), Collections.singletonList(action), applicationId, - action.isMaintenanceWindowAvailable()); + public TargetAssignDistributionSetEvent(final Action action) { + this(action.getTenant(), action.getDistributionSet().getId(), Collections.singletonList(action), action.isMaintenanceWindowAvailable()); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetAttributesRequestedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetAttributesRequestedEvent.java index 97cb3636c..69ce8650a 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetAttributesRequestedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetAttributesRequestedEvent.java @@ -33,20 +33,10 @@ public class TargetAttributesRequestedEvent extends RemoteIdEvent { private String controllerId; private String targetAddress; - /** - * Constructor json serialization - * - * @param tenant the tenant - * @param entityId the entity id - * @param controllerId the controllerId of the target - * @param targetAddress the target address - * @param entityClass the entity class - * @param applicationId the origin application id - */ - public TargetAttributesRequestedEvent(final String tenant, final Long entityId, final String controllerId, - final String targetAddress, final Class entityClass, - final String applicationId) { - super(entityId, tenant, entityClass, applicationId); + public TargetAttributesRequestedEvent( + final String tenant, final Long entityId, final Class entityClass, + final String controllerId, final String targetAddress) { + super(tenant, entityId, entityClass); this.controllerId = controllerId; this.targetAddress = targetAddress; } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetDeletedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetDeletedEvent.java index 76c8c8035..926532a50 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetDeletedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetDeletedEvent.java @@ -34,18 +34,10 @@ public class TargetDeletedEvent extends RemoteIdEvent implements EntityDeletedEv private String controllerId; private String targetAddress; - /** - * @param tenant the tenant - * @param entityId the entity id - * @param controllerId the controllerId of the target - * @param targetAddress the target address - * @param entityClass the entity class - * @param applicationId the origin application id - */ - public TargetDeletedEvent(final String tenant, final Long entityId, final String controllerId, - final String targetAddress, final Class entityClass, - final String applicationId) { - super(entityId, tenant, entityClass, applicationId); + public TargetDeletedEvent( + final String tenant, final Long entityId, final Class entityClass, + final String controllerId, final String targetAddress) { + super(tenant, entityId, entityClass); this.controllerId = controllerId; this.targetAddress = targetAddress; } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetFilterQueryDeletedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetFilterQueryDeletedEvent.java index 90e8d2549..a558ff6b4 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetFilterQueryDeletedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetFilterQueryDeletedEvent.java @@ -25,14 +25,7 @@ public class TargetFilterQueryDeletedEvent extends RemoteIdEvent implements Enti @Serial private static final long serialVersionUID = 2L; - /** - * @param tenant the tenant - * @param entityId the entity id - * @param entityClass the entity class - * @param applicationId the origin application id - */ - public TargetFilterQueryDeletedEvent(final String tenant, final Long entityId, - final Class entityClass, final String applicationId) { - super(entityId, tenant, entityClass, applicationId); + public TargetFilterQueryDeletedEvent(final String tenant, final Long entityId, final Class entityClass) { + super(tenant, entityId, entityClass); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetPollEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetPollEvent.java index 2f92efe1c..af4769f65 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetPollEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetPollEvent.java @@ -32,14 +32,13 @@ public class TargetPollEvent extends RemoteTenantAwareEvent { private String controllerId; private String targetAddress; - public TargetPollEvent(final String controllerId, final String tenant, final String applicationId) { - super(controllerId, tenant, applicationId); + public TargetPollEvent(final String controllerId, final String tenant) { + super(tenant, controllerId); this.controllerId = controllerId; } - public TargetPollEvent(final Target target, final String applicationId) { - super(target.getControllerId(), target.getTenant(), applicationId); - this.controllerId = target.getControllerId(); + public TargetPollEvent(final Target target) { + this(target.getControllerId(), target.getTenant()); this.targetAddress = target.getAddress().toString(); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetTagDeletedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetTagDeletedEvent.java index 247bb3657..24f98cfd9 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetTagDeletedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetTagDeletedEvent.java @@ -25,16 +25,7 @@ public class TargetTagDeletedEvent extends RemoteIdEvent implements EntityDelete @Serial private static final long serialVersionUID = 1L; - /** - * Constructor for json serialization. - * - * @param tenant the tenant - * @param entityId the entity id - * @param entityClass the entity class - * @param applicationId the origin application id - */ - public TargetTagDeletedEvent(final String tenant, final Long entityId, - final Class entityClass, final String applicationId) { - super(entityId, tenant, entityClass, applicationId); + public TargetTagDeletedEvent(final String tenant, final Long entityId, final Class entityClass) { + super(tenant, entityId, entityClass); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetTypeDeletedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetTypeDeletedEvent.java index 9dd526dc6..8d7e62de5 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetTypeDeletedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TargetTypeDeletedEvent.java @@ -25,16 +25,7 @@ public class TargetTypeDeletedEvent extends RemoteIdEvent implements EntityDelet @Serial private static final long serialVersionUID = 1L; - /** - * Constructor for json serialization. - * - * @param tenant the tenant - * @param entityId the entity id - * @param entityClass the entity class - * @param applicationId the origin application id - */ - public TargetTypeDeletedEvent(final String tenant, final Long entityId, - final Class entityClass, final String applicationId) { - super(entityId, tenant, entityClass, applicationId); + public TargetTypeDeletedEvent(final String tenant, final Long entityId, final Class entityClass) { + super(tenant, entityId, entityClass); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TenantConfigurationDeletedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TenantConfigurationDeletedEvent.java index 12025839c..61abdfc85 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TenantConfigurationDeletedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/TenantConfigurationDeletedEvent.java @@ -28,24 +28,16 @@ import org.eclipse.hawkbit.repository.model.TenantAwareBaseEntity; public class TenantConfigurationDeletedEvent extends RemoteIdEvent implements EntityDeletedEvent { @Serial - private static final long serialVersionUID = 2L; + private static final long serialVersionUID = 1L; private String configKey; @ToString.Exclude private String configValue; - /** - * @param tenant the tenant - * @param entityId the entity id - * @param configKey the config key - * @param configValue the config value - * @param entityClass the entity class - * @param applicationId the origin application id - */ - public TenantConfigurationDeletedEvent(final String tenant, final Long entityId, final String configKey, - final String configValue, final Class entityClass, - final String applicationId) { - super(entityId, tenant, entityClass, applicationId); + public TenantConfigurationDeletedEvent( + final String tenant, final Long entityId, final Class entityClass, + final String configKey, final String configValue) { + super(tenant, entityId, entityClass); this.configKey = configKey; this.configValue = configValue; } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/AbstractActionEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/AbstractActionEvent.java index d0ab5e71d..e56530bae 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/AbstractActionEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/AbstractActionEvent.java @@ -15,6 +15,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; import org.eclipse.hawkbit.repository.model.Action; +import org.springframework.lang.Nullable; /** * Defines the remote event of creating a new {@link Action}. @@ -32,28 +33,17 @@ public abstract class AbstractActionEvent extends RemoteEntityEvent { private final Long rolloutGroupId; /** - * Default constructor. + * Default constructor for serialization libs like jackson. */ protected AbstractActionEvent() { - // for serialization libs like jackson this.targetId = null; this.rolloutId = null; this.rolloutGroupId = null; } - /** - * Constructor - * - * @param action the created action - * @param targetId targetId identifier (optional) - * @param rolloutId rollout identifier (optional) - * @param rolloutGroupId rollout group identifier (optional) - * @param applicationId the origin application id - */ protected AbstractActionEvent( - final Action action, final Long targetId, final Long rolloutId, - final Long rolloutGroupId, final String applicationId) { - super(action, applicationId); + final Action action, @Nullable final Long targetId, @Nullable final Long rolloutId, @Nullable final Long rolloutGroupId) { + super(action); this.targetId = targetId; this.rolloutId = rolloutId; this.rolloutGroupId = rolloutGroupId; diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/AbstractRolloutGroupEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/AbstractRolloutGroupEvent.java index c9678f323..bc39fa323 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/AbstractRolloutGroupEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/AbstractRolloutGroupEvent.java @@ -25,16 +25,14 @@ public abstract class AbstractRolloutGroupEvent extends RemoteEntityEventtrue if {@link DistributionSet} is after the update {@link DistributionSet#isComplete()} */ - public DistributionSetUpdatedEvent(final DistributionSet ds, final String applicationId, final boolean complete) { - super(ds, applicationId); + public DistributionSetUpdatedEvent(final DistributionSet distributionSet, final boolean complete) { + super(distributionSet); this.complete = complete; } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RemoteEntityEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RemoteEntityEvent.java index 52d11e51a..4ad3fe5dd 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RemoteEntityEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RemoteEntityEvent.java @@ -36,14 +36,8 @@ public class RemoteEntityEvent extends RemoteId private transient E entity; - /** - * Constructor. - * - * @param baseEntity the base entity - * @param applicationId the origin application id - */ - protected RemoteEntityEvent(final E baseEntity, final String applicationId) { - super(baseEntity.getId(), baseEntity.getTenant(), baseEntity.getClass(), applicationId); + protected RemoteEntityEvent(final E baseEntity) { + super(baseEntity.getTenant(), baseEntity.getId(), baseEntity.getClass()); this.entity = baseEntity; } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutCreatedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutCreatedEvent.java index b5afbd27a..bae4f32a3 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutCreatedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutCreatedEvent.java @@ -24,13 +24,7 @@ public class RolloutCreatedEvent extends RemoteEntityEvent implements E @Serial private static final long serialVersionUID = 1L; - /** - * Constructor. - * - * @param baseEntity the Rollout - * @param applicationId the origin application id - */ - public RolloutCreatedEvent(final Rollout baseEntity, final String applicationId) { - super(baseEntity, applicationId); + public RolloutCreatedEvent(final Rollout rollout) { + super(rollout); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutGroupCreatedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutGroupCreatedEvent.java index 6076582bd..ede407a23 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutGroupCreatedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutGroupCreatedEvent.java @@ -25,14 +25,7 @@ public class RolloutGroupCreatedEvent extends AbstractRolloutGroupEvent implemen @Serial private static final long serialVersionUID = 1L; - /** - * Constructor - * - * @param rolloutGroup the updated rolloutGroup - * @param rolloutId of the related rollout - * @param applicationId the origin application id - */ - public RolloutGroupCreatedEvent(final RolloutGroup rolloutGroup, final Long rolloutId, final String applicationId) { - super(rolloutGroup, rolloutId, applicationId); + public RolloutGroupCreatedEvent(final RolloutGroup rolloutGroup, final Long rolloutId) { + super(rolloutGroup, rolloutId); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutGroupUpdatedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutGroupUpdatedEvent.java index ba6b7fe54..5cc6d096e 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutGroupUpdatedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutGroupUpdatedEvent.java @@ -24,14 +24,7 @@ public class RolloutGroupUpdatedEvent extends AbstractRolloutGroupEvent implemen @Serial private static final long serialVersionUID = 2L; - /** - * Constructor - * - * @param rolloutGroup the updated rolloutGroup - * @param rolloutId of the related rollout - * @param applicationId the origin application id - */ - public RolloutGroupUpdatedEvent(final RolloutGroup rolloutGroup, final Long rolloutId, final String applicationId) { - super(rolloutGroup, rolloutId, applicationId); + public RolloutGroupUpdatedEvent(final RolloutGroup rolloutGroup, final Long rolloutId) { + super(rolloutGroup, rolloutId); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutUpdatedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutUpdatedEvent.java index ea1767878..9f1bc0e60 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutUpdatedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/RolloutUpdatedEvent.java @@ -24,13 +24,7 @@ public class RolloutUpdatedEvent extends RemoteEntityEvent implements E @Serial private static final long serialVersionUID = 1L; - /** - * Constructor - * - * @param rollout the updated rollout - * @param applicationId the origin application id - */ - public RolloutUpdatedEvent(final Rollout rollout, final String applicationId) { - super(rollout, applicationId); + public RolloutUpdatedEvent(final Rollout rollout) { + super(rollout); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/SoftwareModuleCreatedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/SoftwareModuleCreatedEvent.java index 9626c9e53..453ad669e 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/SoftwareModuleCreatedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/SoftwareModuleCreatedEvent.java @@ -24,13 +24,7 @@ public class SoftwareModuleCreatedEvent extends RemoteEntityEvent implements Ent @Serial private static final long serialVersionUID = 1L; - /** - * Constructor. - * - * @param baseEntity the target - * @param applicationId the origin application id - */ - public TargetCreatedEvent(final Target baseEntity, final String applicationId) { - super(baseEntity, applicationId); + public TargetCreatedEvent(final Target target) { + super(target); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetFilterQueryCreatedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetFilterQueryCreatedEvent.java index 2679c0751..dc16fef01 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetFilterQueryCreatedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetFilterQueryCreatedEvent.java @@ -24,13 +24,7 @@ public class TargetFilterQueryCreatedEvent extends RemoteEntityEvent implemen @Serial private static final long serialVersionUID = 1L; - /** - * Constructor. - * - * @param tag the tag which is deleted - * @param applicationId the origin application id - */ - public TargetTagCreatedEvent(final TargetTag tag, final String applicationId) { - super(tag, applicationId); + public TargetTagCreatedEvent(final TargetTag targetTag) { + super(targetTag); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetTagUpdatedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetTagUpdatedEvent.java index 02b580a50..160d62b7f 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetTagUpdatedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetTagUpdatedEvent.java @@ -24,13 +24,7 @@ public class TargetTagUpdatedEvent extends RemoteEntityEvent implemen @Serial private static final long serialVersionUID = 1L; - /** - * Constructor. - * - * @param tag the tag which is updated - * @param applicationId the origin application id - */ - public TargetTagUpdatedEvent(final TargetTag tag, final String applicationId) { - super(tag, applicationId); + public TargetTagUpdatedEvent(final TargetTag targetTag) { + super(targetTag); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetTypeCreatedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetTypeCreatedEvent.java index 6be0250a2..11240a8a9 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetTypeCreatedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetTypeCreatedEvent.java @@ -24,13 +24,7 @@ public class TargetTypeCreatedEvent extends RemoteEntityEvent implem @Serial private static final long serialVersionUID = 1L; - /** - * Constructor. - * - * @param baseEntity the TargetType - * @param applicationId the origin application id - */ - public TargetTypeCreatedEvent(final TargetType baseEntity, final String applicationId) { - super(baseEntity, applicationId); + public TargetTypeCreatedEvent(final TargetType targetType) { + super(targetType); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetTypeUpdatedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetTypeUpdatedEvent.java index 9fb69db4d..3f88dda31 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetTypeUpdatedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetTypeUpdatedEvent.java @@ -24,13 +24,7 @@ public class TargetTypeUpdatedEvent extends RemoteEntityEvent implem @Serial private static final long serialVersionUID = 1L; - /** - * Constructor. - * - * @param baseEntity TargetType - * @param applicationId the origin application id - */ - public TargetTypeUpdatedEvent(final TargetType baseEntity, final String applicationId) { - super(baseEntity, applicationId); + public TargetTypeUpdatedEvent(final TargetType targetType) { + super(targetType); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetUpdatedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetUpdatedEvent.java index 9cf872026..83e32a0e4 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetUpdatedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TargetUpdatedEvent.java @@ -24,13 +24,7 @@ public class TargetUpdatedEvent extends RemoteEntityEvent implements Ent @Serial private static final long serialVersionUID = 1L; - /** - * Constructor. - * - * @param baseEntity Target entity - * @param applicationId the origin application id - */ - public TargetUpdatedEvent(final Target baseEntity, final String applicationId) { - super(baseEntity, applicationId); + public TargetUpdatedEvent(final Target target) { + super(target); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TenantConfigurationCreatedEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TenantConfigurationCreatedEvent.java index 1f28b1c65..b495ea3c6 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TenantConfigurationCreatedEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/entity/TenantConfigurationCreatedEvent.java @@ -24,13 +24,7 @@ public class TenantConfigurationCreatedEvent extends RemoteEntityEvent()), null); @@ -68,7 +69,7 @@ class BusProtoStuffMessageConverterTest { */ @Test void missingEventTypeMappingThrowsMessageConversationException() { - final DummyRemoteEntityEvent dummyEvent = new DummyRemoteEntityEvent(targetMock, "applicationId"); + final DummyRemoteEntityEvent dummyEvent = new DummyRemoteEntityEvent(targetMock); final MessageHeaders messageHeaders = new MessageHeaders(new HashMap<>()); assertThatExceptionOfType(MessageConversionException.class) @@ -79,13 +80,13 @@ class BusProtoStuffMessageConverterTest { /** * Test event with which non-existing mapping to serialize. */ - private final class DummyRemoteEntityEvent extends RemoteEntityEvent { + private static final class DummyRemoteEntityEvent extends RemoteEntityEvent { + @Serial private static final long serialVersionUID = 1L; - private DummyRemoteEntityEvent(final Target target, final String applicationId) { - super(target, applicationId); + private DummyRemoteEntityEvent(final Target target) { + super(target); } - } -} +} \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutExecutor.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutExecutor.java index 764caed69..5e9e7e9fa 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutExecutor.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutExecutor.java @@ -33,6 +33,7 @@ import org.eclipse.hawkbit.repository.RolloutGroupManagement; import org.eclipse.hawkbit.repository.RolloutHelper; import org.eclipse.hawkbit.repository.RolloutManagement; import org.eclipse.hawkbit.repository.TargetManagement; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.RolloutStoppedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.RolloutUpdatedEvent; import org.eclipse.hawkbit.repository.exception.AssignmentQuotaExceededException; @@ -62,7 +63,6 @@ import org.eclipse.hawkbit.repository.model.RolloutGroup.RolloutGroupErrorCondit import org.eclipse.hawkbit.repository.model.RolloutGroup.RolloutGroupStatus; import org.eclipse.hawkbit.repository.model.RolloutGroup.RolloutGroupSuccessCondition; import org.eclipse.hawkbit.repository.model.Target; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; import org.eclipse.hawkbit.security.SpringSecurityAuditorAware; import org.eclipse.hawkbit.tenancy.TenantAware; import org.springframework.data.domain.PageRequest; @@ -113,7 +113,6 @@ public class JpaRolloutExecutor implements RolloutExecutor { private final EntityManager entityManager; private final PlatformTransactionManager txManager; private final AfterTransactionCommitExecutor afterCommit; - private final EventPublisherHolder eventPublisherHolder; private final TenantAware tenantAware; private final RepositoryProperties repositoryProperties; private final Map lastDynamicGroupFill = new ConcurrentHashMap<>(); @@ -127,7 +126,7 @@ public class JpaRolloutExecutor implements RolloutExecutor { final RolloutManagement rolloutManagement, final QuotaManagement quotaManagement, final RolloutGroupEvaluationManager evaluationManager, final RolloutApprovalStrategy rolloutApprovalStrategy, final EntityManager entityManager, final PlatformTransactionManager txManager, - final AfterTransactionCommitExecutor afterCommit, final EventPublisherHolder eventPublisherHolder, + final AfterTransactionCommitExecutor afterCommit, final TenantAware tenantAware, final RepositoryProperties repositoryProperties) { this.actionRepository = actionRepository; this.rolloutGroupRepository = rolloutGroupRepository; @@ -143,7 +142,6 @@ public class JpaRolloutExecutor implements RolloutExecutor { this.entityManager = entityManager; this.txManager = txManager; this.afterCommit = afterCommit; - this.eventPublisherHolder = eventPublisherHolder; this.tenantAware = tenantAware; this.repositoryProperties = repositoryProperties; } @@ -309,8 +307,8 @@ public class JpaRolloutExecutor implements RolloutExecutor { rolloutRepository.save(rollout); final List groupIds = rollout.getRolloutGroups().stream().map(RolloutGroup::getId).toList(); - afterCommit.afterCommit(() -> eventPublisherHolder.getEventPublisher().publishEvent(new RolloutStoppedEvent( - tenantAware.getCurrentTenant(), eventPublisherHolder.getApplicationId(), rollout.getId(), groupIds))); + afterCommit.afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new RolloutStoppedEvent( + tenantAware.getCurrentTenant(), rollout.getId(), groupIds))); } private void handleReadyRollout(final Rollout rollout) { @@ -374,8 +372,8 @@ public class JpaRolloutExecutor implements RolloutExecutor { .map(Action::getId) .toList(); actionRepository.deleteByIdIn(actionIds); - afterCommit.afterCommit(() -> eventPublisherHolder.getEventPublisher() - .publishEvent(new RolloutUpdatedEvent(rollout, eventPublisherHolder.getApplicationId()))); + afterCommit.afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher() + .publishEvent(new RolloutUpdatedEvent(rollout))); } catch (final RuntimeException e) { log.error("Exception during deletion of actions of rollout {}", rollout, e); } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/RepositoryApplicationConfiguration.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/RepositoryApplicationConfiguration.java index 7d0bf8811..850342772 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/RepositoryApplicationConfiguration.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/RepositoryApplicationConfiguration.java @@ -152,7 +152,6 @@ import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.model.TargetFilterQuery; import org.eclipse.hawkbit.repository.model.TargetType; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; import org.eclipse.hawkbit.repository.model.helper.SystemSecurityContextHolder; import org.eclipse.hawkbit.repository.model.helper.TenantConfigurationManagementHolder; import org.eclipse.hawkbit.repository.rsql.RsqlConfigHolder; @@ -623,12 +622,12 @@ public class RepositoryApplicationConfiguration { final RolloutGroupRepository rolloutGroupRepository, final TargetFilterQueryRepository targetFilterQueryRepository, final TargetTypeRepository targetTypeRepository, final TargetTagRepository targetTagRepository, - final EventPublisherHolder eventPublisherHolder, final TenantAware tenantAware, + final TenantAware tenantAware, final VirtualPropertyReplacer virtualPropertyReplacer, final JpaProperties properties, final DistributionSetManagement distributionSetManagement) { return new JpaTargetManagement(entityManager, distributionSetManagement, quotaManagement, targetRepository, targetTypeRepository, rolloutGroupRepository, targetFilterQueryRepository, - targetTagRepository, eventPublisherHolder, tenantAware, virtualPropertyReplacer, + targetTagRepository, tenantAware, virtualPropertyReplacer, properties.getDatabase()); } @@ -743,12 +742,12 @@ public class RepositoryApplicationConfiguration { final RolloutManagement rolloutManagement, final QuotaManagement quotaManagement, final RolloutGroupEvaluationManager evaluationManager, final RolloutApprovalStrategy rolloutApprovalStrategy, final EntityManager entityManager, final PlatformTransactionManager txManager, - final AfterTransactionCommitExecutor afterCommit, final EventPublisherHolder eventPublisherHolder, + final AfterTransactionCommitExecutor afterCommit, final TenantAware tenantAware, final RepositoryProperties repositoryProperties) { return new JpaRolloutExecutor(actionRepository, rolloutGroupRepository, rolloutTargetGroupRepository, rolloutRepository, targetManagement, deploymentManagement, rolloutGroupManagement, rolloutManagement, quotaManagement, evaluationManager, rolloutApprovalStrategy, entityManager, txManager, afterCommit, - eventPublisherHolder, tenantAware, repositoryProperties); + tenantAware, repositoryProperties); } @Bean @@ -764,14 +763,14 @@ public class RepositoryApplicationConfiguration { final DistributionSetManagement distributionSetManagement, final TenantConfigurationManagement tenantConfigurationManagement, final QuotaManagement quotaManagement, - final AfterTransactionCommitExecutor afterCommit, final EventPublisherHolder eventPublisherHolder, + final AfterTransactionCommitExecutor afterCommit, final VirtualPropertyReplacer virtualPropertyReplacer, final SystemSecurityContext systemSecurityContext, final ContextAware contextAware, final JpaProperties properties, final RepositoryProperties repositoryProperties) { return new JpaRolloutManagement(rolloutRepository, rolloutGroupRepository, rolloutApprovalStrategy, startNextRolloutGroupAction, rolloutStatusCache, actionRepository, targetManagement, distributionSetManagement, tenantConfigurationManagement, quotaManagement, afterCommit, - eventPublisherHolder, virtualPropertyReplacer, systemSecurityContext, contextAware, properties.getDatabase(), + virtualPropertyReplacer, systemSecurityContext, contextAware, properties.getDatabase(), repositoryProperties); } @@ -816,14 +815,14 @@ public class RepositoryApplicationConfiguration { final ActionRepository actionRepository, final DistributionSetManagement distributionSetManagement, final TargetRepository targetRepository, final ActionStatusRepository actionStatusRepository, final AuditorAware auditorProvider, - final EventPublisherHolder eventPublisherHolder, final AfterTransactionCommitExecutor afterCommit, + final AfterTransactionCommitExecutor afterCommit, final VirtualPropertyReplacer virtualPropertyReplacer, final PlatformTransactionManager txManager, final TenantConfigurationManagement tenantConfigurationManagement, final QuotaManagement quotaManagement, final SystemSecurityContext systemSecurityContext, final TenantAware tenantAware, final AuditorAware auditorAware, final JpaProperties properties, final RepositoryProperties repositoryProperties) { return new JpaDeploymentManagement(entityManager, actionRepository, distributionSetManagement, targetRepository, actionStatusRepository, auditorProvider, - eventPublisherHolder, afterCommit, virtualPropertyReplacer, txManager, tenantConfigurationManagement, + afterCommit, virtualPropertyReplacer, txManager, tenantConfigurationManagement, quotaManagement, systemSecurityContext, tenantAware, auditorAware, properties.getDatabase(), repositoryProperties); } @@ -853,13 +852,13 @@ public class RepositoryApplicationConfiguration { final DistributionSetManagement distributionSetManagement, final TenantConfigurationManagement tenantConfigurationManagement, final PlatformTransactionManager txManager, final EntityFactory entityFactory, final EntityManager entityManager, - final AfterTransactionCommitExecutor afterCommit, final EventPublisherHolder eventPublisherHolder, + final AfterTransactionCommitExecutor afterCommit, final SystemSecurityContext systemSecurityContext, final TenantAware tenantAware, final ScheduledExecutorService executorService) { return new JpaControllerManagement(actionRepository, actionStatusRepository, quotaManagement, repositoryProperties, targetRepository, targetTypeManagement, deploymentManagement, confirmationManagement, softwareModuleRepository, softwareModuleMetadataRepository, distributionSetManagement, tenantConfigurationManagement, txManager, - entityFactory, entityManager, afterCommit, eventPublisherHolder, systemSecurityContext, tenantAware, + entityFactory, entityManager, afterCommit, systemSecurityContext, tenantAware, executorService); } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/AbstractDsAssignmentStrategy.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/AbstractDsAssignmentStrategy.java index ed5164026..764a64f63 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/AbstractDsAssignmentStrategy.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/AbstractDsAssignmentStrategy.java @@ -22,6 +22,7 @@ import lombok.extern.slf4j.Slf4j; import org.eclipse.hawkbit.repository.QuotaManagement; import org.eclipse.hawkbit.repository.RepositoryConstants; import org.eclipse.hawkbit.repository.RepositoryProperties; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.CancelTargetAssignmentEvent; import org.eclipse.hawkbit.repository.event.remote.entity.TargetUpdatedEvent; import org.eclipse.hawkbit.repository.jpa.configuration.Constants; @@ -33,7 +34,6 @@ import org.eclipse.hawkbit.repository.jpa.model.JpaAction_; import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSet; import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSet_; import org.eclipse.hawkbit.repository.jpa.model.JpaTarget; -import org.eclipse.hawkbit.repository.jpa.model.JpaTarget_; import org.eclipse.hawkbit.repository.jpa.repository.ActionRepository; import org.eclipse.hawkbit.repository.jpa.repository.ActionStatusRepository; import org.eclipse.hawkbit.repository.jpa.repository.TargetRepository; @@ -46,7 +46,6 @@ import org.eclipse.hawkbit.repository.model.Rollout; import org.eclipse.hawkbit.repository.model.RolloutGroup; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.model.TargetWithActionType; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; @@ -59,7 +58,6 @@ public abstract class AbstractDsAssignmentStrategy { protected final TargetRepository targetRepository; protected final AfterTransactionCommitExecutor afterCommit; - protected final EventPublisherHolder eventPublisherHolder; protected final ActionRepository actionRepository; private final ActionStatusRepository actionStatusRepository; @@ -71,13 +69,12 @@ public abstract class AbstractDsAssignmentStrategy { @SuppressWarnings("java:S107") AbstractDsAssignmentStrategy( final TargetRepository targetRepository, - final AfterTransactionCommitExecutor afterCommit, final EventPublisherHolder eventPublisherHolder, + final AfterTransactionCommitExecutor afterCommit, final ActionRepository actionRepository, final ActionStatusRepository actionStatusRepository, final QuotaManagement quotaManagement, final BooleanSupplier multiAssignmentsConfig, final BooleanSupplier confirmationFlowConfig, final RepositoryProperties repositoryProperties) { this.targetRepository = targetRepository; this.afterCommit = afterCommit; - this.eventPublisherHolder = eventPublisherHolder; this.actionRepository = actionRepository; this.actionStatusRepository = actionStatusRepository; this.quotaManagement = quotaManagement; @@ -131,8 +128,7 @@ public abstract class AbstractDsAssignmentStrategy { } protected void sendTargetUpdatedEvent(final JpaTarget target) { - afterCommit.afterCommit(() -> eventPublisherHolder.getEventPublisher() - .publishEvent(new TargetUpdatedEvent(target, eventPublisherHolder.getApplicationId()))); + afterCommit.afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TargetUpdatedEvent(target))); } /** @@ -215,8 +211,8 @@ public abstract class AbstractDsAssignmentStrategy { * @param action the action of the assignment */ protected void cancelAssignDistributionSetEvent(final Action action) { - afterCommit.afterCommit(() -> eventPublisherHolder.getEventPublisher().publishEvent( - new CancelTargetAssignmentEvent(action, eventPublisherHolder.getApplicationId()))); + afterCommit.afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher() + .publishEvent(new CancelTargetAssignmentEvent(action))); } protected boolean isMultiAssignmentsEnabled() { @@ -292,9 +288,8 @@ public abstract class AbstractDsAssignmentStrategy { return; } final String tenant = actions.get(0).getTenant(); - afterCommit.afterCommit(() -> eventPublisherHolder.getEventPublisher() - .publishEvent(new CancelTargetAssignmentEvent(tenant, - actions, eventPublisherHolder.getApplicationId()))); + afterCommit.afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher() + .publishEvent(new CancelTargetAssignmentEvent(tenant, actions))); } private void assertActionsPerTargetQuota(final Target target, final int requested) { diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java index f3b040646..3e891db3f 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java @@ -58,6 +58,7 @@ import org.eclipse.hawkbit.repository.TargetTypeManagement; import org.eclipse.hawkbit.repository.TenantConfigurationManagement; import org.eclipse.hawkbit.repository.UpdateMode; import org.eclipse.hawkbit.repository.builder.ActionStatusCreate; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.CancelTargetAssignmentEvent; import org.eclipse.hawkbit.repository.event.remote.TargetAttributesRequestedEvent; import org.eclipse.hawkbit.repository.event.remote.TargetPollEvent; @@ -98,7 +99,6 @@ import org.eclipse.hawkbit.repository.model.SoftwareModuleMetadata; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.model.TargetType; import org.eclipse.hawkbit.repository.model.TargetUpdateStatus; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; import org.eclipse.hawkbit.security.SystemSecurityContext; import org.eclipse.hawkbit.tenancy.TenantAware; import org.eclipse.hawkbit.tenancy.configuration.TenantConfigurationProperties.TenantConfigurationKey; @@ -144,7 +144,6 @@ public class JpaControllerManagement extends JpaActionManagement implements Cont private final EntityFactory entityFactory; private final EntityManager entityManager; private final AfterTransactionCommitExecutor afterCommit; - private final EventPublisherHolder eventPublisherHolder; private final SystemSecurityContext systemSecurityContext; private final TenantAware tenantAware; @@ -158,7 +157,7 @@ public class JpaControllerManagement extends JpaActionManagement implements Cont final DistributionSetManagement distributionSetManagement, final TenantConfigurationManagement tenantConfigurationManagement, final PlatformTransactionManager txManager, final EntityFactory entityFactory, final EntityManager entityManager, - final AfterTransactionCommitExecutor afterCommit, final EventPublisherHolder eventPublisherHolder, + final AfterTransactionCommitExecutor afterCommit, final SystemSecurityContext systemSecurityContext, final TenantAware tenantAware, final ScheduledExecutorService executorService) { super(actionRepository, actionStatusRepository, quotaManagement, repositoryProperties); @@ -175,7 +174,6 @@ public class JpaControllerManagement extends JpaActionManagement implements Cont this.entityFactory = entityFactory; this.entityManager = entityManager; this.afterCommit = afterCommit; - this.eventPublisherHolder = eventPublisherHolder; this.systemSecurityContext = systemSecurityContext; this.tenantAware = tenantAware; @@ -678,8 +676,7 @@ public class JpaControllerManagement extends JpaActionManagement implements Cont final Target result = targetRepository.save(jpaTarget); - afterCommit.afterCommit(() -> eventPublisherHolder.getEventPublisher() - .publishEvent(new TargetPollEvent(result, eventPublisherHolder.getApplicationId()))); + afterCommit.afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TargetPollEvent(result))); return result; } @@ -728,8 +725,8 @@ public class JpaControllerManagement extends JpaActionManagement implements Cont pollChunks.forEach(chunk -> { setLastTargetQuery(tenant, System.currentTimeMillis(), chunk); - chunk.forEach(controllerId -> afterCommit.afterCommit(() -> eventPublisherHolder.getEventPublisher() - .publishEvent(new TargetPollEvent(controllerId, tenant, eventPublisherHolder.getApplicationId())))); + chunk.forEach(controllerId -> afterCommit.afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher() + .publishEvent(new TargetPollEvent(controllerId, tenant)))); }); return null; @@ -788,8 +785,7 @@ public class JpaControllerManagement extends JpaActionManagement implements Cont toUpdate.setUpdateStatus(TargetUpdateStatus.REGISTERED); } toUpdate.setLastTargetQuery(System.currentTimeMillis()); - afterCommit.afterCommit(() -> eventPublisherHolder.getEventPublisher() - .publishEvent(new TargetPollEvent(toUpdate, eventPublisherHolder.getApplicationId()))); + afterCommit.afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TargetPollEvent(toUpdate))); return targetRepository.save(toUpdate); } return toUpdate; @@ -835,10 +831,10 @@ public class JpaControllerManagement extends JpaActionManagement implements Cont private void requestControllerAttributes(final JpaTarget target) { target.setRequestControllerAttributes(true); - eventPublisherHolder.getEventPublisher() + EventPublisherHolder.getInstance().getEventPublisher() .publishEvent(new TargetAttributesRequestedEvent(tenantAware.getCurrentTenant(), target.getId(), - target.getControllerId(), target.getAddress() != null ? target.getAddress().toString() : null, - JpaTarget.class, eventPublisherHolder.getApplicationId())); + JpaTarget.class, target.getControllerId(), target.getAddress() != null ? target.getAddress().toString() : null + )); } private void handleErrorOnAction(final JpaAction mergedAction, final JpaTarget mergedTarget) { @@ -937,8 +933,8 @@ public class JpaControllerManagement extends JpaActionManagement implements Cont } private void cancelAssignDistributionSetEvent(final Action action) { - afterCommit.afterCommit(() -> eventPublisherHolder.getEventPublisher() - .publishEvent(new CancelTargetAssignmentEvent(action, eventPublisherHolder.getApplicationId()))); + afterCommit.afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher() + .publishEvent(new CancelTargetAssignmentEvent(action))); } /** diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDeploymentManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDeploymentManagement.java index c59cba7d1..b4c03a925 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDeploymentManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDeploymentManagement.java @@ -86,7 +86,6 @@ import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.model.TargetType; import org.eclipse.hawkbit.repository.model.TargetUpdateStatus; import org.eclipse.hawkbit.repository.model.TargetWithActionType; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer; import org.eclipse.hawkbit.security.SystemSecurityContext; import org.eclipse.hawkbit.tenancy.TenantAware; @@ -167,7 +166,7 @@ public class JpaDeploymentManagement extends JpaActionManagement implements Depl final EntityManager entityManager, final ActionRepository actionRepository, final DistributionSetManagement distributionSetManagement, final TargetRepository targetRepository, final ActionStatusRepository actionStatusRepository, final AuditorAware auditorProvider, - final EventPublisherHolder eventPublisherHolder, final AfterTransactionCommitExecutor afterCommit, + final AfterTransactionCommitExecutor afterCommit, final VirtualPropertyReplacer virtualPropertyReplacer, final PlatformTransactionManager txManager, final TenantConfigurationManagement tenantConfigurationManagement, final QuotaManagement quotaManagement, final SystemSecurityContext systemSecurityContext, final TenantAware tenantAware, final AuditorAware auditorAware, @@ -179,11 +178,11 @@ public class JpaDeploymentManagement extends JpaActionManagement implements Depl this.auditorProvider = auditorProvider; this.virtualPropertyReplacer = virtualPropertyReplacer; this.txManager = txManager; - onlineDsAssignmentStrategy = new OnlineDsAssignmentStrategy(targetRepository, afterCommit, eventPublisherHolder, + onlineDsAssignmentStrategy = new OnlineDsAssignmentStrategy(targetRepository, afterCommit, actionRepository, actionStatusRepository, quotaManagement, this::isMultiAssignmentsEnabled, this::isConfirmationFlowEnabled, repositoryProperties); offlineDsAssignmentStrategy = new OfflineDsAssignmentStrategy(targetRepository, afterCommit, - eventPublisherHolder, actionRepository, actionStatusRepository, quotaManagement, + actionRepository, actionStatusRepository, quotaManagement, this::isMultiAssignmentsEnabled, this::isConfirmationFlowEnabled, repositoryProperties); this.tenantConfigurationManagement = tenantConfigurationManagement; this.systemSecurityContext = systemSecurityContext; diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutManagement.java index 0c6aba00f..8c5dc7809 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutManagement.java @@ -44,6 +44,7 @@ import org.eclipse.hawkbit.repository.builder.GenericRolloutUpdate; import org.eclipse.hawkbit.repository.builder.RolloutCreate; import org.eclipse.hawkbit.repository.builder.RolloutGroupCreate; import org.eclipse.hawkbit.repository.builder.RolloutUpdate; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.entity.RolloutGroupCreatedEvent; import org.eclipse.hawkbit.repository.exception.EntityNotFoundException; import org.eclipse.hawkbit.repository.exception.EntityReadOnlyException; @@ -77,7 +78,6 @@ import org.eclipse.hawkbit.repository.model.RolloutGroupsValidation; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.model.TotalTargetCountActionStatus; import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer; import org.eclipse.hawkbit.security.SystemSecurityContext; import org.springframework.dao.ConcurrencyFailureException; @@ -120,7 +120,6 @@ public class JpaRolloutManagement implements RolloutManagement { private final TenantConfigurationManagement tenantConfigurationManagement; private final QuotaManagement quotaManagement; private final AfterTransactionCommitExecutor afterCommit; - private final EventPublisherHolder eventPublisherHolder; private final VirtualPropertyReplacer virtualPropertyReplacer; private final SystemSecurityContext systemSecurityContext; private final ContextAware contextAware; @@ -139,7 +138,7 @@ public class JpaRolloutManagement implements RolloutManagement { final DistributionSetManagement distributionSetManagement, final TenantConfigurationManagement tenantConfigurationManagement, final QuotaManagement quotaManagement, - final AfterTransactionCommitExecutor afterCommit, final EventPublisherHolder eventPublisherHolder, + final AfterTransactionCommitExecutor afterCommit, final VirtualPropertyReplacer virtualPropertyReplacer, final SystemSecurityContext systemSecurityContext, final ContextAware contextAware, final Database database, final RepositoryProperties repositoryProperties) { @@ -154,7 +153,6 @@ public class JpaRolloutManagement implements RolloutManagement { this.tenantConfigurationManagement = tenantConfigurationManagement; this.quotaManagement = quotaManagement; this.afterCommit = afterCommit; - this.eventPublisherHolder = eventPublisherHolder; this.virtualPropertyReplacer = virtualPropertyReplacer; this.systemSecurityContext = systemSecurityContext; this.contextAware = contextAware; @@ -167,8 +165,8 @@ public class JpaRolloutManagement implements RolloutManagement { } public void publishRolloutGroupCreatedEventAfterCommit(final RolloutGroup group, final Rollout rollout) { - afterCommit.afterCommit(() -> eventPublisherHolder.getEventPublisher().publishEvent( - new RolloutGroupCreatedEvent(group, rollout.getId(), eventPublisherHolder.getApplicationId()))); + afterCommit.afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher() + .publishEvent(new RolloutGroupCreatedEvent(group, rollout.getId()))); } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetManagement.java index f86cad0c9..df2921f42 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetManagement.java @@ -42,6 +42,7 @@ import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.TimestampCalculator; import org.eclipse.hawkbit.repository.builder.TargetCreate; import org.eclipse.hawkbit.repository.builder.TargetUpdate; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.TargetAttributesRequestedEvent; import org.eclipse.hawkbit.repository.exception.EntityAlreadyExistsException; import org.eclipse.hawkbit.repository.exception.EntityNotFoundException; @@ -73,7 +74,6 @@ import org.eclipse.hawkbit.repository.model.TargetTag; import org.eclipse.hawkbit.repository.model.TargetType; import org.eclipse.hawkbit.repository.model.TargetTypeAssignmentResult; import org.eclipse.hawkbit.repository.model.TargetUpdateStatus; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer; import org.eclipse.hawkbit.tenancy.TenantAware; import org.springframework.dao.ConcurrencyFailureException; @@ -103,7 +103,6 @@ public class JpaTargetManagement implements TargetManagement { private final RolloutGroupRepository rolloutGroupRepository; private final TargetFilterQueryRepository targetFilterQueryRepository; private final TargetTagRepository targetTagRepository; - private final EventPublisherHolder eventPublisherHolder; private final TenantAware tenantAware; private final VirtualPropertyReplacer virtualPropertyReplacer; private final Database database; @@ -114,7 +113,7 @@ public class JpaTargetManagement implements TargetManagement { final TargetRepository targetRepository, final TargetTypeRepository targetTypeRepository, final RolloutGroupRepository rolloutGroupRepository, final TargetFilterQueryRepository targetFilterQueryRepository, - final TargetTagRepository targetTagRepository, final EventPublisherHolder eventPublisherHolder, + final TargetTagRepository targetTagRepository, final TenantAware tenantAware, final VirtualPropertyReplacer virtualPropertyReplacer, final Database database) { this.entityManager = entityManager; @@ -125,7 +124,6 @@ public class JpaTargetManagement implements TargetManagement { this.rolloutGroupRepository = rolloutGroupRepository; this.targetFilterQueryRepository = targetFilterQueryRepository; this.targetTagRepository = targetTagRepository; - this.eventPublisherHolder = eventPublisherHolder; this.tenantAware = tenantAware; this.virtualPropertyReplacer = virtualPropertyReplacer; this.database = database; @@ -649,11 +647,11 @@ public class JpaTargetManagement implements TargetManagement { .ifPresent(acm -> acm.assertOperationAllowed(AccessController.Operation.UPDATE, target)); target.setRequestControllerAttributes(true); AfterTransactionCommitExecutorHolder.getInstance().getAfterCommit().afterCommit(() -> - eventPublisherHolder.getEventPublisher() + EventPublisherHolder.getInstance().getEventPublisher() .publishEvent(new TargetAttributesRequestedEvent( - tenantAware.getCurrentTenant(), target.getId(), target.getControllerId(), - target.getAddress() != null ? target.getAddress().toString() : null, - JpaTarget.class, eventPublisherHolder.getApplicationId()))); + tenantAware.getCurrentTenant(), target.getId(), JpaTarget.class, target.getControllerId(), + target.getAddress() != null ? target.getAddress().toString() : null + ))); } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OfflineDsAssignmentStrategy.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OfflineDsAssignmentStrategy.java index d0862fd79..07dbb5b99 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OfflineDsAssignmentStrategy.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OfflineDsAssignmentStrategy.java @@ -38,7 +38,6 @@ import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.DistributionSetAssignmentResult; import org.eclipse.hawkbit.repository.model.TargetUpdateStatus; import org.eclipse.hawkbit.repository.model.TargetWithActionType; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; /** * AbstractDsAssignmentStrategy for offline assignments, i.e. not managed by @@ -48,11 +47,11 @@ public class OfflineDsAssignmentStrategy extends AbstractDsAssignmentStrategy { OfflineDsAssignmentStrategy( final TargetRepository targetRepository, - final AfterTransactionCommitExecutor afterCommit, final EventPublisherHolder eventPublisherHolder, + final AfterTransactionCommitExecutor afterCommit, final ActionRepository actionRepository, final ActionStatusRepository actionStatusRepository, final QuotaManagement quotaManagement, final BooleanSupplier multiAssignmentsConfig, final BooleanSupplier confirmationFlowConfig, final RepositoryProperties repositoryProperties) { - super(targetRepository, afterCommit, eventPublisherHolder, actionRepository, actionStatusRepository, + super(targetRepository, afterCommit, actionRepository, actionStatusRepository, quotaManagement, multiAssignmentsConfig, confirmationFlowConfig, repositoryProperties); } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OnlineDsAssignmentStrategy.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OnlineDsAssignmentStrategy.java index 9b9085560..2e8f4beba 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OnlineDsAssignmentStrategy.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OnlineDsAssignmentStrategy.java @@ -21,6 +21,7 @@ import java.util.stream.Stream; import org.apache.commons.collections4.ListUtils; import org.eclipse.hawkbit.repository.QuotaManagement; import org.eclipse.hawkbit.repository.RepositoryProperties; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.MultiActionAssignEvent; import org.eclipse.hawkbit.repository.event.remote.MultiActionCancelEvent; import org.eclipse.hawkbit.repository.event.remote.TargetAssignDistributionSetEvent; @@ -42,7 +43,6 @@ import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.DistributionSetAssignmentResult; import org.eclipse.hawkbit.repository.model.TargetUpdateStatus; import org.eclipse.hawkbit.repository.model.TargetWithActionType; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; import org.springframework.util.CollectionUtils; /** @@ -51,11 +51,11 @@ import org.springframework.util.CollectionUtils; public class OnlineDsAssignmentStrategy extends AbstractDsAssignmentStrategy { OnlineDsAssignmentStrategy(final TargetRepository targetRepository, - final AfterTransactionCommitExecutor afterCommit, final EventPublisherHolder eventPublisherHolder, + final AfterTransactionCommitExecutor afterCommit, final ActionRepository actionRepository, final ActionStatusRepository actionStatusRepository, final QuotaManagement quotaManagement, final BooleanSupplier multiAssignmentsConfig, final BooleanSupplier confirmationFlowConfig, final RepositoryProperties repositoryProperties) { - super(targetRepository, afterCommit, eventPublisherHolder, actionRepository, actionStatusRepository, + super(targetRepository, afterCommit, actionRepository, actionStatusRepository, quotaManagement, multiAssignmentsConfig, confirmationFlowConfig, repositoryProperties); } @@ -225,9 +225,10 @@ public class OnlineDsAssignmentStrategy extends AbstractDsAssignmentStrategy { return; } - afterCommit.afterCommit(() -> eventPublisherHolder.getEventPublisher() - .publishEvent(new TargetAssignDistributionSetEvent(tenant, distributionSetId, actions, - eventPublisherHolder.getApplicationId(), actions.get(0).isMaintenanceWindowAvailable()))); + afterCommit.afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher() + .publishEvent(new TargetAssignDistributionSetEvent( + tenant, distributionSetId, actions, + actions.get(0).isMaintenanceWindowAvailable()))); } /** @@ -238,20 +239,18 @@ public class OnlineDsAssignmentStrategy extends AbstractDsAssignmentStrategy { * @param actions assigned to the targets */ private void sendMultiActionCancelEvent(final String tenant, final List actions) { - afterCommit.afterCommit(() -> eventPublisherHolder.getEventPublisher() - .publishEvent(new MultiActionCancelEvent(tenant, eventPublisherHolder.getApplicationId(), actions))); + afterCommit.afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher() + .publishEvent(new MultiActionCancelEvent(tenant, actions))); } /** - * Helper to fire a {@link MultiActionAssignEvent}. This method may only be - * called if the Multi-Assignments feature is enabled. + * Helper to fire a {@link MultiActionAssignEvent}. This method may only be called if the Multi-Assignments feature is enabled. * * @param tenant the event is scoped to * @param actions assigned to the targets */ private void sendMultiActionAssignEvent(final String tenant, final List actions) { - afterCommit.afterCommit(() -> eventPublisherHolder.getEventPublisher() - .publishEvent(new MultiActionAssignEvent(tenant, eventPublisherHolder.getApplicationId(), actions))); + afterCommit.afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher() + .publishEvent(new MultiActionAssignEvent(tenant, actions))); } - -} +} \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java index 168b39d58..7a3016f7e 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java @@ -9,6 +9,8 @@ */ package org.eclipse.hawkbit.repository.jpa.model; +import static org.eclipse.hawkbit.repository.model.BaseEntity.getIdOrNull; + import java.io.Serial; import java.time.ZoneOffset; import java.time.ZonedDateTime; @@ -43,6 +45,7 @@ import jakarta.validation.constraints.NotNull; import lombok.Getter; import lombok.Setter; import org.eclipse.hawkbit.repository.MaintenanceScheduleHelper; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.entity.ActionCreatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.ActionUpdatedEvent; import org.eclipse.hawkbit.repository.jpa.utils.MapAttributeConverter; @@ -53,7 +56,6 @@ import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.Rollout; import org.eclipse.hawkbit.repository.model.RolloutGroup; import org.eclipse.hawkbit.repository.model.Target; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; /** * JPA implementation of {@link Action}. @@ -262,17 +264,13 @@ public class JpaAction extends AbstractJpaTenantAwareBaseEntity implements Actio @Override public void fireCreateEvent() { EventPublisherHolder.getInstance().getEventPublisher() - .publishEvent(new ActionCreatedEvent(this, BaseEntity.getIdOrNull(target), - BaseEntity.getIdOrNull(rollout), BaseEntity.getIdOrNull(rolloutGroup), - EventPublisherHolder.getInstance().getApplicationId())); + .publishEvent(new ActionCreatedEvent(this, getIdOrNull(target), getIdOrNull(rollout), getIdOrNull(rolloutGroup))); } @Override public void fireUpdateEvent() { EventPublisherHolder.getInstance().getEventPublisher() - .publishEvent(new ActionUpdatedEvent(this, BaseEntity.getIdOrNull(target), - BaseEntity.getIdOrNull(rollout), BaseEntity.getIdOrNull(rolloutGroup), - EventPublisherHolder.getInstance().getApplicationId())); + .publishEvent(new ActionUpdatedEvent(this, getIdOrNull(target), getIdOrNull(rollout), getIdOrNull(rolloutGroup))); } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSet.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSet.java index 42c16abb5..414dcadec 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSet.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSet.java @@ -40,6 +40,7 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.DistributionSetDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.DistributionSetCreatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.DistributionSetUpdatedEvent; @@ -51,7 +52,6 @@ import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.DistributionSetTag; import org.eclipse.hawkbit.repository.model.DistributionSetType; import org.eclipse.hawkbit.repository.model.SoftwareModule; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; import org.springframework.context.ApplicationEvent; /** @@ -240,24 +240,22 @@ public class JpaDistributionSet extends AbstractJpaNamedVersionedEntity implemen @Override public void fireCreateEvent() { publishEventWithEventPublisher( - new DistributionSetCreatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + new DistributionSetCreatedEvent(this)); } @Override public void fireUpdateEvent() { publishEventWithEventPublisher( - new DistributionSetUpdatedEvent(this, EventPublisherHolder.getInstance().getApplicationId(), complete)); + new DistributionSetUpdatedEvent(this, complete)); if (deleted) { - publishEventWithEventPublisher(new DistributionSetDeletedEvent(getTenant(), getId(), getClass(), - EventPublisherHolder.getInstance().getApplicationId())); + publishEventWithEventPublisher(new DistributionSetDeletedEvent(getTenant(), getId(), getClass())); } } @Override public void fireDeleteEvent() { - publishEventWithEventPublisher(new DistributionSetDeletedEvent(getTenant(), getId(), getClass(), - EventPublisherHolder.getInstance().getApplicationId())); + publishEventWithEventPublisher(new DistributionSetDeletedEvent(getTenant(), getId(), getClass())); } private static void publishEventWithEventPublisher(final ApplicationEvent event) { diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSetTag.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSetTag.java index c7bc82b22..0e6344533 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSetTag.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSetTag.java @@ -20,12 +20,12 @@ import jakarta.persistence.Table; import jakarta.persistence.UniqueConstraint; import lombok.NoArgsConstructor; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.DistributionSetTagDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.DistributionSetTagCreatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.DistributionSetTagUpdatedEvent; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.DistributionSetTag; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; /** * A {@link DistributionSetTag} is used to describe DistributionSet attributes and use them also for filtering the DistributionSet list. @@ -60,20 +60,18 @@ public class JpaDistributionSetTag extends JpaTag implements DistributionSetTag, @Override public void fireCreateEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new DistributionSetTagCreatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new DistributionSetTagCreatedEvent(this)); } @Override public void fireUpdateEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new DistributionSetTagUpdatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new DistributionSetTagUpdatedEvent(this)); } @Override public void fireDeleteEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new DistributionSetTagDeletedEvent( - getTenant(), getId(), getClass(), EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher() + .publishEvent(new DistributionSetTagDeletedEvent(getTenant(), getId(), getClass())); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSetType.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSetType.java index 2128461f4..2dd501f2f 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSetType.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSetType.java @@ -10,10 +10,8 @@ package org.eclipse.hawkbit.repository.jpa.model; import java.io.Serial; -import java.util.Collections; import java.util.HashSet; import java.util.List; -import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -22,7 +20,6 @@ import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; import jakarta.persistence.Index; -import jakarta.persistence.ManyToMany; import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.UniqueConstraint; @@ -30,6 +27,7 @@ import jakarta.persistence.UniqueConstraint; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.DistributionSetTypeDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.DistributionSetTypeCreatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.DistributionSetTypeUpdatedEvent; @@ -37,9 +35,6 @@ import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.DistributionSetType; import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; -import org.eclipse.hawkbit.repository.model.TargetType; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; -import org.springframework.util.CollectionUtils; /** * A distribution set type defines which software module types can or have to be {@link DistributionSet}. @@ -126,20 +121,18 @@ public class JpaDistributionSetType extends AbstractJpaTypeEntity implements Dis @Override public void fireCreateEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new DistributionSetTypeCreatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new DistributionSetTypeCreatedEvent(this)); } @Override public void fireUpdateEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new DistributionSetTypeUpdatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new DistributionSetTypeUpdatedEvent(this)); } @Override public void fireDeleteEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new DistributionSetTypeDeletedEvent( - getTenant(), getId(), getClass(), EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher() + .publishEvent(new DistributionSetTypeDeletedEvent(getTenant(), getId(), getClass())); } private JpaDistributionSetType setModuleType(final SoftwareModuleType smType, final boolean mandatory) { diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRollout.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRollout.java index d6b793166..fbed2dde6 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRollout.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRollout.java @@ -41,6 +41,7 @@ import jakarta.validation.constraints.Size; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.RolloutDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.RolloutCreatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.RolloutUpdatedEvent; @@ -52,7 +53,6 @@ import org.eclipse.hawkbit.repository.model.Rollout; import org.eclipse.hawkbit.repository.model.RolloutGroup; import org.eclipse.hawkbit.repository.model.TargetFilterQuery; import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; /** * JPA implementation of a {@link Rollout}. @@ -204,25 +204,21 @@ public class JpaRollout extends AbstractJpaNamedEntity implements Rollout, Event @Override public void fireCreateEvent() { - EventPublisherHolder.getInstance().getEventPublisher() - .publishEvent(new RolloutCreatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new RolloutCreatedEvent(this)); } @Override public void fireUpdateEvent() { - EventPublisherHolder.getInstance().getEventPublisher() - .publishEvent(new RolloutUpdatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new RolloutUpdatedEvent(this)); if (deleted) { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new RolloutDeletedEvent(getTenant(), - getId(), getClass(), EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new RolloutDeletedEvent(getTenant(), getId(), getClass())); } } @Override public void fireDeleteEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new RolloutDeletedEvent(getTenant(), - getId(), getClass(), EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new RolloutDeletedEvent(getTenant(), getId(), getClass())); } @Converter diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRolloutGroup.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRolloutGroup.java index 6218caab7..11c7c24d6 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRolloutGroup.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaRolloutGroup.java @@ -33,13 +33,13 @@ import jakarta.validation.constraints.Size; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.RolloutGroupDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.RolloutGroupUpdatedEvent; import org.eclipse.hawkbit.repository.jpa.utils.MapAttributeConverter; import org.eclipse.hawkbit.repository.model.Rollout; import org.eclipse.hawkbit.repository.model.RolloutGroup; import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; /** * JPA entity definition of persisting a group of an rollout. @@ -193,14 +193,12 @@ public class JpaRolloutGroup extends AbstractJpaNamedEntity implements RolloutGr @Override public void fireUpdateEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new RolloutGroupUpdatedEvent(this, getRollout().getId(), EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new RolloutGroupUpdatedEvent(this, getRollout().getId())); } @Override public void fireDeleteEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new RolloutGroupDeletedEvent(getTenant(), getId(), getClass(), EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new RolloutGroupDeletedEvent(getTenant(), getId(), getClass())); } @Converter diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModule.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModule.java index 3048a0040..59cecee0b 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModule.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModule.java @@ -41,6 +41,7 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.SoftwareModuleDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.SoftwareModuleCreatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.SoftwareModuleUpdatedEvent; @@ -49,7 +50,6 @@ 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.repository.model.SoftwareModuleType; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; /** * Base Software Module that is supported by OS level provisioning mechanism on the edge controller, e.g. OS, JVM, AgentHub. @@ -199,24 +199,21 @@ public class JpaSoftwareModule extends AbstractJpaNamedVersionedEntity implement @Override public void fireCreateEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new SoftwareModuleCreatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new SoftwareModuleCreatedEvent(this)); } @Override public void fireUpdateEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new SoftwareModuleUpdatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new SoftwareModuleUpdatedEvent(this)); if (deleted) { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new SoftwareModuleDeletedEvent( - getTenant(), getId(), getClass(), EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher() + .publishEvent(new SoftwareModuleDeletedEvent(getTenant(), getId(), getClass())); } } @Override public void fireDeleteEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new SoftwareModuleDeletedEvent(getTenant(), - getId(), getClass(), EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new SoftwareModuleDeletedEvent(getTenant(), getId(), getClass())); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModuleType.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModuleType.java index 1f7b20daf..70147214e 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModuleType.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModuleType.java @@ -21,11 +21,11 @@ import jakarta.validation.constraints.Min; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.SoftwareModuleTypeDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.SoftwareModuleTypeCreatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.SoftwareModuleTypeUpdatedEvent; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; /** * Type of software modules. @@ -69,19 +69,17 @@ public class JpaSoftwareModuleType extends AbstractJpaTypeEntity implements Soft @Override public void fireCreateEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new SoftwareModuleTypeCreatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new SoftwareModuleTypeCreatedEvent(this)); } @Override public void fireUpdateEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new SoftwareModuleTypeUpdatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new SoftwareModuleTypeUpdatedEvent(this)); } @Override public void fireDeleteEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new SoftwareModuleTypeDeletedEvent( - getTenant(), getId(), getClass(), EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher() + .publishEvent(new SoftwareModuleTypeDeletedEvent(getTenant(), getId(), getClass())); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTarget.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTarget.java index dcba2f317..76259e724 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTarget.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTarget.java @@ -50,6 +50,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.eclipse.hawkbit.im.authentication.SpPermission; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.TargetDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.TargetCreatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.TargetUpdatedEvent; @@ -61,7 +62,6 @@ import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.model.TargetTag; import org.eclipse.hawkbit.repository.model.TargetType; import org.eclipse.hawkbit.repository.model.TargetUpdateStatus; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; import org.eclipse.hawkbit.repository.model.helper.SystemSecurityContextHolder; import org.eclipse.hawkbit.repository.model.helper.TenantConfigurationManagementHolder; import org.eclipse.hawkbit.security.SystemSecurityContext; @@ -298,21 +298,18 @@ public class JpaTarget extends AbstractJpaNamedEntity implements Target, EventAw @Override public void fireCreateEvent() { - EventPublisherHolder.getInstance().getEventPublisher() - .publishEvent(new TargetCreatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TargetCreatedEvent(this)); } @Override public void fireUpdateEvent() { - EventPublisherHolder.getInstance().getEventPublisher() - .publishEvent(new TargetUpdatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TargetUpdatedEvent(this)); } @Override public void fireDeleteEvent() { EventPublisherHolder.getInstance().getEventPublisher() - .publishEvent(new TargetDeletedEvent(getTenant(), getId(), getControllerId(), address, - getClass(), EventPublisherHolder.getInstance().getApplicationId())); + .publishEvent(new TargetDeletedEvent(getTenant(), getId(), getClass(), getControllerId(), address)); } public List getRolloutTargetGroup() { diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetFilterQuery.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetFilterQuery.java index 33beb8fc6..80a899067 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetFilterQuery.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetFilterQuery.java @@ -28,6 +28,7 @@ import jakarta.validation.constraints.Size; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.TargetFilterQueryDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.TargetFilterQueryCreatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.TargetFilterQueryUpdatedEvent; @@ -35,7 +36,6 @@ import org.eclipse.hawkbit.repository.model.Action.ActionType; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.TargetFilterQuery; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; /** * Stored target filter. @@ -115,19 +115,17 @@ public class JpaTargetFilterQuery extends AbstractJpaTenantAwareBaseEntity imple @Override public void fireCreateEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new TargetFilterQueryCreatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TargetFilterQueryCreatedEvent(this)); } @Override public void fireUpdateEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new TargetFilterQueryUpdatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent( new TargetFilterQueryUpdatedEvent(this)); } @Override public void fireDeleteEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TargetFilterQueryDeletedEvent( - getTenant(), getId(), getClass(), EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher() + .publishEvent(new TargetFilterQueryDeletedEvent(getTenant(), getId(), getClass())); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetTag.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetTag.java index be1860dc9..e8bc77dc5 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetTag.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetTag.java @@ -18,11 +18,11 @@ import jakarta.persistence.UniqueConstraint; import lombok.NoArgsConstructor; import lombok.ToString; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.TargetTagDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.TargetTagCreatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.TargetTagUpdatedEvent; import org.eclipse.hawkbit.repository.model.TargetTag; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; /** * A {@link TargetTag} is used to describe Target attributes and use them also for filtering the target list. @@ -47,19 +47,16 @@ public class JpaTargetTag extends JpaTag implements TargetTag, EventAwareEntity @Override public void fireCreateEvent() { - EventPublisherHolder.getInstance().getEventPublisher() - .publishEvent(new TargetTagCreatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TargetTagCreatedEvent(this)); } @Override public void fireUpdateEvent() { - EventPublisherHolder.getInstance().getEventPublisher() - .publishEvent(new TargetTagUpdatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TargetTagUpdatedEvent(this)); } @Override public void fireDeleteEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TargetTagDeletedEvent(getTenant(), - getId(), getClass(), EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TargetTagDeletedEvent(getTenant(), getId(), getClass())); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetType.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetType.java index a9cc60333..51f1f034a 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetType.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetType.java @@ -26,13 +26,13 @@ import jakarta.persistence.UniqueConstraint; import lombok.NoArgsConstructor; import lombok.ToString; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.TargetTypeDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.TargetTypeCreatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.TargetTypeUpdatedEvent; import org.eclipse.hawkbit.repository.model.DistributionSetType; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.model.TargetType; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; /** * A target type defines which distribution set types can or have to be {@link Target}. @@ -98,19 +98,16 @@ public class JpaTargetType extends AbstractJpaTypeEntity implements TargetType, @Override public void fireCreateEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new TargetTypeCreatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TargetTypeCreatedEvent(this)); } @Override public void fireUpdateEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new TargetTypeUpdatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TargetTypeUpdatedEvent(this)); } @Override public void fireDeleteEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TargetTypeDeletedEvent( - getTenant(), getId(), getClass(), EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TargetTypeDeletedEvent(getTenant(), getId(), getClass())); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTenantConfiguration.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTenantConfiguration.java index 49c237862..3790edeab 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTenantConfiguration.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTenantConfiguration.java @@ -22,11 +22,11 @@ import jakarta.validation.constraints.Size; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.event.remote.TenantConfigurationDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.TenantConfigurationCreatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.TenantConfigurationUpdatedEvent; import org.eclipse.hawkbit.repository.model.TenantConfiguration; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; /** * A JPA entity which stores the tenant specific configuration. @@ -63,20 +63,17 @@ public class JpaTenantConfiguration extends AbstractJpaTenantAwareBaseEntity imp @Override public void fireCreateEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new TenantConfigurationCreatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TenantConfigurationCreatedEvent(this)); } @Override public void fireUpdateEvent() { - EventPublisherHolder.getInstance().getEventPublisher().publishEvent( - new TenantConfigurationUpdatedEvent(this, EventPublisherHolder.getInstance().getApplicationId())); + EventPublisherHolder.getInstance().getEventPublisher().publishEvent(new TenantConfigurationUpdatedEvent(this)); } @Override public void fireDeleteEvent() { EventPublisherHolder.getInstance().getEventPublisher() - .publishEvent(new TenantConfigurationDeletedEvent(getTenant(), getId(), getKey(), getValue(), - getClass(), EventPublisherHolder.getInstance().getApplicationId())); + .publishEvent(new TenantConfigurationDeletedEvent(getTenant(), getId(), getClass(), getKey(), getValue())); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/RemoteIdEventTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/RemoteIdEventTest.java index 283793aaf..585a43dcd 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/RemoteIdEventTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/RemoteIdEventTest.java @@ -30,7 +30,6 @@ class RemoteIdEventTest extends AbstractRemoteEventTest { private static final long ENTITY_ID = 1L; private static final String TENANT = "tenant"; private static final Class ENTITY_CLASS = JpaAction.class; - private static final String NODE = "Node"; private static final String CONTROLLER_ID = "controller911"; private static final String ADDRESS = "amqp://anyhost"; @@ -55,8 +54,7 @@ class RemoteIdEventTest extends AbstractRemoteEventTest { */ @Test void testTargetDeletedEvent() { - final TargetDeletedEvent deletedEvent = new TargetDeletedEvent(TENANT, ENTITY_ID, CONTROLLER_ID, ADDRESS, - ENTITY_CLASS, NODE); + final TargetDeletedEvent deletedEvent = new TargetDeletedEvent(TENANT, ENTITY_ID, ENTITY_CLASS, CONTROLLER_ID, ADDRESS); assertEntity(deletedEvent); } @@ -85,13 +83,12 @@ class RemoteIdEventTest extends AbstractRemoteEventTest { } protected void assertAndCreateRemoteEvent(final Class eventType) { - final Constructor constructor = Arrays.stream(eventType.getDeclaredConstructors()) - .filter(con -> con.getParameterCount() == 4).findAny() + .filter(con -> con.getParameterCount() == 3).findAny() .orElseThrow(() -> new IllegalArgumentException("Given event is not RemoteIdEvent compatible")); try { - final RemoteIdEvent event = (RemoteIdEvent) constructor.newInstance(TENANT, ENTITY_ID, ENTITY_CLASS, NODE); + final RemoteIdEvent event = (RemoteIdEvent) constructor.newInstance(TENANT, ENTITY_ID, ENTITY_CLASS); assertEntity(event); } catch (final ReflectiveOperationException e) { fail("Exception should not happen " + e.getMessage()); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/RemoteTenantAwareEventTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/RemoteTenantAwareEventTest.java index 3d5fd5b36..11e0625b3 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/RemoteTenantAwareEventTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/RemoteTenantAwareEventTest.java @@ -28,7 +28,6 @@ import org.junit.jupiter.api.Test; class RemoteTenantAwareEventTest extends AbstractRemoteEventTest { private static final String TENANT_DEFAULT = "DEFAULT"; - private static final String APPLICATION_ID_DEFAULT = "Node"; /** * Verifies that a testMultiActionAssignEvent can be properly serialized and deserialized @@ -38,8 +37,7 @@ class RemoteTenantAwareEventTest extends AbstractRemoteEventTest { final List controllerIds = List.of("id0", "id1", "id2", "id3", "id4loooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnng"); final List actions = controllerIds.stream().map(this::createAction).toList(); - final MultiActionAssignEvent assignEvent = new MultiActionAssignEvent(TENANT_DEFAULT, APPLICATION_ID_DEFAULT, - actions); + final MultiActionAssignEvent assignEvent = new MultiActionAssignEvent(TENANT_DEFAULT, actions); final MultiActionAssignEvent remoteAssignEventProtoStuff = createProtoStuffEvent(assignEvent); assertThat(assignEvent).isEqualTo(remoteAssignEventProtoStuff); @@ -58,8 +56,7 @@ class RemoteTenantAwareEventTest extends AbstractRemoteEventTest { final List controllerIds = List.of("id0", "id1", "id2", "id3", "id4loooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnng"); final List actions = controllerIds.stream().map(this::createAction).toList(); - final MultiActionCancelEvent cancelEvent = new MultiActionCancelEvent(TENANT_DEFAULT, APPLICATION_ID_DEFAULT, - actions); + final MultiActionCancelEvent cancelEvent = new MultiActionCancelEvent(TENANT_DEFAULT, actions); final MultiActionCancelEvent remoteCancelEventProtoStuff = createProtoStuffEvent(cancelEvent); assertThat(cancelEvent).isEqualTo(remoteCancelEventProtoStuff); @@ -75,8 +72,7 @@ class RemoteTenantAwareEventTest extends AbstractRemoteEventTest { */ @Test void reloadDownloadProgressByRemoteEvent() { - final DownloadProgressEvent downloadProgressEvent = new DownloadProgressEvent(TENANT_DEFAULT, 1L, 3L, - APPLICATION_ID_DEFAULT); + final DownloadProgressEvent downloadProgressEvent = new DownloadProgressEvent(TENANT_DEFAULT, 1L, 3L); final DownloadProgressEvent remoteEventProtoStuff = createProtoStuffEvent(downloadProgressEvent); assertThat(downloadProgressEvent).isEqualTo(remoteEventProtoStuff); @@ -104,8 +100,7 @@ class RemoteTenantAwareEventTest extends AbstractRemoteEventTest { final Action action = actionRepository.save(generateAction); final TargetAssignDistributionSetEvent assignmentEvent = new TargetAssignDistributionSetEvent( - action.getTenant(), dsA.getId(), List.of(action), serviceMatcher.getBusId(), - action.isMaintenanceWindowAvailable()); + action.getTenant(), dsA.getId(), List.of(action), action.isMaintenanceWindowAvailable()); final TargetAssignDistributionSetEvent remoteEventProtoStuff = createProtoStuffEvent(assignmentEvent); assertTargetAssignDistributionSetEvent(action, remoteEventProtoStuff); @@ -132,8 +127,7 @@ class RemoteTenantAwareEventTest extends AbstractRemoteEventTest { final Action action = actionRepository.save(generateAction); - final CancelTargetAssignmentEvent cancelEvent = new CancelTargetAssignmentEvent(action, - serviceMatcher.getBusId()); + final CancelTargetAssignmentEvent cancelEvent = new CancelTargetAssignmentEvent(action); final CancelTargetAssignmentEvent remoteEventProtoStuff = createProtoStuffEvent(cancelEvent); assertCancelTargetAssignmentEvent(action, remoteEventProtoStuff); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/entity/AbstractRemoteEntityEventTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/entity/AbstractRemoteEntityEventTest.java index c10096d4f..1284b5b37 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/entity/AbstractRemoteEntityEventTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/entity/AbstractRemoteEntityEventTest.java @@ -32,9 +32,7 @@ public abstract class AbstractRemoteEntityEventTest extends AbstractRemoteEve return event; } - protected RemoteEntityEvent createRemoteEvent(final E baseEntity, - final Class> eventType) { - + protected RemoteEntityEvent createRemoteEvent(final E baseEntity, final Class> eventType) { final int constructorParamCount = getConstructorParamCount(); final Constructor eventConstructor = findEventConstructorByParamCount(eventType, constructorParamCount); final Object[] eventConstructorParams = getConstructorParams(baseEntity); @@ -47,18 +45,17 @@ public abstract class AbstractRemoteEntityEventTest extends AbstractRemoteEve } protected int getConstructorParamCount() { - return 2; + return 1; } - protected Constructor findEventConstructorByParamCount(final Class> eventType, - final int paramCount) { + protected Constructor findEventConstructorByParamCount(final Class> eventType, final int paramCount) { return Arrays.stream(eventType.getDeclaredConstructors()) .filter(constructor -> constructor.getParameterCount() == paramCount).findAny() - .orElseThrow(() -> new IllegalArgumentException("No suitable constructor founded")); + .orElseThrow(() -> new IllegalArgumentException("No suitable constructor found")); } protected Object[] getConstructorParams(final E baseEntity) { - return new Object[] { baseEntity, "Node" }; + return new Object[] { baseEntity }; } protected RemoteEntityEvent assertEntity(final E baseEntity, final RemoteEntityEvent event) { diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/entity/ActionEventTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/entity/ActionEventTest.java index 905081678..a83892816 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/entity/ActionEventTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/entity/ActionEventTest.java @@ -45,12 +45,12 @@ class ActionEventTest extends AbstractRemoteEntityEventTest { @Override protected int getConstructorParamCount() { - return 5; + return 4; } @Override protected Object[] getConstructorParams(final Action baseEntity) { - return new Object[] { baseEntity, 1L, 1L, 2L, "Node" }; + return new Object[] { baseEntity, 1L, 1L, 2L }; } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/entity/DistributionSetTagEventTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/entity/DistributionSetTagEventTest.java index 256a873b1..ca33aec2e 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/entity/DistributionSetTagEventTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/entity/DistributionSetTagEventTest.java @@ -40,5 +40,4 @@ class DistributionSetTagEventTest extends AbstractRemoteEntityEventTest createRemoteEvent(final DistributionSet baseEntity, - final Class> eventType) { - - return new DistributionSetUpdatedEvent(baseEntity, "1", true); + protected RemoteEntityEvent createRemoteEvent(final DistributionSet baseEntity, final Class> eventType) { + return new DistributionSetUpdatedEvent(baseEntity, true); } @Override @@ -40,5 +38,4 @@ class DistributionSetUpdatedEventTest extends AbstractRemoteEntityEventTest */ @Test void testRolloutGroupCreatedEvent() { - final RolloutGroupCreatedEvent createdEvent = (RolloutGroupCreatedEvent) assertAndCreateRemoteEvent( - RolloutGroupCreatedEvent.class); + final RolloutGroupCreatedEvent createdEvent = (RolloutGroupCreatedEvent) assertAndCreateRemoteEvent(RolloutGroupCreatedEvent.class); assertThat(createdEvent.getRolloutId()).isNotNull(); } @@ -50,12 +49,12 @@ class RolloutGroupEventTest extends AbstractRemoteEntityEventTest @Override protected int getConstructorParamCount() { - return 3; + return 2; } @Override protected Object[] getConstructorParams(final RolloutGroup baseEntity) { - return new Object[] { baseEntity, 1L, "Node" }; + return new Object[] { baseEntity, 1L }; } @Override 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 c16a96235..0e4dc89bc 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 @@ -66,8 +66,6 @@ import org.eclipse.hawkbit.repository.test.util.SecurityContextSwitch; import org.eclipse.hawkbit.tenancy.configuration.TenantConfigurationProperties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties; -import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; -import org.springframework.context.annotation.Import; import org.springframework.data.domain.Page; import org.springframework.orm.jpa.vendor.Database; import org.springframework.test.context.ContextConfiguration; @@ -76,7 +74,6 @@ import org.springframework.transaction.annotation.Transactional; @Slf4j @ContextConfiguration(classes = { RepositoryApplicationConfiguration.class, TestConfiguration.class }) -@Import(TestChannelBinderConfiguration.class) @TestPropertySource(locations = "classpath:/jpa-test.properties") @SuppressWarnings("java:S6813") // constructor injects are not possible for test classes public abstract class AbstractJpaIntegrationTest extends AbstractIntegrationTest { diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLToSQLTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLToSQLTest.java index e78b43f92..0b3ca0147 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLToSQLTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLToSQLTest.java @@ -25,8 +25,6 @@ import org.eclipse.hawkbit.repository.test.TestConfiguration; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; -import org.springframework.context.annotation.Import; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; @@ -37,7 +35,6 @@ import org.springframework.test.context.ContextConfiguration; "spring.main.banner-mode=off", "logging.level.root=ERROR" }) @ContextConfiguration(classes = { RepositoryApplicationConfiguration.class, TestConfiguration.class }) -@Import(TestChannelBinderConfiguration.class) @Disabled("For manual run only, while playing around with RSQL to SQL") @SuppressWarnings("java:S2699") // java:S2699 - manual test, don't actually does assertions class RSQLToSQLTest { diff --git a/hawkbit-repository/hawkbit-repository-test/pom.xml b/hawkbit-repository/hawkbit-repository-test/pom.xml index f118bdc03..4ff8277ce 100644 --- a/hawkbit-repository/hawkbit-repository-test/pom.xml +++ b/hawkbit-repository/hawkbit-repository-test/pom.xml @@ -113,14 +113,6 @@ org.springframework.security spring-security-web - - org.springframework.cloud - spring-cloud-stream-test-binder - - - org.springframework.cloud - spring-cloud-stream-test-support - io.protostuff protostuff-core diff --git a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/TestConfiguration.java b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/TestConfiguration.java index 977071420..436bf30c6 100644 --- a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/TestConfiguration.java +++ b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/TestConfiguration.java @@ -45,7 +45,7 @@ import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.TargetTagManagement; import org.eclipse.hawkbit.repository.TargetTypeManagement; import org.eclipse.hawkbit.repository.event.ApplicationEventFilter; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; +import org.eclipse.hawkbit.repository.event.EventPublisherHolder; import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer; import org.eclipse.hawkbit.repository.rsql.VirtualPropertyResolver; import org.eclipse.hawkbit.repository.test.util.RolloutTestApprovalStrategy; @@ -271,4 +271,4 @@ public class TestConfiguration implements AsyncConfigurer { super.multicastEvent(event, eventType); } } -} +} \ No newline at end of file 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 d793814e0..0131c72d2 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 @@ -73,9 +73,7 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.cloud.bus.ServiceMatcher; -import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; import org.springframework.context.ApplicationEventPublisher; -import org.springframework.context.annotation.Import; import org.springframework.data.auditing.AuditingHandler; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; @@ -95,7 +93,7 @@ import org.springframework.test.context.TestPropertySource; @WithUser(principal = "bumlux", allSpPermissions = true, authorities = { CONTROLLER_ROLE, SYSTEM_ROLE }) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE) @ContextConfiguration(classes = { TestConfiguration.class }) -@Import(TestChannelBinderConfiguration.class) +//@Import(TestChannelBinderConfiguration.class) // destroy the context after each test class because otherwise we get problem when context is // refreshed we e.g. get two instances of CacheManager which leads to very strange test failures. @DirtiesContext(classMode = ClassMode.AFTER_CLASS) @@ -151,8 +149,6 @@ public abstract class AbstractIntegrationTest { @Autowired protected ArtifactManagement artifactManagement; @Autowired - protected AuditingHandler auditingHandler; - @Autowired protected TenantAware tenantAware; @Autowired protected SystemManagement systemManagement; @@ -169,8 +165,6 @@ public abstract class AbstractIntegrationTest { @Autowired protected ArtifactRepository binaryArtifactRepository; @Autowired - protected TenantAwareCacheManager cacheManager; - @Autowired protected QuotaManagement quotaManagement; protected SoftwareModuleType osType; 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 ea4a86923..7bb923216 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 @@ -16,8 +16,6 @@ import org.junit.jupiter.api.BeforeEach; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration; -import org.springframework.context.annotation.Import; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.test.web.servlet.MockMvc; @@ -32,7 +30,6 @@ import org.springframework.web.filter.CharacterEncodingFilter; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK) @ContextConfiguration(classes = { RestConfiguration.class, RepositoryApplicationConfiguration.class, TestConfiguration.class }) -@Import(TestChannelBinderConfiguration.class) @WebAppConfiguration @AutoConfigureMockMvc public abstract class AbstractRestIntegrationTest extends AbstractIntegrationTest {