Skip to content

Commit

Permalink
Merge pull request #198 from madgeek-arc/cherry-pick
Browse files Browse the repository at this point in the history
Cherry-pick to master
  • Loading branch information
spyroukostas authored Sep 8, 2023
2 parents 21f022f + 114ccff commit 56c5906
Showing 1 changed file with 30 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package eu.einfracentral.registry.manager.aspects;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import eu.einfracentral.domain.*;
import eu.einfracentral.domain.interoperabilityRecord.configurationTemplates.ConfigurationTemplateInstanceBundle;
import eu.einfracentral.exception.ResourceException;
Expand Down Expand Up @@ -47,6 +49,8 @@ public class ProviderManagementAspect {
@Value("${project.catalogue.name}")
private String catalogueName;

private final ObjectMapper objectMapper = new ObjectMapper();

@Autowired
public ProviderManagementAspect(ProviderService<ProviderBundle, Authentication> providerService,
ResourceBundleService<ServiceBundle> serviceBundleService,
Expand Down Expand Up @@ -80,7 +84,7 @@ public ProviderManagementAspect(ProviderService<ProviderBundle, Authentication>
"|| execution(* eu.einfracentral.registry.manager.ServiceBundleManager.addResource(..))" +
"|| execution(* eu.einfracentral.registry.manager.ServiceBundleManager.updateResource(..))",
returning = "serviceBundle")
public void updateProviderState(ServiceBundle serviceBundle) {
public void updateProviderState(final ServiceBundle serviceBundle) {
logger.trace("Updating Provider States");
updateServiceProviderStates(serviceBundle);
}
Expand Down Expand Up @@ -155,7 +159,7 @@ public void addProviderAsPublic(final ProviderBundle providerBundle) {
try {
publicProviderManager.get(String.format("%s.%s", providerBundle.getProvider().getCatalogueId(), providerBundle.getId()));
} catch (ResourceException | ResourceNotFoundException e) {
publicProviderManager.add(providerBundle, null);
publicProviderManager.add(clone(providerBundle), null);
}
}
}
Expand All @@ -170,7 +174,7 @@ public void addProviderAsPublic(final ProviderBundle providerBundle) {
public void updatePublicProvider(final ProviderBundle providerBundle) {
try {
publicProviderManager.get(String.format("%s.%s", providerBundle.getProvider().getCatalogueId(), providerBundle.getId()));
publicProviderManager.update(providerBundle, null);
publicProviderManager.update(clone(providerBundle), null);
} catch (ResourceException | ResourceNotFoundException ignore) {
}
}
Expand Down Expand Up @@ -229,7 +233,7 @@ public void addResourceAsPublic(final ServiceBundle serviceBundle) {
try {
publicServiceManager.get(String.format("%s.%s", serviceBundle.getService().getCatalogueId(), serviceBundle.getId()));
} catch (ResourceException | ResourceNotFoundException e) {
publicServiceManager.add(serviceBundle, null);
publicServiceManager.add(clone(serviceBundle), null);
}
}
}
Expand All @@ -245,7 +249,7 @@ public void addResourceAsPublic(final DatasourceBundle datasourceBundle) {
try {
publicDatasourceManager.get(String.format("%s.%s", datasourceBundle.getDatasource().getCatalogueId(), datasourceBundle.getId()));
} catch (ResourceException | ResourceNotFoundException e) {
publicDatasourceManager.add(datasourceBundle, null);
publicDatasourceManager.add(clone(datasourceBundle), null);
}
}
}
Expand All @@ -261,7 +265,7 @@ public void addResourceAsPublic(final TrainingResourceBundle trainingResourceBun
try {
publicTrainingResourceManager.get(String.format("%s.%s", trainingResourceBundle.getTrainingResource().getCatalogueId(), trainingResourceBundle.getId()));
} catch (ResourceException | ResourceNotFoundException e) {
publicTrainingResourceManager.add(trainingResourceBundle, null);
publicTrainingResourceManager.add(clone(trainingResourceBundle), null);
}
}
}
Expand All @@ -275,7 +279,7 @@ public void addResourceAsPublic(final InteroperabilityRecordBundle interoperabil
try{
publicInteroperabilityRecordManager.get(String.format("%s.%s", interoperabilityRecordBundle.getInteroperabilityRecord().getCatalogueId(), interoperabilityRecordBundle.getId()));
} catch (ResourceException | ResourceNotFoundException e){
publicInteroperabilityRecordManager.add(interoperabilityRecordBundle, null);
publicInteroperabilityRecordManager.add(clone(interoperabilityRecordBundle), null);
}
}
}
Expand All @@ -290,7 +294,7 @@ public void addResourceAsPublic(final InteroperabilityRecordBundle interoperabil
public void updatePublicResource(final ServiceBundle serviceBundle) {
try {
publicServiceManager.get(String.format("%s.%s", serviceBundle.getService().getCatalogueId(), serviceBundle.getId()));
publicServiceManager.update(serviceBundle, null);
publicServiceManager.update(clone(serviceBundle), null);
} catch (ResourceException | ResourceNotFoundException ignore) {
}
}
Expand All @@ -305,7 +309,7 @@ public void updatePublicResource(final ServiceBundle serviceBundle) {
public void updatePublicResource(final DatasourceBundle datasourceBundle) {
try {
publicDatasourceManager.get(String.format("%s.%s", datasourceBundle.getDatasource().getCatalogueId(), datasourceBundle.getId()));
publicDatasourceManager.update(datasourceBundle, null);
publicDatasourceManager.update(clone(datasourceBundle), null);
} catch (ResourceException | ResourceNotFoundException ignore) {
}
}
Expand All @@ -320,7 +324,7 @@ public void updatePublicResource(final DatasourceBundle datasourceBundle) {
public void updatePublicResource(final TrainingResourceBundle trainingResourceBundle) {
try {
publicTrainingResourceManager.get(String.format("%s.%s", trainingResourceBundle.getTrainingResource().getCatalogueId(), trainingResourceBundle.getId()));
publicTrainingResourceManager.update(trainingResourceBundle, null);
publicTrainingResourceManager.update(clone(trainingResourceBundle), null);
} catch (ResourceException | ResourceNotFoundException ignore) {
}
}
Expand All @@ -335,7 +339,7 @@ public void updatePublicResource(final TrainingResourceBundle trainingResourceBu
public void updatePublicResource(final InteroperabilityRecordBundle interoperabilityRecordBundle) {
try{
publicInteroperabilityRecordManager.get(String.format("%s.%s", interoperabilityRecordBundle.getInteroperabilityRecord().getCatalogueId(), interoperabilityRecordBundle.getId()));
publicInteroperabilityRecordManager.update(interoperabilityRecordBundle, null);
publicInteroperabilityRecordManager.update(clone(interoperabilityRecordBundle), null);
} catch (ResourceException | ResourceNotFoundException ignore){
}
}
Expand Down Expand Up @@ -438,7 +442,7 @@ public void addResourceInteroperabilityRecordAsPublic(final ResourceInteroperabi
resourceInteroperabilityRecordBundle.getResourceInteroperabilityRecord().getCatalogueId(),
resourceInteroperabilityRecordBundle.getId()));
} catch (ResourceException | ResourceNotFoundException e) {
publicResourceInteroperabilityRecordManager.add(resourceInteroperabilityRecordBundle, null);
publicResourceInteroperabilityRecordManager.add(clone(resourceInteroperabilityRecordBundle), null);
}
}

Expand All @@ -449,7 +453,7 @@ public void updatePublicResourceInteroperabilityRecord(final ResourceInteroperab
try {
publicResourceInteroperabilityRecordManager.get(String.format("%s.%s", resourceInteroperabilityRecordBundle.getResourceInteroperabilityRecord().getCatalogueId(),
resourceInteroperabilityRecordBundle.getId()));
publicResourceInteroperabilityRecordManager.update(resourceInteroperabilityRecordBundle, null);
publicResourceInteroperabilityRecordManager.update(clone(resourceInteroperabilityRecordBundle), null);
} catch (ResourceException | ResourceNotFoundException ignore) {
}
}
Expand All @@ -468,7 +472,7 @@ public void addConfigurationTemplateInstanceAsPublic(final ConfigurationTemplate
try{
publicConfigurationTemplateImplementationManager.get(String.format("%s.%s", catalogueName, configurationTemplateInstanceBundle.getId()));
} catch (ResourceException | ResourceNotFoundException e){
publicConfigurationTemplateImplementationManager.add(configurationTemplateInstanceBundle, null);
publicConfigurationTemplateImplementationManager.add(clone(configurationTemplateInstanceBundle), null);
}
}

Expand All @@ -478,7 +482,7 @@ public void addConfigurationTemplateInstanceAsPublic(final ConfigurationTemplate
public void updatePublicConfigurationTemplateInstance(final ConfigurationTemplateInstanceBundle configurationTemplateInstanceBundle) {
try {
publicConfigurationTemplateImplementationManager.get(String.format("%s.%s", catalogueName, configurationTemplateInstanceBundle.getId()));
publicConfigurationTemplateImplementationManager.update(configurationTemplateInstanceBundle, null);
publicConfigurationTemplateImplementationManager.update(clone(configurationTemplateInstanceBundle), null);
} catch (ResourceException | ResourceNotFoundException ignore) {
}
}
Expand All @@ -489,4 +493,15 @@ public void deletePublicConfigurationTemplateInstance(JoinPoint joinPoint) {
ConfigurationTemplateInstanceBundle configurationTemplateInstanceBundle = (ConfigurationTemplateInstanceBundle) joinPoint.getArgs()[0];
publicConfigurationTemplateImplementationManager.delete(configurationTemplateInstanceBundle);
}

private <T> T clone(T object) {
T deepCopy = null;
try {
String json = objectMapper.writeValueAsString(object);
deepCopy = (T) objectMapper.readValue(json, object.getClass());
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
return deepCopy;
}
}

0 comments on commit 56c5906

Please sign in to comment.