summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvasraz <vasyl.razinkov@est.tech>2023-01-18 15:54:45 +0000
committerVasyl Razinkov <vasyl.razinkov@est.tech>2023-01-18 15:57:27 +0000
commitc183513f5c5813f6a911a5ceb7ac81405007aaff (patch)
tree374097ac7062420af19102d20583071f7d5b6308
parent96c058ae4b94d864cd4e6e4ac2ed50bb2d1506c9 (diff)
Fix 'Data type cache not updated when data type updated'-bug
Signed-off-by: Vasyl Razinkov <vasyl.razinkov@est.tech> Change-Id: I49c50cc95a2594025eab955769cc68e7e7a23acd Issue-ID: SDC-4337
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/BaseBusinessLogic.java4
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/DataTypeBusinessLogic.java21
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java4
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/servlets/DataTypeServlet.java8
4 files changed, 26 insertions, 11 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/BaseBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/BaseBusinessLogic.java
index 1f6d2a4601..8b18346bdd 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/BaseBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/BaseBusinessLogic.java
@@ -32,6 +32,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
+import lombok.Getter;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
@@ -118,6 +119,7 @@ public abstract class BaseBusinessLogic {
protected JanusGraphGenericDao janusGraphGenericDao;
protected PropertyOperation propertyOperation;
protected AttributeOperation attributeOperation;
+ @Getter
protected ApplicationDataTypeCache applicationDataTypeCache;
protected ToscaOperationFacade toscaOperationFacade;
protected IGroupOperation groupOperation;
@@ -126,7 +128,7 @@ public abstract class BaseBusinessLogic {
protected PolicyTypeOperation policyTypeOperation;
protected ArtifactsOperations artifactToscaOperation;
protected UserValidations userValidations;
- DataTypeValidatorConverter dataTypeValidatorConverter = DataTypeValidatorConverter.getInstance();
+ private final DataTypeValidatorConverter dataTypeValidatorConverter = DataTypeValidatorConverter.getInstance();
protected BaseBusinessLogic(IElementOperation elementDao, IGroupOperation groupOperation, IGroupInstanceOperation groupInstanceOperation,
IGroupTypeOperation groupTypeOperation, InterfaceOperation interfaceOperation,
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/DataTypeBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/DataTypeBusinessLogic.java
index 687004a017..d95376ed3c 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/DataTypeBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/DataTypeBusinessLogic.java
@@ -23,6 +23,8 @@ import fj.data.Either;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
+import org.openecomp.sdc.be.datatypes.elements.DataTypeDataDefinition;
+import org.openecomp.sdc.be.exception.supplier.DataTypeOperationExceptionSupplier;
import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.ComponentParametersView;
import org.openecomp.sdc.be.model.DataTypeDefinition;
@@ -33,6 +35,7 @@ import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation;
import org.openecomp.sdc.be.model.operations.api.IGroupOperation;
import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
+import org.openecomp.sdc.be.model.operations.impl.DataTypeOperation;
import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
@@ -40,15 +43,19 @@ import org.springframework.util.CollectionUtils;
@org.springframework.stereotype.Component("dataTypeBusinessLogic")
public class DataTypeBusinessLogic extends BaseBusinessLogic {
- final DataTypeImportManager dataTypeImportManager;
+ private final DataTypeImportManager dataTypeImportManager;
+ private final DataTypeOperation dataTypeOperation;
@Autowired
public DataTypeBusinessLogic(IElementOperation elementDao, IGroupOperation groupOperation, IGroupInstanceOperation groupInstanceOperation,
IGroupTypeOperation groupTypeOperation, InterfaceOperation interfaceOperation,
- InterfaceLifecycleOperation interfaceLifecycleTypeOperation, ArtifactsOperations artifactToscaOperation, DataTypeImportManager dataTypeImportManager) {
+ InterfaceLifecycleOperation interfaceLifecycleTypeOperation, ArtifactsOperations artifactToscaOperation,
+ DataTypeImportManager dataTypeImportManager,
+ DataTypeOperation dataTypeOperation) {
super(elementDao, groupOperation, groupInstanceOperation, groupTypeOperation, interfaceOperation, interfaceLifecycleTypeOperation,
artifactToscaOperation);
this.dataTypeImportManager = dataTypeImportManager;
+ this.dataTypeOperation = dataTypeOperation;
}
/**
@@ -154,11 +161,17 @@ public class DataTypeBusinessLogic extends BaseBusinessLogic {
* [...]
* </pre>
*
- * @param dataTypesYaml the data types to create in yaml format. It can contain multiple data types entries.
- * @param model Model name to associate with data type
+ * @param dataTypesYaml the data types to create in yaml format. It can contain multiple data types entries.
+ * @param model Model name to associate with data type
* @param includeToModelDefaultImports Add data type entry to default imports for model
*/
public void createDataTypeFromYaml(final String dataTypesYaml, final String model, final boolean includeToModelDefaultImports) {
dataTypeImportManager.createDataTypes(dataTypesYaml, model, includeToModelDefaultImports);
}
+
+ public void updateApplicationDataTypeCache(final String dataTypeId) {
+ DataTypeDataDefinition dataTypeDataDefinition = dataTypeOperation.getDataTypeByUid(dataTypeId).orElseThrow(
+ DataTypeOperationExceptionSupplier.dataTypeNotFound(dataTypeId));
+ getApplicationDataTypeCache().reload(dataTypeDataDefinition.getModel(), dataTypeId);
+ }
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java
index 619a923b48..2f71959d9d 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java
@@ -333,10 +333,6 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
this.artifactsBusinessLogic = artifactsManager;
}
- public ApplicationDataTypeCache getApplicationDataTypeCache() {
- return applicationDataTypeCache;
- }
-
@Autowired
@Override
public void setApplicationDataTypeCache(ApplicationDataTypeCache applicationDataTypeCache) {
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/DataTypeServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/DataTypeServlet.java
index 711ebcbd9c..e081110486 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/DataTypeServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/DataTypeServlet.java
@@ -45,6 +45,7 @@ import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
+import org.openecomp.sdc.be.components.impl.DataTypeBusinessLogic;
import org.openecomp.sdc.be.components.impl.aaf.AafPermission;
import org.openecomp.sdc.be.components.impl.aaf.PermissionAllowed;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
@@ -70,11 +71,13 @@ public class DataTypeServlet extends BeGenericServlet {
private static final Logger log = Logger.getLogger(DataTypeServlet.class);
private final DataTypeOperation dataTypeOperation;
+ private final DataTypeBusinessLogic dataTypeBusinessLogic;
public DataTypeServlet(final ComponentsUtils componentsUtils,
- final DataTypeOperation dataTypeOperation) {
+ final DataTypeOperation dataTypeOperation, DataTypeBusinessLogic dataTypeBusinessLogic) {
super(componentsUtils);
this.dataTypeOperation = dataTypeOperation;
+ this.dataTypeBusinessLogic = dataTypeBusinessLogic;
}
@GET
@@ -139,9 +142,10 @@ public class DataTypeServlet extends BeGenericServlet {
})
@PermissionAllowed(AafPermission.PermNames.INTERNAL_ALL_VALUE)
public Response createProperty(@Parameter(in = ParameterIn.PATH, required = true, description = "The data type id")
- @PathParam("id") final String id,
+ @PathParam("id") final String id,
@RequestBody(description = "Property to add", required = true) final PropertyDefinitionDto propertyDefinitionDto) {
final PropertyDefinitionDto property = dataTypeOperation.createProperty(id, propertyDefinitionDto);
+ dataTypeBusinessLogic.updateApplicationDataTypeCache(id);
return Response.status(Status.CREATED).entity(property).build();
}