From 703247fd0e398daaaec3d41a02fee68028f0198b Mon Sep 17 00:00:00 2001
From: Ernst-Christoph Schrewe
Date: Fri, 25 Aug 2023 08:44:03 +0200
Subject: [PATCH 01/11] chore: added javadocs
---
.../edc/logic/service/EdcAdapterService.java | 15 ++-----
.../masterdata/domain/model/Material.java | 42 +++++++++++++++++++
.../masterdata/domain/model/Partner.java | 10 +++++
.../stock/domain/model/MaterialStock.java | 7 +++-
.../domain/model/PartnerProductStock.java | 6 +++
.../stock/domain/model/ProductStock.java | 5 +++
.../domain/model/ProductStockResponse.java | 15 -------
.../backend/stock/domain/model/Stock.java | 5 +++
8 files changed, 77 insertions(+), 28 deletions(-)
diff --git a/backend/src/main/java/org/eclipse/tractusx/puris/backend/common/edc/logic/service/EdcAdapterService.java b/backend/src/main/java/org/eclipse/tractusx/puris/backend/common/edc/logic/service/EdcAdapterService.java
index 5267cd00..4a20b07e 100644
--- a/backend/src/main/java/org/eclipse/tractusx/puris/backend/common/edc/logic/service/EdcAdapterService.java
+++ b/backend/src/main/java/org/eclipse/tractusx/puris/backend/common/edc/logic/service/EdcAdapterService.java
@@ -74,18 +74,9 @@ public class EdcAdapterService {
@Value("${server.port}")
private String serverPort;
- @Value("${edc.dataplane.public.port}")
- private String dataplanePort;
-
@Value("${minikube.ip}")
private String minikubeIp;
- @Value("${request.serverendpoint}")
- private String requestServerEndpointURL;
-
- @Value("${response.serverendpoint}")
- private String responseServerEndpointURL;
-
private ObjectMapper objectMapper;
@Autowired
@@ -255,7 +246,7 @@ public JsonNode getCatalogFilteredByAssetPropertyObjectFilter(String idsUrl, Map
/**
* Orders your own EDC Connector Controlplane to negotiate a contract with
* the owner of the given connector address for an asset (specified by the
- * assetId) under conditions as stated in the contract defintion with the
+ * assetId) under conditions as stated in the contract definition with the
* given contractDefinitionId
* @param connectorAddress
* @param contractDefinitionId
@@ -315,8 +306,8 @@ public String startTransfer(String transferId,
* Sends a request to the own EDC Connector Controlplane in order to receive
* the current status of the previously initiated transfer as specified by
* the parameter.
- * @param transferId
- * @return
+ * @param transferId the id of the transfer in question
+ * @return the response from your Controlplane
* @throws IOException
*/
public String getTransferState(String transferId) throws IOException {
diff --git a/backend/src/main/java/org/eclipse/tractusx/puris/backend/masterdata/domain/model/Material.java b/backend/src/main/java/org/eclipse/tractusx/puris/backend/masterdata/domain/model/Material.java
index c3a0462a..341a1334 100644
--- a/backend/src/main/java/org/eclipse/tractusx/puris/backend/masterdata/domain/model/Material.java
+++ b/backend/src/main/java/org/eclipse/tractusx/puris/backend/masterdata/domain/model/Material.java
@@ -33,6 +33,37 @@
import java.util.Objects;
import java.util.Set;
+/**
+ *
This class represents materials and products that are to be traded between
+ * partners that collaborate via the PURIS application.
+ *
Whether a material is a product or a "material", is determined by the point of
+ * view. If the owner of the current instance of a PURIS application is selling a
+ * certain product to customers, the product flag must be set to "true" and the business
+ * logic will treat this material as a product if the circumstances require a differentiation
+ * between products and materials.
+ *
If, on the other hand, the owner of the current instance of a PURIS application is buying
+ * a material from external partners, then the material-flag must be set to "true", in order to
+ * allow the business logic to handle this correctly.
+ *
This approach allows for flexibility, especially in cases when the the owner of the current
+ * instance of a PURIS application is a trader who is buying a certain good from one partner just
+ * to sell it immediately to another partner.
+ *
Each entity of this class is uniquely identified by the material number defined
+ * by the partner that runs an instance of the PURIS app.
+ *
A certain type of semiconductors is produced by partner A. He has labeled his
+ * product with the material number "SC-456.001". Partner B is buying this type of
+ * semiconductors from A. In his own ERP-System, he is referring to this semiconductor
+ * as "A-CHIP-0815".
+ *
In partner A's PURIS app this material will be registered under the ownMaterialNumber
+ * "SC-456.001", while partner B will registered as "A-CHIP-0815". Let's further assume
+ * that Partner C now wants to buy this material from A as well. In his own domain, C names
+ * this material "XYZ-123". Therefore C will register the material under this ownMaterialNumber
+ * in his own PURIS app.
+ *
When two partner are preparing to establish a business relationship in regard to a specific
+ * material, then each partner will create a {@link MaterialPartnerRelation}, where he
+ * designates the other partner as supplier or customer of this entity. He also must define,
+ * under which material number his partner refers to this material.
+ *
+ */
@Entity
@Table(name = "material")
@Getter
@@ -55,11 +86,22 @@ public class Material {
*/
private boolean productFlag;
+ /**
+ * The unique material number defined by the owner of this
+ * PURIS instance for this material.
+ */
@Id
private String ownMaterialNumber;
+ /**
+ * If there is a Catena-X material number defined
+ * for this material, this is stored here.
+ */
private String materialNumberCx;
+ /**
+ * Informal name or description of the material.
+ */
private String name;
@OneToMany(mappedBy = "material")
diff --git a/backend/src/main/java/org/eclipse/tractusx/puris/backend/masterdata/domain/model/Partner.java b/backend/src/main/java/org/eclipse/tractusx/puris/backend/masterdata/domain/model/Partner.java
index 6110f858..f56b35f0 100644
--- a/backend/src/main/java/org/eclipse/tractusx/puris/backend/masterdata/domain/model/Partner.java
+++ b/backend/src/main/java/org/eclipse/tractusx/puris/backend/masterdata/domain/model/Partner.java
@@ -28,6 +28,13 @@
import java.util.*;
+/**
+ *
This class represents an external business partner. Each partner
+ * is uniquely defined by his BPNL.
+ *
+ *
Furthermore, each business partner must have at least one
+ * site-BPNS, and exactly one EDC-URL.
+ */
@Entity
@Table(name = "partner")
@Getter
@@ -39,6 +46,9 @@ public class Partner {
@Id
@GeneratedValue
private UUID uuid;
+ /**
+ * The full name of the partner.
+ */
private String name;
private String edcUrl;
private String bpnl;
diff --git a/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/MaterialStock.java b/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/MaterialStock.java
index 267e0d31..a9eaf3aa 100644
--- a/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/MaterialStock.java
+++ b/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/MaterialStock.java
@@ -32,6 +32,11 @@
import java.util.Date;
+/**
+ *
This class represents a distinct stock of a certain material, that the owner of
+ * the current instance of the PURIS application has in his own warehouse.
+ *
+ */
@Entity
@DiscriminatorValue("MaterialStock")
@Getter
@@ -46,4 +51,4 @@ public MaterialStock(Material material, double quantity, String atSiteBpnl,
super.setType(DT_StockTypeEnum.MATERIAL);
}
-}
\ No newline at end of file
+}
diff --git a/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/PartnerProductStock.java b/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/PartnerProductStock.java
index 29acdc7f..12dc2ea4 100644
--- a/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/PartnerProductStock.java
+++ b/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/PartnerProductStock.java
@@ -33,6 +33,12 @@
import java.util.Date;
+/**
+ *
This class represents a distinct stock of products that a supplier partner of
+ * the owner of the current instance of the PURIS application has in his warehouse and
+ * that is dedicated to be sent to the owner of the current instance of the PURIS
+ * application later in time
This class represents a distinct stock of products that the owner of
+ * the current instance of the PURIS application has in his warehouse and
+ * that is dedicated to be sent to a certain customer partner later in time
+ */
@Entity
@Getter
@Setter
diff --git a/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/ProductStockResponse.java b/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/ProductStockResponse.java
index 07962625..b9e75722 100644
--- a/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/ProductStockResponse.java
+++ b/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/ProductStockResponse.java
@@ -47,27 +47,12 @@
@NoArgsConstructor
public class ProductStockResponse {
-// @Id
-// @GeneratedValue
-// @JsonIgnore
-// /**
-// * Technical identifier for a Message.
-// */
-// private UUID uuid;
-
/**
* Steering information {@link ProductStockResponse} api message.
*/
@Embedded
private MessageHeader header;
-// /**
-// * List of actual content of the payload.
-// *
-// * May contain also errors.
-// */
-// @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
-// private List payload = new ArrayList<>();
private ContentWrapper content = new ContentWrapper();
diff --git a/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/Stock.java b/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/Stock.java
index 2e9bd297..31e4d9cb 100644
--- a/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/Stock.java
+++ b/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/domain/model/Stock.java
@@ -33,6 +33,11 @@
import java.util.Date;
import java.util.UUID;
+/**
+ * This class is the common superclass of MaterialStock, ProductStock
+ * and PartnerProductStock.
+ *
+ */
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "stock_type")
From 402e0684d52a7756e488fb3b60fcf827829b30d4 Mon Sep 17 00:00:00 2001
From: Ernst-Christoph Schrewe
Date: Mon, 28 Aug 2023 13:32:10 +0200
Subject: [PATCH 02/11] fix: added swagger documentation and some minor fixes
---
.../EndpointDataReferenceReceiver.java | 35 ++++++++++--
.../ProductStockRequestApiController.java | 56 ++++++++++++++++++-
.../ProductStockResponseApiController.java | 33 ++++++++++-
.../stock/controller/StockController.java | 4 ++
4 files changed, 119 insertions(+), 9 deletions(-)
diff --git a/backend/src/main/java/org/eclipse/tractusx/puris/backend/common/edc/controller/EndpointDataReferenceReceiver.java b/backend/src/main/java/org/eclipse/tractusx/puris/backend/common/edc/controller/EndpointDataReferenceReceiver.java
index 3aa3fa0d..82c0ed40 100644
--- a/backend/src/main/java/org/eclipse/tractusx/puris/backend/common/edc/controller/EndpointDataReferenceReceiver.java
+++ b/backend/src/main/java/org/eclipse/tractusx/puris/backend/common/edc/controller/EndpointDataReferenceReceiver.java
@@ -20,6 +20,14 @@
*/
package org.eclipse.tractusx.puris.backend.common.edc.controller;
+import com.fasterxml.jackson.databind.JsonNode;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.ExampleObject;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import lombok.extern.slf4j.Slf4j;
import org.eclipse.tractusx.puris.backend.common.edc.logic.dto.EDR_Dto;
import org.eclipse.tractusx.puris.backend.common.edc.logic.service.EndpointDataReferenceService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -27,8 +35,8 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
-import com.fasterxml.jackson.databind.JsonNode;
-import lombok.extern.slf4j.Slf4j;
+
+import java.util.UUID;
/**
* This class contains the endpoint for receiving the authCodes from
@@ -48,8 +56,27 @@ public class EndpointDataReferenceReceiver {
* @return
*/
@PostMapping("/edrendpoint")
+ @Operation(summary = "Endpoint for receiving the authCodes from the counterparty's dataplane",
+ requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(
+ content = @Content(examples = {
+ @ExampleObject(name = "EDR Token",
+ value = "{\n" +
+ " \"id\" : \"6c2e5600-294a-488e-8ce1-2073806c1927\",\n" +
+ " \"endpoint\" : \"http://sokrates-dataplane:8181/api/public\",\n" +
+ " \"authKey\" : \"Authorization\",\n" +
+ " \"authCode\" : \"eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE2OTMyMTgzNzIsImRhZCI6Ik5YY2J1VktDOVFCTWY5eG9BQUFBQWN3RmE2blhIS1JEcllHTnZCeUNlbTdCNTBOVkVWd05vczdsNU1YM0lKL1pVK0NUU3NvcE02ZUVFbzloYmx5ak1aTlJYYnRnOUZpZ04vampRVmVlaDFWQk01RHA1RXUyN2VIbk5TNCt0VE9uMEZFZTVGVGNITjh6dWwwZG5VbW1nbCtsVERxODZhdHUwbjYxZVV5dXNzQ25pbTZDaWhOai9lRXZ0cUZydVhCbXNIWVQvSTNYN3JrYk1FeFZWRFhBOHNPVGFGeFVpTnl3YTI0cURpWkFnc0Nka1FDenBaSFVIWk16ZDQrNURKTTVkVkNDWnEyUHBnRDhuR09wVzVVTTJUYUlmNHdMOTFQbnhEdEQ2a1dWTCtNQUNGSE41S2RyVUt2a3pOeXAyRzVYcWJ2V29waEhhY0VLTTR4UTZDc2dkUHFoMGN6elNnbFZGdy9IWVl3ZDBXQVpCcnVSSTlUekY4WTJkMXBscW5zRFFwcWh1bUUzUUtGTW5UbzUxWVFuVmdzcUZ5ZEpObkpMZjQzWnBwOXNPZ3U0V1Yxd3lxN096QzFXeFZjRk9xNVZQMkJRYk5pS29YeEZINXd3WmZJMzR6dFNCTFE0akUvY3BJTlk0Rks0Tk95YjNicENOYlpDamplbXRYaE1jTXlUQ0tyMU8zS2RvdkhEMnEzMjhVdDk0U3hzZW9jK0FCUXZaTk5EK1hGbm9Bcm01K01jbkVXdkdPVHJPT0NIaG83bWhnTGUxRzVEaHBqRjFaclBVTHFNNitzTmZzU0l4REhSOEtzMW1OMGhwajVwMUJ4Tm9rMDE2bGNJSURTbnVpclhyZWlzVzhEK0NHRDlEREdlUlVNQkk3cVBCSVc4eXY5RmU1eldrNHU0cERzbFAwR0dPYjBpMHVBMnFyS0dFS2JQUmd6ODRPeWZTNW84KzdiQ1dkMElKdmZERlRGK3UwVVgzVWordmFtYlZPREpQK1FmbXpOM0U2NFdaY1ozVDRMQURKZWhGcEZ5WGh6bUM5SnAyK2RYZ2syWE4rUnVzbGZFeGNMbXA0U05DenRxZDVQTXZqVjdOMXFYZnQ5a0hLLytwYWhoVUUxLzBENTEvS04razN4cmxoTDFPVnF3QzYvUjlScDA5WUk4dno3enNXS0V3aEpNOGk2OCtRdHlDMldNay9ucVpjTmtieVQ3T21WZ1R2bFhxYmV5WlpVOTlSdGxVNExJemZjM3hKRlIvUGpDa2xUK2dkZXpsaXFnbGFWMlFLL2EwVHpXbFlncXVDQ21kQzhieGJaR1JFWFdrbVFlNUwwZC9UWWZZYVRCNWdURkRDL1ZDRnYrRUFzNFhXQ2pBQ2NraW5rTDJDYWlZYm5WV0I5Zi9nRkJaWkY1cDhBNHFrMkIvdkNBS3ByckpQZkMwZTZIQXFxUlZxRFZ1VktZRHl1U3V5Umx6Q2hPbXZvNHRoRUhDcmtwVFlCNzZIVlNPeld2ZFJubmJRQmNyOW5YQkVCd2xvbGZkV3F4TGZUY3dmRnFJV2tla0YrT3NzTDE1TVV5Ym1vZXlxVnUxSkdpVGN1Sy90NGhINkxEQXNWeVhOT294NVF4eDE1b0dIN1hoWXVrWEpBb2J6SXduVWtrM2cxOE1GMko1LzNIbVpHVDM3bHU0SUNmR3g3d3JxY0xHSEJnb3l5MndsZDl3WVdGMHB4RXlwbmltZWZHZTQ4di9TbEIwYldRekY5S0UrVGwrcTA3d1c2aHVNbU51VDhUNWJLeXBIUVYzMnlpSkozbGx3WnpTVmc5NWtsWXo3VThxZ3FhNlJCa1plbXovNFhISG4vVXRGTUl5K1VnZkNEbVJ5L2dORmZOQkdmQ2RQSGNidTh3RXRvd2QrOTJ5R0JPLzZIbFgwdysxYlNzVGZYRDI1U21ZdWtRcDhTUlgyTEtTaUtzc3VKQ0QwOTdCbTAvRkorUkxJOVZHd2FJRXBLMTIzOEVyUTFublVIbGNnblByY2xKVE5jdWtXNFp5YkhESUYrT3YwNHFMNnpYa292NXBoYXB0b1dBaHNCaE4vbW5sUWlHYnpSOGN4WWJ1SEpRRDRxd3VuZzloYVR3b2RyeGhxTXh4RVM5SHhVN3UrQ3U2SkhaRkVoL0pEeWpzVnc5ZXg5Uy94aUxFNjNZR21iWnNBK3Q5QXRzdjJPVC9TbS9ZMkk9IiwiY2lkIjoicHJvZHVjdC1zdG9jay1yZXF1ZXN0LWFwaTphMDUwYmY1MS0xYWIxLTRkZTQtODM0Yy1mNWNlMGEzMDMwZWEifQ.oxERHPWzhunY18bJjgTGjlvZhHUGtDm2V_svDVkYz3VulluMjoFV5jm1EDuy46Z3vEgLQmKsFsG-VTsVwHaJKh5pnlx1QEj8SUFYu5JZraIL6vghI1X3cPb0qNfCBX191ztJCRgszyNMsxXGd4GQjkUdnP8J58UtBwaoNTQNWxMOIYgpBaNUuyPr6wSz1ek05B-TahoVjfjFmgAlDoKLjLQ-Ec-ejfM6FaITvifrVJyGUyHGiqzU7v4_Dd29rVHVHSE_F3rr6sLV56PeU30coBAn_q7hnTN6GWdulxg3vjc5uDcqSntxmxGE_STI-paBDHG5aToQzNNgARpv3SJDjg\",\n" +
+ " \"properties\" : {\n" +
+ " \"cid\" : \"product-stock-request-api:a050bf51-1ab1-4de4-834c-f5ce0a3030ea\"\n" +
+ " }\n" +
+ "}\n")
+ })
+ ))
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "200", description = "Ok"),
+ @ApiResponse(responseCode = "400", description = "Received invalid message")
+ })
private ResponseEntity authCodeReceivingEndpoint(@RequestBody JsonNode body) {
- log.debug("Received edr data:\n" + body.toPrettyString());
+ log.info("Received edr data:\n" + body.toPrettyString());
String transferId = body.get("id").asText();
String authKey = body.get("authKey").asText();
String authCode = body.get("authCode").asText();
@@ -63,4 +90,4 @@ private ResponseEntity authCodeReceivingEndpoint(@RequestBody JsonNode b
return ResponseEntity.status(200).build();
}
-}
\ No newline at end of file
+}
diff --git a/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/controller/ProductStockRequestApiController.java b/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/controller/ProductStockRequestApiController.java
index f38aab02..db53d710 100644
--- a/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/controller/ProductStockRequestApiController.java
+++ b/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/controller/ProductStockRequestApiController.java
@@ -24,6 +24,12 @@
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.ExampleObject;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.tractusx.puris.backend.stock.domain.model.ProductStockRequest;
import org.eclipse.tractusx.puris.backend.common.api.domain.model.datatype.DT_RequestStateEnum;
@@ -40,6 +46,9 @@
import java.util.UUID;
+/**
+ * This class contains the REST controller of the product-stock-response api.
+ */
@Slf4j
@RestController
@RequestMapping("product-stock")
@@ -61,6 +70,15 @@ public class ProductStockRequestApiController {
EdcAdapterService edcAdapterService;
@PostMapping("request")
+ @Operation(summary = "This endpoint receives the product stock requests from a consumer.",
+ requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(
+ content = @Content(schema = @Schema(implementation = ProductStockRequest.class)))
+ )
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "202", description = "Product Stock request was accepted"),
+ @ApiResponse(responseCode = "400", description = "Request body malformed"),
+ @ApiResponse(responseCode = "422", description = "A request with the same ID already exists")
+ })
public ResponseEntity
*
Each entity of this class is uniquely identified by the material number defined
* by the partner that runs an instance of the PURIS app.
- *
A certain type of semiconductors is produced by partner A. He has labeled his
+ *
Example: A certain type of semiconductors is produced by partner A. He has labeled his
* product with the material number "SC-456.001". Partner B is buying this type of
* semiconductors from A. In his own ERP-System, he is referring to this semiconductor
* as "A-CHIP-0815".
@@ -58,7 +58,7 @@
* that Partner C now wants to buy this material from A as well. In his own domain, C names
* this material "XYZ-123". Therefore C will register the material under this ownMaterialNumber
* in his own PURIS app.
- *
When two partner are preparing to establish a business relationship in regard to a specific
+ *
When two partners are preparing to establish a business relationship in regard to a specific
* material, then each partner will create a {@link MaterialPartnerRelation}, where he
* designates the other partner as supplier or customer of this entity. He also must define,
* under which material number his partner refers to this material.
From 903afbd8fabb85c8742c73849159ed49445c74fa Mon Sep 17 00:00:00 2001
From: Ernst-Christoph Schrewe
Date: Wed, 30 Aug 2023 15:13:47 +0200
Subject: [PATCH 09/11] fix: forgot javadocs on some partner attributes
---
.../puris/backend/masterdata/domain/model/Partner.java | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/backend/src/main/java/org/eclipse/tractusx/puris/backend/masterdata/domain/model/Partner.java b/backend/src/main/java/org/eclipse/tractusx/puris/backend/masterdata/domain/model/Partner.java
index f56b35f0..f82dcec5 100644
--- a/backend/src/main/java/org/eclipse/tractusx/puris/backend/masterdata/domain/model/Partner.java
+++ b/backend/src/main/java/org/eclipse/tractusx/puris/backend/masterdata/domain/model/Partner.java
@@ -50,7 +50,13 @@ public class Partner {
* The full name of the partner.
*/
private String name;
+ /**
+ * The EDC-URL of the partner.
+ */
private String edcUrl;
+ /**
+ * The BPNL of the partner.
+ */
private String bpnl;
private String siteBpns;
From fbefdcc3f4a4ad6940452d2ea03dd863adbeaf75 Mon Sep 17 00:00:00 2001
From: Ernst-Christoph Schrewe
Date: Thu, 31 Aug 2023 13:58:49 +0200
Subject: [PATCH 10/11] fix: forgot to create javadocs in
productstockrequestapiserviceimpl
---
DEPENDENCIES_BACKEND | 38 -------------------
.../ProductStockRequestApiServiceImpl.java | 12 ++++++
2 files changed, 12 insertions(+), 38 deletions(-)
diff --git a/DEPENDENCIES_BACKEND b/DEPENDENCIES_BACKEND
index d7ee2ac8..d41e2849 100644
--- a/DEPENDENCIES_BACKEND
+++ b/DEPENDENCIES_BACKEND
@@ -8,11 +8,8 @@ maven/mavencentral/com.fasterxml.jackson.datatype/jackson-datatype-jdk8/2.14.1,
maven/mavencentral/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.14.1, Apache-2.0, approved, #4699
maven/mavencentral/com.fasterxml.jackson.module/jackson-module-parameter-names/2.14.1, Apache-2.0, approved, #5938
maven/mavencentral/com.fasterxml/classmate/1.5.1, Apache-2.0, approved, clearlydefined
-maven/mavencentral/com.jayway.jsonpath/json-path/2.7.0, Apache-2.0, approved, clearlydefined
maven/mavencentral/com.squareup.okhttp/okhttp/2.7.5, Apache-2.0, approved, clearlydefined
maven/mavencentral/com.squareup.okio/okio/1.6.0, Apache-2.0, approved, CQ11382
-maven/mavencentral/com.sun.istack/istack-commons-runtime/4.1.1, BSD-3-Clause, approved, #2590
-maven/mavencentral/com.vaadin.external.google/android-json/0.0.20131108.vaadin1, Apache-2.0, approved, CQ21310
maven/mavencentral/com.zaxxer/HikariCP/5.0.1, Apache-2.0, approved, clearlydefined
maven/mavencentral/io.micrometer/micrometer-commons/1.10.3, Apache-2.0 AND (Apache-2.0 AND MIT), approved, #7333
maven/mavencentral/io.micrometer/micrometer-observation/1.10.3, Apache-2.0, approved, #7331
@@ -21,50 +18,22 @@ maven/mavencentral/io.swagger.core.v3/swagger-core-jakarta/2.2.9, Apache-2.0, ap
maven/mavencentral/io.swagger.core.v3/swagger-models-jakarta/2.2.9, Apache-2.0, approved, #5919
maven/mavencentral/jakarta.activation/jakarta.activation-api/2.1.1, EPL-2.0 OR BSD-3-Clause OR GPL-2.0-only with Classpath-exception-2.0, approved, ee4j.jaf
maven/mavencentral/jakarta.annotation/jakarta.annotation-api/2.1.1, EPL-2.0 OR GPL-2.0-only with Classpath-exception-2.0, approved, ee4j.ca
-maven/mavencentral/jakarta.inject/jakarta.inject-api/2.0.0, Apache-2.0, approved, clearlydefined
maven/mavencentral/jakarta.persistence/jakarta.persistence-api/3.1.0, EPL-2.0 OR BSD-3-Clause AND (EPL-2.0 OR BSD-3-Clause AND BSD-3-Clause), approved, #7696
maven/mavencentral/jakarta.transaction/jakarta.transaction-api/2.0.1, EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0, approved, #7697
maven/mavencentral/jakarta.validation/jakarta.validation-api/3.0.2, Apache-2.0, approved, clearlydefined
maven/mavencentral/jakarta.xml.bind/jakarta.xml.bind-api/4.0.0, BSD-3-Clause, approved, ee4j.jaxb
-maven/mavencentral/net.bytebuddy/byte-buddy-agent/1.12.22, Apache-2.0, approved, #1810
-maven/mavencentral/net.bytebuddy/byte-buddy/1.12.22, Apache-2.0 AND BSD-3-Clause, approved, #1811
-maven/mavencentral/net.minidev/accessors-smart/2.4.8, Apache-2.0, approved, #7515
-maven/mavencentral/net.minidev/json-smart/2.4.8, Apache-2.0, approved, #3288
-maven/mavencentral/org.antlr/antlr4-runtime/4.10.1, BSD-3-Clause AND LicenseRef-Public-domain AND MIT AND LicenseRef-Unicode-TOU, approved, #7065
maven/mavencentral/org.apache.commons/commons-lang3/3.12.0, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.apache.logging.log4j/log4j-api/2.19.0, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.apache.logging.log4j/log4j-to-slf4j/2.19.0, Apache-2.0, approved, #5941
maven/mavencentral/org.apache.tomcat.embed/tomcat-embed-core/10.1.5, Apache-2.0 AND (EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0) AND (CDDL-1.0 OR GPL-2.0-only WITH Classpath-exception-2.0) AND W3C AND CC0-1.0, approved, #5949
maven/mavencentral/org.apache.tomcat.embed/tomcat-embed-el/10.1.5, Apache-2.0, approved, #6997
maven/mavencentral/org.apache.tomcat.embed/tomcat-embed-websocket/10.1.5, Apache-2.0, approved, #7920
-maven/mavencentral/org.apiguardian/apiguardian-api/1.1.2, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.aspectj/aspectjweaver/1.9.19, EPL-1.0, approved, tools.aspectj
-maven/mavencentral/org.assertj/assertj-core/3.23.1, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.eclipse.angus/angus-activation/1.0.0, EPL-2.0 OR GPL-2.0-only with Classpath-exception-2.0, approved, ee4j.angus
-maven/mavencentral/org.glassfish.jaxb/jaxb-core/4.0.1, BSD-3-Clause, approved, ee4j.jaxb
-maven/mavencentral/org.glassfish.jaxb/jaxb-runtime/4.0.1, BSD-3-Clause, approved, ee4j.jaxb
-maven/mavencentral/org.glassfish.jaxb/txw2/4.0.1, BSD-3-Clause, approved, ee4j.jaxb
-maven/mavencentral/org.hamcrest/hamcrest/2.2, BSD-3-Clause, approved, clearlydefined
-maven/mavencentral/org.hibernate.common/hibernate-commons-annotations/6.0.2.Final, LGPL-2.1-only, approved, #6962
maven/mavencentral/org.hibernate.orm/hibernate-core/6.1.6.Final, LGPL-2.1-or-later AND (Apache-2.0 AND LGPL-2.1-only) AND (CC-PDDC AND LGPL-2.1-only) AND (EPL-2.0 OR BSD-3-Clause), approved, #5939
maven/mavencentral/org.hibernate.validator/hibernate-validator/8.0.0.Final, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.hsqldb/hsqldb/2.7.1, BSD-3-Clause, approved, clearlydefined
maven/mavencentral/org.jboss.logging/jboss-logging/3.5.0.Final, Apache-2.0, approved, #9471
-maven/mavencentral/org.jboss/jandex/2.4.2.Final, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.junit.jupiter/junit-jupiter-api/5.9.2, EPL-2.0, approved, #3133
-maven/mavencentral/org.junit.jupiter/junit-jupiter-engine/5.9.2, EPL-2.0, approved, #3125
-maven/mavencentral/org.junit.jupiter/junit-jupiter-params/5.9.2, EPL-2.0, approved, #3134
-maven/mavencentral/org.junit.jupiter/junit-jupiter/5.9.2, EPL-2.0, approved, #6972
-maven/mavencentral/org.junit.platform/junit-platform-commons/1.9.2, EPL-2.0, approved, #3130
-maven/mavencentral/org.junit.platform/junit-platform-engine/1.9.2, EPL-2.0, approved, #3128
-maven/mavencentral/org.mockito/mockito-core/4.8.1, MIT, approved, clearlydefined
-maven/mavencentral/org.mockito/mockito-junit-jupiter/4.8.1, MIT, approved, clearlydefined
maven/mavencentral/org.modelmapper/modelmapper/3.1.1, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.objenesis/objenesis/3.2, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.opentest4j/opentest4j/1.2.0, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.ow2.asm/asm/9.1, BSD-3-Clause, approved, CQ23029
maven/mavencentral/org.projectlombok/lombok/1.18.24, MIT AND LicenseRef-Public-Domain, approved, CQ23907
-maven/mavencentral/org.skyscreamer/jsonassert/1.5.1, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.slf4j/jul-to-slf4j/2.0.6, MIT, approved, #7698
maven/mavencentral/org.slf4j/slf4j-api/2.0.6, MIT, approved, #5915
maven/mavencentral/org.springdoc/springdoc-openapi-starter-common/2.1.0, Apache-2.0, approved, clearlydefined
@@ -72,26 +41,21 @@ maven/mavencentral/org.springdoc/springdoc-openapi-starter-webmvc-api/2.1.0, Apa
maven/mavencentral/org.springdoc/springdoc-openapi-starter-webmvc-ui/2.1.0, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.springframework.boot/spring-boot-autoconfigure/3.0.2, Apache-2.0, approved, #6981
maven/mavencentral/org.springframework.boot/spring-boot-configuration-processor/3.0.2, Apache-2.0, approved, #6973
-maven/mavencentral/org.springframework.boot/spring-boot-devtools/3.0.2, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.springframework.boot/spring-boot-starter-aop/3.0.2, Apache-2.0, approved, #6965
maven/mavencentral/org.springframework.boot/spring-boot-starter-data-jpa/3.0.2, Apache-2.0, approved, #7351
maven/mavencentral/org.springframework.boot/spring-boot-starter-jdbc/3.0.2, Apache-2.0, approved, #6974
maven/mavencentral/org.springframework.boot/spring-boot-starter-json/3.0.2, Apache-2.0, approved, #7006
maven/mavencentral/org.springframework.boot/spring-boot-starter-logging/3.0.2, Apache-2.0, approved, #6982
maven/mavencentral/org.springframework.boot/spring-boot-starter-security/3.0.2, Apache-2.0, approved, #7329
-maven/mavencentral/org.springframework.boot/spring-boot-starter-test/3.0.2, Apache-2.0, approved, #7001
maven/mavencentral/org.springframework.boot/spring-boot-starter-tomcat/3.0.2, Apache-2.0, approved, #6987
maven/mavencentral/org.springframework.boot/spring-boot-starter-web/3.0.2, Apache-2.0, approved, #5945
maven/mavencentral/org.springframework.boot/spring-boot-starter/3.0.2, Apache-2.0, approved, #7330
-maven/mavencentral/org.springframework.boot/spring-boot-test-autoconfigure/3.0.2, Apache-2.0, approved, #6966
-maven/mavencentral/org.springframework.boot/spring-boot-test/3.0.2, Apache-2.0, approved, #6976
maven/mavencentral/org.springframework.boot/spring-boot/3.0.2, Apache-2.0, approved, #7327
maven/mavencentral/org.springframework.data/spring-data-commons/3.0.1, Apache-2.0, approved, #5943
maven/mavencentral/org.springframework.data/spring-data-jpa/3.0.1, Apache-2.0, approved, #5935
maven/mavencentral/org.springframework.security/spring-security-config/6.0.1, Apache-2.0, approved, #7338
maven/mavencentral/org.springframework.security/spring-security-core/6.0.1, Apache-2.0, approved, #7325
maven/mavencentral/org.springframework.security/spring-security-crypto/6.0.1, Apache-2.0 AND ISC, approved, #7326
-maven/mavencentral/org.springframework.security/spring-security-test/6.0.1, Apache-2.0, approved, #7402
maven/mavencentral/org.springframework.security/spring-security-web/6.0.1, Apache-2.0, approved, #7328
maven/mavencentral/org.springframework.session/spring-session-core/3.0.0, Apache-2.0, approved, #7858
maven/mavencentral/org.springframework/spring-aop/6.0.4, Apache-2.0, approved, #5940
@@ -103,10 +67,8 @@ maven/mavencentral/org.springframework/spring-expression/6.0.4, Apache-2.0, appr
maven/mavencentral/org.springframework/spring-jcl/6.0.4, Apache-2.0, approved, #3283
maven/mavencentral/org.springframework/spring-jdbc/6.0.4, Apache-2.0, approved, #5924
maven/mavencentral/org.springframework/spring-orm/6.0.4, Apache-2.0, approved, #5925
-maven/mavencentral/org.springframework/spring-test/6.0.4, Apache-2.0, approved, #7003
maven/mavencentral/org.springframework/spring-tx/6.0.4, Apache-2.0, approved, #5926
maven/mavencentral/org.springframework/spring-web/6.0.4, Apache-2.0, approved, #5942
maven/mavencentral/org.springframework/spring-webmvc/6.0.4, Apache-2.0, approved, #5944
maven/mavencentral/org.webjars/swagger-ui/4.18.2, Apache-2.0, approved, #7850
-maven/mavencentral/org.xmlunit/xmlunit-core/2.9.1, Apache-2.0, approved, #6272
maven/mavencentral/org.yaml/snakeyaml/1.33, Apache-2.0, approved, clearlydefined
diff --git a/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/logic/service/ProductStockRequestApiServiceImpl.java b/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/logic/service/ProductStockRequestApiServiceImpl.java
index 9272e8b5..1576c912 100644
--- a/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/logic/service/ProductStockRequestApiServiceImpl.java
+++ b/backend/src/main/java/org/eclipse/tractusx/puris/backend/stock/logic/service/ProductStockRequestApiServiceImpl.java
@@ -112,6 +112,18 @@ public static Predicate distinctByKey(
}
+ /**
+ * This method should be called in a separate Thread.
+ *
+ * It will evaluate the given ProductStockRequest and check, whether this Partner is
+ * currently known as a customer for the given products. Then this method will assemble
+ * all necessary information from database, generate ProductStockSammDto's and then send
+ * them to the Partner via his product-stock-response-api.
+ *
+ *
Please note that this method currently does not support multple BPNS's/BPNA's per Partner.