diff --git a/src/main/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxy.java b/src/main/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxy.java index 7cd9206..f7c7a51 100644 --- a/src/main/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxy.java +++ b/src/main/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxy.java @@ -16,6 +16,7 @@ import org.gcube.com.fasterxml.jackson.core.JsonProcessingException; import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.com.fasterxml.jackson.databind.ObjectMapper; import org.gcube.gcat.api.configuration.CatalogueConfiguration; +import org.gcube.gcat.configuration.service.FacetBasedISServiceCatalogueConfiguration; import org.gcube.gcat.configuration.service.ServiceCKANDB; import org.gcube.gcat.configuration.service.ServiceCatalogueConfiguration; import org.gcube.informationsystem.model.impl.relations.ConsistsOfImpl; @@ -219,28 +220,40 @@ public class FacetBasedISConfigurationProxy extends ISConfigurationProxy supportedOrganizations = new HashSet<>(); - if(supportedOrganizationsObj instanceof Collection) { - supportedOrganizations = new HashSet((Collection) supportedOrganizationsObj); - } + boolean forceUpdate = false; - supportedOrganizations.add(catalogueConfiguration.getDefaultOrganization()); + if(supportedOrganizationsObj!=null && supportedOrganizationsObj instanceof Collection) { + supportedOrganizations = new HashSet((Collection) supportedOrganizationsObj); + }else { + supportedOrganizations.add(catalogueConfiguration.getDefaultOrganization()); + configurationSimpleFacet.setAdditionalProperty(CatalogueConfiguration.SUPPORTED_ORGANIZATIONS_KEY, supportedOrganizations); + forceUpdate = true; + } catalogueConfiguration.setSupportedOrganizations(supportedOrganizations); Map additionalProperties = new HashMap<>(configurationSimpleFacet.getAdditionalProperties()); for(String key : additionalProperties.keySet()) { if(!CatalogueConfiguration.KNOWN_PROPERTIES.contains(key)) { - catalogueConfiguration.setAdditionalProperty(key, additionalProperties.get(key)); + if(key.startsWith("@")) { + continue; + } + Object value = additionalProperties.get(key); + catalogueConfiguration.setAdditionalProperty(key, value); } } + if(forceUpdate) { + updateOnIS(configurationSimpleFacet); + } + return catalogueConfiguration; } public ServiceCatalogueConfiguration setCkanServiceInfo(ServiceCatalogueConfiguration catalogueConfiguration) throws Exception { AccessPointFacet ckanServiceAccessPointFacet = queryCkanServiceAccessPointFacet(); catalogueConfiguration.setCkanURL(ckanServiceAccessPointFacet.getEndpoint().toString()); - Encrypted encrypted = (Encrypted) ckanServiceAccessPointFacet.getAuthorization(); + Encrypted encrypted = (Encrypted) ckanServiceAccessPointFacet.getAdditionalProperty(CatalogueConfiguration.SYS_ADMIN_TOKEN_KEY); String encryptedPassword = encrypted.getEncryptedValue(); catalogueConfiguration.setSysAdminToken(encryptedPassword); return catalogueConfiguration; @@ -251,7 +264,7 @@ public class FacetBasedISConfigurationProxy extends ISConfigurationProxy