From 908673c872d8c69e4efa4689976cb7e91c79a741 Mon Sep 17 00:00:00 2001 From: Sascha Doemer Date: Thu, 16 May 2024 10:44:28 +0200 Subject: [PATCH 1/3] Refactor SetCapabilityServiceImpl constructor and usages This commit removes the unnecessary environment dependency in SetCapabilityServiceImpl's constructor and adjusts all corresponding usages. This makes the SetCapabilityServiceImpl more loosely coupled, enhancing readability and making it easier to maintain. Removal of the parameter also simplifies its instantiation in tests and reduces potential issues related to varying environments. --- .../impl/messaging/rest/SetCapabilityServiceImpl.java | 7 ++----- .../agrirouter/test/fixture/CommunicationUnitFixture.java | 3 +-- .../test/messaging/rest/SetCapabilityServiceTest.java | 6 ++---- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java index 3deab657..38e8c471 100644 --- a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java +++ b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java @@ -1,25 +1,22 @@ package com.dke.data.agrirouter.impl.messaging.rest; -import com.dke.data.agrirouter.api.env.Environment; import com.dke.data.agrirouter.api.messaging.HttpAsyncMessageSendingResult; import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; import com.dke.data.agrirouter.api.service.messaging.http.SetCapabilityService; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.api.service.parameters.SetCapabilitiesParameters; -import com.dke.data.agrirouter.impl.EnvironmentalService; import com.dke.data.agrirouter.impl.messaging.MessageEncoder; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import java.util.Collections; -public class SetCapabilityServiceImpl extends EnvironmentalService +public class SetCapabilityServiceImpl implements SetCapabilityService, MessageSender, MessageEncoder, ResponseValidator { private final EncodeMessageService encodeMessageService; - public SetCapabilityServiceImpl(Environment environment) { - super(environment); + public SetCapabilityServiceImpl() { this.encodeMessageService = new EncodeMessageServiceImpl(); } diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/CommunicationUnitFixture.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/CommunicationUnitFixture.java index e9b2264d..39492310 100644 --- a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/CommunicationUnitFixture.java +++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/CommunicationUnitFixture.java @@ -62,8 +62,7 @@ void onboardCommunicationUnitAndSaveToFile() throws IOException { assertNotNull(onboardingResponse.getConnectionCriteria().getCommands()); OnboardingResponseRepository.save( OnboardingResponseRepository.Identifier.COMMUNICATION_UNIT, onboardingResponse); - final SetCapabilityServiceImpl setCapabilityService = new SetCapabilityServiceImpl(new QA() { - }); + final SetCapabilityServiceImpl setCapabilityService = new SetCapabilityServiceImpl(); final SetCapabilitiesParameters setCapabilitiesParameters = new SetCapabilitiesParameters(); setCapabilitiesParameters.setApplicationId(communicationUnit.getApplicationId()); setCapabilitiesParameters.setCertificationVersionId( diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetCapabilityServiceTest.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetCapabilityServiceTest.java index 8f5820f5..863f1fb9 100644 --- a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetCapabilityServiceTest.java +++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetCapabilityServiceTest.java @@ -32,8 +32,7 @@ class SetCapabilityServiceTest extends AbstractIntegrationTest { @Test void givenValidEndpointWhenSendingCapabilitiesTheCapabilityMessageShouldBeAccepted() throws Throwable { - SetCapabilityService setCapabilityService = new SetCapabilityServiceImpl(new QA() { - }); + SetCapabilityService setCapabilityService = new SetCapabilityServiceImpl(); var parameters = new SetCapabilitiesParameters(); parameters.setApplicationId(farmingSoftware.getApplicationId()); @@ -76,8 +75,7 @@ void givenValidEndpointWhenSendingCapabilitiesTheCapabilityMessageShouldBeAccept @Test void givenValidEndpointWhenSendingInvalidCapabilitiesTheCapabilityMessageShouldNotBeAccepted() throws Throwable { - SetCapabilityService setCapabilityService = new SetCapabilityServiceImpl(new QA() { - }); + SetCapabilityService setCapabilityService = new SetCapabilityServiceImpl(); var parameters = new SetCapabilitiesParameters(); parameters.setApplicationId(farmingSoftware.getApplicationId()); From c4096e71a6fdd6c3e1038841115c75f971ad429d Mon Sep 17 00:00:00 2001 From: Sascha Doemer Date: Thu, 16 May 2024 10:44:55 +0200 Subject: [PATCH 2/3] Remove unused import in SetCapabilityServiceTest The unused import, 'com.dke.data.agrirouter.api.env.QA', was removed from the class 'SetCapabilityServiceTest'. This cleanup improves the readability of the code and adheres to good coding practices. --- .../agrirouter/test/messaging/rest/SetCapabilityServiceTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetCapabilityServiceTest.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetCapabilityServiceTest.java index 863f1fb9..e0bea72f 100644 --- a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetCapabilityServiceTest.java +++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetCapabilityServiceTest.java @@ -4,7 +4,6 @@ import com.dke.data.agrirouter.api.cancellation.DefaultCancellationToken; import com.dke.data.agrirouter.api.enums.ContentMessageType; import com.dke.data.agrirouter.api.enums.SystemMessageType; -import com.dke.data.agrirouter.api.env.QA; import com.dke.data.agrirouter.api.service.messaging.encoding.DecodeMessageService; import com.dke.data.agrirouter.api.service.messaging.http.FetchMessageService; import com.dke.data.agrirouter.api.service.messaging.http.SetCapabilityService; From 75ecdd833cbff5ee103834cd07163c071f85e956 Mon Sep 17 00:00:00 2001 From: Sascha Doemer Date: Thu, 16 May 2024 13:32:08 +0200 Subject: [PATCH 3/3] Deprecate SetCapabilityServiceImpl constructor in SDK The SetCapabilityServiceImpl constructor that takes an Environment parameter has been deprecated. A warning message has been added to indicate that this constructor is deprecated, and it should not be used moving forward as it will be removed in a future release. This change aims to streamline the use of the SetCapabilityService requiring no environment parameters. --- .../rest/SetCapabilityServiceImpl.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java index 38e8c471..fc189e3c 100644 --- a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java +++ b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java @@ -1,5 +1,6 @@ package com.dke.data.agrirouter.impl.messaging.rest; +import com.dke.data.agrirouter.api.env.Environment; import com.dke.data.agrirouter.api.messaging.HttpAsyncMessageSendingResult; import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; import com.dke.data.agrirouter.api.service.messaging.http.SetCapabilityService; @@ -8,14 +9,32 @@ import com.dke.data.agrirouter.impl.messaging.MessageEncoder; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; import com.dke.data.agrirouter.impl.validation.ResponseValidator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.Collections; public class SetCapabilityServiceImpl implements SetCapabilityService, MessageSender, MessageEncoder, ResponseValidator { + private static final Logger LOGGER = LoggerFactory.getLogger(SetCapabilityServiceImpl.class); + private final EncodeMessageService encodeMessageService; + /** + * Implements the SetCapabilityService interface and provides methods for sending + * capability data to the agrirouter. + * + * @deprecated This class is deprecated since version 3.1.0 and will be removed in a future release. + * The environment parameter is no longer necessary to use the service. + * Please use the default constructor instead. + */ + @Deprecated(since = "3.1.0", forRemoval = true) + public SetCapabilityServiceImpl(Environment ignoredEnvironment) { + LOGGER.warn("This constructor is deprecated. The environment is not necessary to use the service. Within the next major release this constructor will be removed."); + this.encodeMessageService = new EncodeMessageServiceImpl(); + } + public SetCapabilityServiceImpl() { this.encodeMessageService = new EncodeMessageServiceImpl(); }