gcat/src/main/java/org/gcube/gcat/configuration/CatalogueConfigurationFacto...

59 lines
2.2 KiB
Java
Raw Normal View History

2022-02-16 22:34:30 +01:00
package org.gcube.gcat.configuration;
import java.util.HashMap;
import java.util.Map;
import org.gcube.common.authorization.utils.manager.SecretManager;
/**
* @author Luca Frosini (ISTI - CNR)
*/
public class CatalogueConfigurationFactory {
private static final Map<String, ServiceCatalogueConfiguration> catalogueConfigurations;
static {
catalogueConfigurations = new HashMap<>();
}
protected static ServiceCatalogueConfiguration load(String context) {
GCoreISConfigurationProxy gCoreISConfigurationProxy = new GCoreISConfigurationProxy(context);
return gCoreISConfigurationProxy.getCatalogueConfiguration();
}
public synchronized static ServiceCatalogueConfiguration getInstance() {
String context = SecretManager.instance.get().getContext();
ServiceCatalogueConfiguration catalogueConfiguration = catalogueConfigurations.get(context);
if(catalogueConfiguration == null) {
catalogueConfiguration = load(context);
catalogueConfigurations.put(context, catalogueConfiguration);
}
return catalogueConfiguration;
}
public synchronized static void renew() {
String context = SecretManager.instance.get().getContext();
catalogueConfigurations.remove(context);
ServiceCatalogueConfiguration catalogueConfiguration = load(context);
catalogueConfigurations.put(context, catalogueConfiguration);
}
public synchronized static void purge() {
// Remove the resource from IS
String context = SecretManager.instance.get().getContext();
catalogueConfigurations.remove(context);
GCoreISConfigurationProxy gCoreISConfigurationProxy = new GCoreISConfigurationProxy(context);
gCoreISConfigurationProxy.delete();
}
public synchronized static ServiceCatalogueConfiguration createOrUpdate(ServiceCatalogueConfiguration catalogueConfiguration) throws Exception {
String context = SecretManager.instance.get().getContext();
catalogueConfigurations.remove(context);
GCoreISConfigurationProxy gCoreISConfigurationProxy = new GCoreISConfigurationProxy(context, catalogueConfiguration);
2022-02-15 16:22:53 +01:00
catalogueConfiguration = gCoreISConfigurationProxy.createOrUpdateOnIS();
catalogueConfigurations.put(context, catalogueConfiguration);
return catalogueConfiguration;
}
}