Remove some of the field injections (Sonar recomendtion) (#2218)

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
This commit is contained in:
Avgustin Marinov
2025-01-23 09:52:29 +02:00
committed by GitHub
parent 4909a65d8c
commit bb9c9bfad8
26 changed files with 294 additions and 297 deletions

View File

@@ -60,15 +60,22 @@ import org.springframework.util.ErrorHandler;
@PropertySource("classpath:/hawkbit-dmf-defaults.properties")
public class AmqpConfiguration {
@Autowired
private AmqpProperties amqpProperties;
@Autowired
private AmqpDeadletterProperties amqpDeadletterProperties;
@Autowired
private ConnectionFactory rabbitConnectionFactory;
@Autowired(required = false)
private final AmqpProperties amqpProperties;
private final AmqpDeadletterProperties amqpDeadletterProperties;
private final ConnectionFactory rabbitConnectionFactory;
private ServiceMatcher serviceMatcher;
public AmqpConfiguration(final AmqpProperties amqpProperties, final AmqpDeadletterProperties amqpDeadletterProperties, final ConnectionFactory rabbitConnectionFactory) {
this.amqpProperties = amqpProperties;
this.amqpDeadletterProperties = amqpDeadletterProperties;
this.rabbitConnectionFactory = rabbitConnectionFactory;
}
@Autowired(required = false) // spring setter injection
public void setServiceMatcher(final ServiceMatcher serviceMatcher) {
this.serviceMatcher = serviceMatcher;
}
/**
* Creates a custom error handler bean.
*
@@ -262,8 +269,7 @@ public class AmqpConfiguration {
}
/**
* Create RabbitListenerContainerFactory bean if no listenerContainerFactory
* bean found
* Create RabbitListenerContainerFactory bean if no listenerContainerFactory bean found
*
* @return RabbitListenerContainerFactory bean
*/

View File

@@ -215,8 +215,7 @@ public class AmqpMessageHandlerService extends BaseAmqpService {
return StringUtils.hasLength(message.getMessageProperties().getCorrelationId());
}
// Exception squid:MethodCyclomaticComplexity - false positive, is a simple mapping
@SuppressWarnings("squid:MethodCyclomaticComplexity")
@SuppressWarnings("java:S2637" ) // java:S2637 - logAndThrowMessageError throws exception, i.e. doesn't return null
private static @NotNull Status mapStatus(final Message message, final DmfActionUpdateStatus actionUpdateStatus, final Action action) {
Status status = null;
switch (actionUpdateStatus.getActionStatus()) {
@@ -261,7 +260,7 @@ public class AmqpMessageHandlerService extends BaseAmqpService {
break;
}
default: {
logAndThrowMessageError(message, "Status for action does not exisit.");
logAndThrowMessageError(message, "Status for action does not exist.");
}
}

View File

@@ -53,12 +53,9 @@ class BaseAmqpServiceTest {
final DmfActionUpdateStatus actionUpdateStatus = createActionStatus();
when(rabbitTemplate.getMessageConverter()).thenReturn(new Jackson2JsonMessageConverter());
final Message message = rabbitTemplate.getMessageConverter().toMessage(actionUpdateStatus,
createJsonProperties());
final DmfActionUpdateStatus convertedActionUpdateStatus = baseAmqpService.convertMessage(message,
DmfActionUpdateStatus.class);
assertThat(convertedActionUpdateStatus).isEqualToComparingFieldByField(actionUpdateStatus);
final Message message = rabbitTemplate.getMessageConverter().toMessage(actionUpdateStatus, createJsonProperties());
final DmfActionUpdateStatus convertedActionUpdateStatus = baseAmqpService.convertMessage(message, DmfActionUpdateStatus.class);
assertThat(convertedActionUpdateStatus).usingRecursiveComparison().isEqualTo(actionUpdateStatus);
}
@Test

View File

@@ -398,15 +398,14 @@ abstract class AbstractAmqpServiceIntegrationTest extends AbstractAmqpIntegratio
}
@Step
protected DistributionSet createTargetAndDistributionSetAndAssign(final String controllerId,
final Action.ActionType actionType) {
protected DistributionSet createTargetAndDistributionSetAndAssign(final String controllerId, final Action.ActionType actionType) {
registerAndAssertTargetWithExistingTenant(controllerId);
final DistributionSet distributionSet = testdataFactory.createDistributionSet(UUID.randomUUID().toString());
testdataFactory.addSoftwareModuleMetadata(distributionSet);
final DistributionSet distributionSetLocal = testdataFactory.createDistributionSet(UUID.randomUUID().toString());
testdataFactory.addSoftwareModuleMetadata(distributionSetLocal);
assignDistributionSet(distributionSet.getId(), controllerId, actionType);
return distributionSet;
assignDistributionSet(distributionSetLocal.getId(), controllerId, actionType);
return distributionSetLocal;
}
protected void assertSoftwareModules(final Set<SoftwareModule> expectedSoftwareModules,

View File

@@ -40,6 +40,7 @@ import org.springframework.test.context.ContextConfiguration;
@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
public abstract class AbstractAmqpIntegrationTest extends AbstractIntegrationTest {
private static final Duration TIMEOUT = Duration.ofSeconds(5);