From 408ad95a3cfdfedc10633bb4b18ae326764c4ac4 Mon Sep 17 00:00:00 2001 From: Sascha Doemer Date: Fri, 15 Dec 2023 13:24:11 +0100 Subject: [PATCH 1/6] Refactor telemetry onboarding response's formatting Formatted the telemetry platform and platform-removed onboarding responses data. The response's payloads are now presented in a more structured, neatly indented JSON format for better readability and clarity. --- .../telemetry-platform-deactivated.json | 16 +++++++++++++++- .../telemetry-platform-removed.json | 16 +++++++++++++++- .../onboarding-responses/telemetry-platform.json | 16 +++++++++++++++- 3 files changed, 45 insertions(+), 3 deletions(-) diff --git a/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform-deactivated.json b/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform-deactivated.json index ef7d1e3b..97bb27f5 100644 --- a/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform-deactivated.json +++ b/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform-deactivated.json @@ -1 +1,15 @@ -{"deviceAlternateId":"7b77dd4d-3782-4d14-8087-5f3026950427","capabilityAlternateId":"3035ec70-dca1-4d71-a000-e79eb5891f81","sensorAlternateId":"4c1041ec-787f-44bd-ac11-603746e1191d","connectionCriteria":{"gatewayId":"3","measures":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/7b77dd4d-3782-4d14-8087-5f3026950427","commands":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/7b77dd4d-3782-4d14-8087-5f3026950427"},"authentication":{"type":"P12","secret":"xxdGPP#a9Tx?a67R3GtuTMc6Z13JaWR#?5cO","certificate":"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"}} \ No newline at end of file +{ + "deviceAlternateId": "7b77dd4d-3782-4d14-8087-5f3026950427", + "capabilityAlternateId": "3035ec70-dca1-4d71-a000-e79eb5891f81", + "sensorAlternateId": "4c1041ec-787f-44bd-ac11-603746e1191d", + "connectionCriteria": { + "gatewayId": "3", + "measures": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/7b77dd4d-3782-4d14-8087-5f3026950427", + "commands": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/7b77dd4d-3782-4d14-8087-5f3026950427" + }, + "authentication": { + "type": "P12", + "secret": "xxdGPP#a9Tx?a67R3GtuTMc6Z13JaWR#?5cO", + "certificate": "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" + } +} \ No newline at end of file diff --git a/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform-removed.json b/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform-removed.json index 60b436c3..07eed543 100644 --- a/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform-removed.json +++ b/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform-removed.json @@ -1 +1,15 @@ -{"deviceAlternateId":"8fd61af3-3247-4abb-a9bd-e871a1cea4e7","capabilityAlternateId":"3035ec70-dca1-4d71-a000-e79eb5891f81","sensorAlternateId":"6a3220a9-daf6-4457-812c-7c90aae7b683","connectionCriteria":{"gatewayId":"3","measures":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/8fd61af3-3247-4abb-a9bd-e871a1cea4e7","commands":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/8fd61af3-3247-4abb-a9bd-e871a1cea4e7"},"authentication":{"type":"P12","secret":"e76r1WIMDPmm3Rx4#bMLS!YNRzTAR1nGX1lv","certificate":"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"}} \ No newline at end of file +{ + "deviceAlternateId": "8fd61af3-3247-4abb-a9bd-e871a1cea4e7", + "capabilityAlternateId": "3035ec70-dca1-4d71-a000-e79eb5891f81", + "sensorAlternateId": "6a3220a9-daf6-4457-812c-7c90aae7b683", + "connectionCriteria": { + "gatewayId": "3", + "measures": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/8fd61af3-3247-4abb-a9bd-e871a1cea4e7", + "commands": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/8fd61af3-3247-4abb-a9bd-e871a1cea4e7" + }, + "authentication": { + "type": "P12", + "secret": "e76r1WIMDPmm3Rx4#bMLS!YNRzTAR1nGX1lv", + "certificate": "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" + } +} \ No newline at end of file diff --git a/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform.json b/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform.json index 1f1d0a2d..78066eb8 100644 --- a/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform.json +++ b/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform.json @@ -1 +1,15 @@ -{"deviceAlternateId":"a783ce19-79c6-4e50-9a9a-4f54e376844b","capabilityAlternateId":"3035ec70-dca1-4d71-a000-e79eb5891f81","sensorAlternateId":"2a7828f4-7ad2-40df-a942-274b7a96c508","connectionCriteria":{"gatewayId":"3","measures":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/a783ce19-79c6-4e50-9a9a-4f54e376844b","commands":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/a783ce19-79c6-4e50-9a9a-4f54e376844b"},"authentication":{"type":"P12","secret":"DyPedBmnf!#DtierUhCwAX43JbWsbnKWD26M","certificate":"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"}} \ No newline at end of file +{ + "deviceAlternateId": "a783ce19-79c6-4e50-9a9a-4f54e376844b", + "capabilityAlternateId": "3035ec70-dca1-4d71-a000-e79eb5891f81", + "sensorAlternateId": "2a7828f4-7ad2-40df-a942-274b7a96c508", + "connectionCriteria": { + "gatewayId": "3", + "measures": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/a783ce19-79c6-4e50-9a9a-4f54e376844b", + "commands": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/a783ce19-79c6-4e50-9a9a-4f54e376844b" + }, + "authentication": { + "type": "P12", + "secret": "DyPedBmnf!#DtierUhCwAX43JbWsbnKWD26M", + "certificate": "MIACAQMwgAYJKoZIhvcNAQcBoIAkgASCBAAwgDCABgkqhkiG9w0BBwGggCSABIIEADCCBRowggUWBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQI4locMobm5RQCAgfQBIIEyN9t2JuMREhsakYC8FDXjBrZy+Pb3TkeRiGp3YDcfAG3A34r6inJ0mWsTxsWYTiK+V/f0gDjV5o2J2oC+NT1S23gUB4+oWpFI6wIFnN14bbG7k3IfQAjCFD6aV9ko/rInvdxXPwgB6iIXNssGqDGrAjQnJOpLPtwluNl/rFQiuvMrbrTwT4oT33GI/FlwCnmdvt+TgfvVLwhYTiv04Bkp+i5WaGuTfPDUsZGaYHJOjCeOGkHbizLJsxkB4jrTQkY4SibwWOJD7Z1S3zmA9iLWO+GUdc8TH7EqjTaSyU5FE8Tj7IjokQ/XqqBfrFH50UEaT0xkXs4WZTyck0Efb+vLKllznFMhU743fv1fN1ptughNuPhUEjLqKg3yWp98n1J8oT6KCktEY2eOzNgT+oXKz+I9avHjdJeNV/VpQqhQ0rI2mctwjkC6xRy+fONRtMouzlN8h84c/roeKM+ac8iZ0lyjk66fQQ9/znzMv3sdWZoWq+/ruSuks9bOsrjZLmvKV8cT3rYZ26pCbmOLV5wK+Wz9tCKPKkQc6iJknKMJbIgvelL9e8iWttjnAO96w8h0ZxBDXf8qVVry5/02tWLjCyEpn0+Jkpyk65313ihsgcMJRPvrNvfPsY0g9jCRmmk+Sm38+UkRnT9UgDZMFH9SZYtzyh+SpMR6seNzE5XjCi5RhkOWl/y9PjD3SMIO09HffqpxFIUEabHH5ZKSgyyf+/Ax2PDNmedj4/swCdwxBVOfX7qsV1w3wgTZK3FMofRNRCDmRRLG1nTiUOEbgoeqf5BOTea0P9IRs9Oc8t1zG3bSZqzQ5E8P+KOZFI6TfV9f1ukG+mIbkIgLnFg4bkOmwGL+MwMZEVdcJSSu48F4G9ZpVnJsLEsnUxkvYyAKhPt1QWJen2b7YvzDMgGM3XmJVJ7OezpaTvv6V+HAQEivR9YuwX9AW0oI4uLHCBbj1UnaOqMupthz9M+MbtajI3mKKrW6Ph2qFQmbLszgkii+cvbyUDWszfj8mz9+Xd0yBVP6CaK/+bKYH1d/RHCvUyXODWI53KxPW+jbZJxetHRjT4/8tYW+/1xfApqsdETFmWcmqbXdEkdNyePMJyTc8/Ji1t0IAwlc6D7uyqCX9fvlYhdNIp/n3CHcDI3qfqn6RvmPMKtiRj1h30dNXzquWyES2+psAiV7xGU9izXhhYQ9Z0ePIyVo+bakmWG55qz6LMrsmB3G4hIxK65Z9yCbJLlcTgIIO4n5Li0pbPkBIIEAINANH/ols9N5KfUNLMqXzT8qkxaLYEjBIIBHqkXjrLOiQcNuPwluUiU+KYsONKQkAalz1n1flaKtosBdM1hUhu8ym/Q2jUDx1tfKlAhPWLmtz1Afde5i1VKbPA0YPDLTzHq81gQylxgV2PXw25TLptz4cqEFUDdsy8gx8Zul6nr3gBeNsJ0cgCadzr1uPHOADCsYhkP2XUMdEoWL0309dzxjne2zmgUsrK2OM8ktxy9x+4sJWl5QFL58HfRwS0gfZ8OD+hnRnwLdyCmyyv74UxxVmdxDOmgiwaaCZPoP569EDL8qAOv0RM8O2EpRi0Jh7TpnU5cg/ZwselSEaplH6LKxn1hDFx5bu1CPhxbeNEpHBJjUlTUvEM5bEznl/z9hOcDMRUwEwYJKoZIhvcNAQkVMQYEBAEAAAAAAAAAAAAwgAYJKoZIhvcNAQcGoIAwgAIBADCABgkqhkiG9w0BBwEwHAYKKoZIhvcNAQwBBjAOBAgRuJ+9qg7+uwICB9CggASCBcgM3UCtoNOyk3Sj510o7SVuohCZx65cmGXv82WL2DCTV/BnnNn1sIG05vPqN+vm31j03mF/ZBX5CmzGxZnZZMJHcGXx9kWOagjUggi/nWxy+OtUQ0rjiX76axsoAoc73OH/OOIdxp7hZKMFlllmU0qoTlKm0CJSCrOCYLVdkz2dK5hAtqtL3u0ckFi635cygVBpwYVQ3eKsruMwpJORWYSHcb+uGqCBogra5dM/Xcdxq8rWTgQDJO/HJsluMSNwj0tnOTGEvgsISt+kx6jkeMYKCqKb1hDZSxT4pELgnB0NjRQHOIuu8FEOEhdYZjcI68z62uUUKz3YuZmdc8y3i2z12d8I2xYSrol+xaiezgIYapowJMMrdDMHSC3vh5aOFUbxz/s5xMHR0WJg9WZzOb2z5raIZPlcetILpZB2hfxZvBgGrS24vwaMaq4iiqXxDZzZOOWATF9vngPgKcqqClWe17V1LbtYc0Xv+8Rb2WS3PFCW3ejwvqeCdHR3sSb4Sv8eDr/+j7rv+lsks8fz+YWjx1D0hBL7YY9hd+rwP8pc1hyYoUa/tPbjpXQ+NBu9JCPRVctU/sdwKK1XcSK3ar0GQcdTvmc+4jsjLAfU5iKDmV08Z2Ez9qEnWpCRJZuLTVWZ1507tGuSmJBDdDwrqxp81K7vgn7nimeT9jwMXm7Z//clzjWBNLmLHKgBViEyINsC5icdbpUhcrkRv5hZunqj7yaXanbL4DGo32b3OWAQW6BMN2RdaqpLmnIop8GOcsALxMuW0cvR7Gz3s9nmMD2HDuWgbQfd6ikTXsngJLfEx7EAG4j/vYcAZqImV+ToV4XghNBXOBIUKYqGdD0EggNYeVhPPkyZ+OxSdrM7yj3nUdYQ0ZXdLbS2TFO6LKBTPfYkDXEytjvrbjNKvCR8tRjRO9tSJHt1hnZ7EzF645lb+PdQk4Q/8TQlAKRRbBc8QrxOlMcAEKqdH1zhKrg3E9mXsXDvqnH5dnnDvtdHHhYFsPrD2mmtEIyRakDYgtCXfseg3OXoXD2rxjBYXnYt3hDdsPu5N3cSmeUk/Yp4ZOqoJE3SR0mqxFYxaDY0AGiCRqkT6YeYuGYc+xomhJrygUOOlmq2jU2WDG9QRX41CatTI5ZVTEt1NR8mGQUuPkXjXfKsc2xA+GhxPvDCkQ1suJbBQus6aoscWsdT4m6vQhwPCtWbY1gQ75+C6vLeqazdRC0J6ws+m4D9xi3cDOUey8MdGidkVPo1Cxuj934Tzbtg3Bgu6RWpZSErYO7jJpxCR/Zf9X9UZcz3NjWCyygwLdeHYtOZN+PhACywEkckmlGcIAACvbFrlcnpTEl+2HY+ygHv71VNpx6qMZomcFcZT0vWW1G47BYQieLL06MHtB/BtVRYOYQ1/Kq5EvqpM/iKg9A6ahclfn3loHw1z087vzv9/RA0EevGpMfi6Yf8AxaIeJdB3Zn9b2JHDb+MB3TajsprYZdJJnxtq8M0RNhZz8zvxZDW93ttULi7joYBuT+l/ZVw0Ny5igfJCrXVF+dYzZgVGPZ+eJH1haTbqD2+0Vdzl05YmP20kG4QpqqGmiZaMott+0dLp0vAciK2F5+EX1VgbG9jnUTIQl4yX9vDovfdx4deuIS8AvvMpxSfpszno9emEMEx0Ns1+6T3Eqa5lu7EithwazIDBqPeNhof7J5LHty9fcEUHf0fD32JMDewGGl6uQm/eflTJ3gMjuWsMAsAGP/dYdGiVfPinSCyQj9hTtFM8W5NZe+t0ixr447enNDslCoAcaUYU9tfaRDdnE9bdPeasjL8v4p9plqyT6Rr/jSL1eWWxF2rpVH8fXz/er0lcMo2hBTa/1PIUUNZcnaFqOulMgqY/MzeD2RK1B1f+79lc1eO169wybzeZ2/isYQkFAYcmawhtlyqNH15r5c0foSwtiUF8zE8QOiZyxKSf9pVcK1VqWSNgFVtqcG1HlTiBVQWjOkTEJifcAAAAAAAAAAAAAAAAAAAAAAAADAxMCEwCQYFKw4DAhoFAAQUH6B0AkfyOvF2uV8fGQ+JWvrQfmwECFzlcHn5c9pUAgIH0AAA" + } +} \ No newline at end of file From 5eb5606fe600b4541a18b4d101e2ec744a826a56 Mon Sep 17 00:00:00 2001 From: Sascha Doemer Date: Fri, 15 Dec 2023 13:24:42 +0100 Subject: [PATCH 2/6] Improve README documentation formatting Adjusted the formatting of the README documentation file to enhance readability and content clarity. The modifications include structuring sentences into separate lines, delivering concise and clear information more efficiently. --- README.adoc | 54 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/README.adoc b/README.adoc index 3205b906..4f7d9293 100644 --- a/README.adoc +++ b/README.adoc @@ -1,4 +1,3 @@ - = agrirouter-sdk-java :imagesdir: assets/images :toc: @@ -7,28 +6,33 @@ [abstract] == Abstract + image::agrirouter.svg[agrirouter] -The agrirouter is a universal data exchange platform for farmers and agricultural contractors that makes it possible to connect machinery and agricultural software, regardless of vendor or manufacturer. Agrirouter does not save data; it transfers data. -As a universal data exchange platform, agrirouter fills a gap on the way to Farming 4.0. Its underlying concept unites cross-vendor and discrimination-free data transfer. You retain full control over your data. Even data exchange with service providers (e.g. agricultural contractors) and other partners is uncomplicated: Data are very rapidly transferred via the online connection, and if you wish, is intelligently connected to other datasets. +The agrirouter is a universal data exchange platform for farmers and agricultural contractors that makes it possible to connect machinery and agricultural software, regardless of vendor or manufacturer. +Agrirouter does not save data; it transfers data. +As a universal data exchange platform, agrirouter fills a gap on the way to Farming 4.0. Its underlying concept unites cross-vendor and discrimination-free data transfer. +You retain full control over your data. +Even data exchange with service providers (e.g. agricultural contractors) and other partners is uncomplicated: Data are very rapidly transferred via the online connection, and if you wish, is intelligently connected to other datasets. == Supporters & Maintainers + image::lmis.svg[agrirouter] -The LMIS AG is a recognised german IT service company, certified according to DIN EN ISO 9001:2015 and based in -Osnabrück, Berlin, Friedland and Wuppertal. Our core competence is the individual development, optimization and support -of IT solutions. We also provide professional IT consulting services and training courses. We have been supporting -the whole project during the development in the field of test management and are currently responsible for the development -support of the platform. +The LMIS AG is a recognised german IT service company, certified according to DIN EN ISO 9001:2015 and based in Osnabrück, Berlin, Friedland and Wuppertal. +Our core competence is the individual development, optimization and support of IT solutions. +We also provide professional IT consulting services and training courses. +We have been supporting the whole project during the development in the field of test management and are currently responsible for the development support of the platform. -We are active maintainers of the SDK and are using the SDK for internal testing as well. Therefore, we have a -high interest in a stable and usable interface to connect to the agrirouter. +We are active maintainers of the SDK and are using the SDK for internal testing as well. +Therefore, we have a high interest in a stable and usable interface to connect to the agrirouter. Feel free to get in touch by visiting our https://www.lmis.de[website] or contacting us via GitHub. == The current project you're looking at -This project contains the SDK for the communication with the agrirouter. Everything you need for the onboarding process, secure communication, and much more. +This project contains the SDK for the communication with the agrirouter. +Everything you need for the onboarding process, secure communication, and much more. == Releases @@ -36,11 +40,13 @@ The release workflow follows the https://docs.microsoft.com/en-us/azure/devops/r === Update from 1.4.x to 2.x -The update for the new release includes some breaking changes. To have a rough overview of what has to be done to have the new features from 2.x in your application, please see the following migration / update guide when updating. +The update for the new release includes some breaking changes. +To have a rough overview of what has to be done to have the new features from 2.x in your application, please see the following migration / update guide when updating. ==== Update the Maven dependencies -The first step is to update the coordinates of the dependencies. With the release 2.x the coordinates changed to a new name and a new version. +The first step is to update the coordinates of the dependencies. +With the release 2.x the coordinates changed to a new name and a new version. [xml] ---- @@ -63,7 +69,8 @@ The first step is to update the coordinates of the dependencies. With the releas ==== Update package declarations for services and internal classes -Since the package declaration was updated along with the coordinates, there will be compiler errors that should be fixed. Some classes have moved to a more meaningful package. +Since the package declaration was updated along with the coordinates, there will be compiler errors that should be fixed. +Some classes have moved to a more meaningful package. image::migration_1-4_to_2-0/compiler-errors-before.png[Compiler errors before the migration.] @@ -73,7 +80,9 @@ image::migration_1-4_to_2-0/package-declaration-after-refactoring.png[Package de ==== Update the usage of the enums for message types -To have a better understanding about system message types and content message types, the declaration for the different types has changed. There are two new classes, the `ContentMessageType` for content messages and the `SystemMessageType` for system messages. The former technical message type will cause a compiler error, since it was replaced. +To have a better understanding about system message types and content message types, the declaration for the different types has changed. +There are two new classes, the `ContentMessageType` for content messages and the `SystemMessageType` for system messages. +The former technical message type will cause a compiler error, since it was replaced. image::migration_1-4_to_2-0/former-technical-message-types.png[Former message types.] @@ -108,7 +117,8 @@ The `impl` module contains the implementation of the given SDK defined by the `a === `convenience` Module -The `convenience` module contains common implementations for different problems which are not located within the SDK. Those could be capability setting, MQTT client creation or other common problems that are normally not part of the SDK. +The `convenience` module contains common implementations for different problems which are not located within the SDK. +Those could be capability setting, MQTT client creation or other common problems that are normally not part of the SDK. === `test` Module @@ -116,9 +126,11 @@ The `test` module contains integration tests not only for the SDK, but also for === Integration -If you want to add a dependency feel free to fetch the latest release from Github Packages. Please find the documentation right https://help.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-apache-maven-for-use-with-github-packages[here]. +If you want to add a dependency feel free to fetch the latest release from Github Packages. +Please find the documentation right https://help.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-apache-maven-for-use-with-github-packages[here]. -If you want to add the packages, you need to define the settings within your `pom` or the `settings.xml` otherwise. If you need an example, you can either have a look at the `ci/settings.xml` for general purpose or check out the snippet below for a custom `settings.xml`. +If you want to add the packages, you need to define the settings within your `pom` or the `settings.xml` otherwise. +If you need an example, you can either have a look at the `ci/settings.xml` for general purpose or check out the snippet below for a custom `settings.xml`. [xml] ---- @@ -154,11 +166,13 @@ If you want to add the packages, you need to define the settings within your `po ---- -You can use this `settings.xml` and include it during the build process in a specific way. Just use `mvn clean verify -s your_path_to_the_file/settings.xml` to use the settings if they are set in a local file. +You can use this `settings.xml` and include it during the build process in a specific way. +Just use `mvn clean verify -s your_path_to_the_file/settings.xml` to use the settings if they are set in a local file. === Compatibility -We are supporting JDK 8 and later, releases are build using a JDK 8 to have compatibility for most users. If you need to build the current development branch, please feel free build the branch on yourself and install it to your local repository. +We are supporting JDK 8 and later, releases are build using a JDK 8 to have compatibility for most users. +If you need to build the current development branch, please feel free build the branch on yourself and install it to your local repository. == Certificates for the communication From b13cea26cdf903bb05828b05878286afb2297ad7 Mon Sep 17 00:00:00 2001 From: Sascha Doemer Date: Fri, 15 Dec 2023 13:27:30 +0100 Subject: [PATCH 3/6] Improve file formatting and optimize SVGs The commit updates the formatting of several files for improved readability and also optimizes SVG graphics for faster load times. It primarily involves adding appropriate line breaks and spaces for clarity and enhancing readability in bug report template and the code of conduct. Optimization of SVGs results in more efficient loading and display of images. --- .github/ISSUE_TEMPLATE/bug_report.md | 17 +++++--- CODE_OF_CONDUCT.md | 29 ++++++++++--- assets/images/agrirouter.svg | 32 +++++++------- assets/images/lmis.svg | 64 +++++++++++++++------------- 4 files changed, 83 insertions(+), 59 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index b7353733..d3a80d7e 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -9,6 +9,7 @@ A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: + 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' @@ -21,15 +22,17 @@ A clear and concise description of what you expected to happen. If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] + +- OS: [e.g. iOS] +- Browser [e.g. chrome, safari] +- Version [e.g. 22] **Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] + +- Device: [e.g. iPhone6] +- OS: [e.g. iOS8.1] +- Browser [e.g. stock browser, safari] +- Version [e.g. 22] **Additional context** Add any other context about the problem here. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 94c563b0..54a5d754 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -2,7 +2,10 @@ ## Our Pledge -In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making +participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, +disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, +religion, or sexual identity and orientation. ## Our Standards @@ -24,23 +27,35 @@ Examples of unacceptable behavior by participants include: ## Our Responsibilities -Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take +appropriate and fair corrective action in response to any instances of unacceptable behavior. -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, +issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any +contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope -This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the +project or its community. Examples of representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed representative at an online or offline +event. Representation of a project may be further defined and clarified by project maintainers. ## Enforcement -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at info@dke-data.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at +info@dke-data.com. The project team will review and investigate all complaints, and will respond in a way that it deems +appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter +of an incident. Further details of specific enforcement policies may be posted separately. -Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent +repercussions as determined by other members of the project's leadership. ## Attribution -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available +at [http://contributor-covenant.org/version/1/4][version] [homepage]: http://contributor-covenant.org + [version]: http://contributor-covenant.org/version/1/4/ diff --git a/assets/images/agrirouter.svg b/assets/images/agrirouter.svg index 34f2a095..55e272ed 100755 --- a/assets/images/agrirouter.svg +++ b/assets/images/agrirouter.svg @@ -6,22 +6,24 @@ .st0{fill:#71B790;} .st1{fill:#202A44;} - + - - - + + - + - + - - - - + - - - - - diff --git a/assets/images/lmis.svg b/assets/images/lmis.svg index 9af0a9ea..83c92004 100644 --- a/assets/images/lmis.svg +++ b/assets/images/lmis.svg @@ -9,8 +9,8 @@ c-0.299,3.482-0.599,6.996-0.924,10.535l-5.048,45.894h-40.846l19.772-115.86h42.981l8.241,28.663 c0.243,0.891,0.65,2.242,1.188,4.023c3.484,12.075,5.62,22.019,6.4,29.832h0.705c0.649-4.895,1.592-10.132,2.865-15.677 c1.266-5.537,2.941-11.75,5.049-18.664l8.648-28.176h42.873l18.37,115.86H232.95L232.95,143.23z"/> - - + - - + - - - + - - - + + - - - - - - - - + + + - - - - - - + + - + - + - + - + - + - + From 4a9e87ffe52713ec40eb19483be6c1645f72e0f0 Mon Sep 17 00:00:00 2001 From: Sascha Doemer Date: Fri, 15 Dec 2023 13:27:59 +0100 Subject: [PATCH 4/6] Change error code type from String to Int Data types of 'code' fields in RevokingError and OnboardingError classes have been changed from strings to integers. This will streamline error handling and avoid potential type conversion errors. The default error code for unknown errors has also been updated from "UNKNOWN_ERROR" to -1. --- .../dke/data/agrirouter/api/dto/onboard/OnboardingError.kt | 6 +++--- .../com/dke/data/agrirouter/api/dto/revoke/RevokingError.kt | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/agrirouter-sdk-java-api/src/main/kotlin/com/dke/data/agrirouter/api/dto/onboard/OnboardingError.kt b/agrirouter-sdk-java-api/src/main/kotlin/com/dke/data/agrirouter/api/dto/onboard/OnboardingError.kt index 6cba65e9..f0aa1c7c 100644 --- a/agrirouter-sdk-java-api/src/main/kotlin/com/dke/data/agrirouter/api/dto/onboard/OnboardingError.kt +++ b/agrirouter-sdk-java-api/src/main/kotlin/com/dke/data/agrirouter/api/dto/onboard/OnboardingError.kt @@ -6,12 +6,12 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties class OnboardingError { class Error { class SubError { - var code: String = "" + var code: Int = 0 lateinit var message: String lateinit var target: String } - var code: String = "" + var code: Int = 0 lateinit var message: String lateinit var target: String lateinit var details: Array @@ -24,7 +24,7 @@ class OnboardingError { fun unknownError(error: String): OnboardingError { val onboardingError = OnboardingError() onboardingError.error = Error() - onboardingError.error.code = "UNKNOWN_ERROR" + onboardingError.error.code = -1 onboardingError.error.message = "Unknown error occurred, the original error message is: $error" onboardingError.error.target = "Unknown target" onboardingError.error.details = arrayOf() diff --git a/agrirouter-sdk-java-api/src/main/kotlin/com/dke/data/agrirouter/api/dto/revoke/RevokingError.kt b/agrirouter-sdk-java-api/src/main/kotlin/com/dke/data/agrirouter/api/dto/revoke/RevokingError.kt index d3cd715f..50568b2b 100644 --- a/agrirouter-sdk-java-api/src/main/kotlin/com/dke/data/agrirouter/api/dto/revoke/RevokingError.kt +++ b/agrirouter-sdk-java-api/src/main/kotlin/com/dke/data/agrirouter/api/dto/revoke/RevokingError.kt @@ -6,12 +6,12 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties class RevokingError { class Error { class SubError { - var code: String = "" + var code: Int = 0 lateinit var message: String lateinit var target: String } - var code: String = "" + var code: Int = 0 lateinit var message: String lateinit var target: String lateinit var details: Array @@ -24,7 +24,7 @@ class RevokingError { fun unknownError(error: String): RevokingError { val revokingError = RevokingError() revokingError.error = Error() - revokingError.error.code = "UNKNOWN_ERROR" + revokingError.error.code = -1 revokingError.error.message = "Unknown error occurred, the original error message is: $error" revokingError.error.target = "Unknown target" revokingError.error.details = arrayOf() From fdb62608096adb93661f03cf1f399b42292a3b12 Mon Sep 17 00:00:00 2001 From: Sascha Doemer Date: Fri, 15 Dec 2023 13:28:13 +0100 Subject: [PATCH 5/6] Update test classes, disable tests needing investigation Disabled two tests in the 'SendChunkedMessageTest' and 'SendChunkedMessageForSingleChunkTest' classes needing further investigation and attributed them to issues #197 and #198 respectively. Created 'SendChunkedMessageForSingleChunkTest' file. Changed the error code assertion from string to integer in 'OnboardingWithErrorMessageTest'. --- .../SendChunkedMessageForSingleChunkTest.java | 111 ++++++++++++++++++ .../rest/SendChunkedMessageTest.java | 4 +- .../OnboardingWithErrorMessageTest.java | 2 +- 3 files changed, 114 insertions(+), 3 deletions(-) create mode 100644 agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SendChunkedMessageForSingleChunkTest.java diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SendChunkedMessageForSingleChunkTest.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SendChunkedMessageForSingleChunkTest.java new file mode 100644 index 00000000..4343c1b7 --- /dev/null +++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SendChunkedMessageForSingleChunkTest.java @@ -0,0 +1,111 @@ +package com.dke.data.agrirouter.test.messaging.rest; + +import agrirouter.request.Request; +import com.dke.data.agrirouter.api.cancellation.DefaultCancellationToken; +import com.dke.data.agrirouter.api.dto.encoding.DecodeMessageResponse; +import com.dke.data.agrirouter.api.dto.messaging.FetchMessageResponse; +import com.dke.data.agrirouter.api.dto.onboard.OnboardingResponse; +import com.dke.data.agrirouter.api.enums.ContentMessageType; +import com.dke.data.agrirouter.api.enums.SystemMessageType; +import com.dke.data.agrirouter.api.service.messaging.encoding.DecodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.FetchMessageService; +import com.dke.data.agrirouter.api.service.parameters.MessageHeaderParameters; +import com.dke.data.agrirouter.api.service.parameters.MessageParameterTuple; +import com.dke.data.agrirouter.api.service.parameters.PayloadParameters; +import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; +import com.dke.data.agrirouter.impl.common.MessageIdService; +import com.dke.data.agrirouter.impl.messaging.SequenceNumberService; +import com.dke.data.agrirouter.impl.messaging.encoding.DecodeMessageServiceImpl; +import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; +import com.dke.data.agrirouter.impl.messaging.rest.FetchMessageServiceImpl; +import com.dke.data.agrirouter.impl.messaging.rest.SendMessageServiceImpl; +import com.dke.data.agrirouter.test.AbstractIntegrationTest; +import com.dke.data.agrirouter.test.Assertions; +import com.dke.data.agrirouter.test.OnboardingResponseRepository; +import com.dke.data.agrirouter.test.helper.ContentReader; +import com.google.protobuf.ByteString; +import org.apache.http.HttpStatus; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.util.*; +import java.util.concurrent.atomic.AtomicReference; + +/** + * Test case to show the behavior for chunked message sending. + */ +class SendChunkedMessageForSingleChunkTest extends AbstractIntegrationTest { + + private static final int MAX_CHUNK_SIZE = 1024000; + + @Test + @Disabled("Issue #198 | Needs investigation, not running any longer.") + void + givenSmallContentMessageWhenSendingTheMessageToTheAgrirouterTheSdkShouldHelpToSendTheFileInOneChunk() + throws Throwable { + + final EncodeMessageService encodeMessageService = new EncodeMessageServiceImpl(); + final SendMessageServiceImpl sendMessageService = new SendMessageServiceImpl(); + final OnboardingResponse onboardingResponse = + OnboardingResponseRepository.read(OnboardingResponseRepository.Identifier.FARMING_SOFTWARE); + + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + messageHeaderParameters.setTechnicalMessageType(ContentMessageType.ISO_11783_TASKDATA_ZIP); + messageHeaderParameters.setApplicationMessageId(MessageIdService.generateMessageId()); + messageHeaderParameters.setApplicationMessageSeqNo( + SequenceNumberService.generateSequenceNumberForEndpoint(onboardingResponse)); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + messageHeaderParameters.setRecipients( + Collections.singletonList("797b7f4b-79ec-4247-9fba-e726a55c4c7f")); + + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setValue( + ByteString.copyFrom(ContentReader.readRawData(ContentReader.Identifier.SMALL_TASK_DATA))); + payloadParameters.setTypeUrl(SystemMessageType.EMPTY.getKey()); + + List tuples = + encodeMessageService.chunkAndBase64EncodeEachChunk( + messageHeaderParameters, payloadParameters, onboardingResponse); + + tuples.forEach( + messageParameterTuple -> + Assertions.assertTrue( + Objects.requireNonNull(messageParameterTuple.getPayloadParameters().getValue()) + .toStringUtf8() + .length() + <= MAX_CHUNK_SIZE)); + + List encodedMessages = encodeMessageService.encode(tuples); + + SendMessageParameters sendMessageParameters = new SendMessageParameters(); + sendMessageParameters.setEncodedMessages(encodedMessages); + sendMessageParameters.setOnboardingResponse(onboardingResponse); + sendMessageService.send(sendMessageParameters); + + waitForTheAgrirouterToProcessMultipleMessages(); + + FetchMessageService fetchMessageService = new FetchMessageServiceImpl(); + Optional> fetchMessageResponses = + fetchMessageService.fetch( + onboardingResponse, + new DefaultCancellationToken(MAX_TRIES_BEFORE_FAILURE, DEFAULT_INTERVAL)); + + Assertions.assertTrue(fetchMessageResponses.isPresent()); + Assertions.assertEquals(1, fetchMessageResponses.get().size()); + + DecodeMessageService decodeMessageService = new DecodeMessageServiceImpl(); + AtomicReference decodeMessageResponse = new AtomicReference<>(); + fetchMessageResponses.get().stream() + .map(FetchMessageResponse::getCommand) + .forEach( + message -> { + Assertions.assertNotNull(message); + decodeMessageResponse.set(decodeMessageService.decode(message.getMessage())); + + Assertions.assertMatchesAny( + Arrays.asList(HttpStatus.SC_OK, HttpStatus.SC_CREATED, HttpStatus.SC_NO_CONTENT), + decodeMessageResponse.get().getResponseEnvelope().getResponseCode()); + }); + } +} diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SendChunkedMessageTest.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SendChunkedMessageTest.java index 012c9b16..f507d7d6 100644 --- a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SendChunkedMessageTest.java +++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SendChunkedMessageTest.java @@ -39,10 +39,10 @@ class SendChunkedMessageTest extends AbstractIntegrationTest { private static final int MAX_CHUNK_SIZE = 1024000; - @Disabled("Currently there is a mismatch between the chunks and the messages.") @Test + @Disabled("Issue #197 | Needs investigation, not running any longer.") void - givenLargeContentMessageWhenSendingTheMessageToTheAgrirouterTheSdkShouldHelpToSendTheFileInMultipleChunks() + givenLargeContentMessageWhenSendingTheMessageToTheAhrgrirouterTheSdkShouldHelpToSendTheFileInMultipleChunks() throws Throwable { final EncodeMessageService encodeMessageService = new EncodeMessageServiceImpl(); diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/onboarding/OnboardingWithErrorMessageTest.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/onboarding/OnboardingWithErrorMessageTest.java index 85b6ee95..a2e985cb 100644 --- a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/onboarding/OnboardingWithErrorMessageTest.java +++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/onboarding/OnboardingWithErrorMessageTest.java @@ -36,7 +36,7 @@ class OnboardingWithErrorMessageTest extends AbstractIntegrationTest { OnboardingException.class, () -> onboardingService.onboard(onboardingParameters)); Assertions.assertNotNull(onboardingException.getOnboardingError()); Assertions.assertNotNull(onboardingException.getOnboardingError().getError()); - Assertions.assertEquals("0401", onboardingException.getOnboardingError().getError().getCode()); + Assertions.assertEquals(401, onboardingException.getOnboardingError().getError().getCode()); Assertions.assertEquals( "Bearer not found.", onboardingException.getOnboardingError().getError().getMessage()); } From 9379bb70b2f75e349bcbcd897e24ba07439a57bf Mon Sep 17 00:00:00 2001 From: Sascha Doemer Date: Fri, 15 Dec 2023 13:28:21 +0100 Subject: [PATCH 6/6] Remove redundant encoding in EncodeMessageServiceImpl Removed use of StandardCharsets.UTF_8 in EncodeMessageServiceImpl as the payloads were already in byte format. Eliminating this redundant encoding to UTF_8 from the payload improves efficiency and mitigates potential errors due to unnecessary conversion scenarios. --- .../impl/messaging/encoding/EncodeMessageServiceImpl.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/encoding/EncodeMessageServiceImpl.java b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/encoding/EncodeMessageServiceImpl.java index 7fb36229..799b8c9a 100644 --- a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/encoding/EncodeMessageServiceImpl.java +++ b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/encoding/EncodeMessageServiceImpl.java @@ -19,7 +19,6 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -160,8 +159,7 @@ public List chunkAndBase64EncodeEachChunk( .encodeToString( payloadParameters .getValue() - .toStringUtf8() - .getBytes(StandardCharsets.UTF_8)))); + .toByteArray()))); return Collections.singletonList( new MessageParameterTuple(messageHeaderParameters, payload)); }