Refactoring configuration proxies and factories

This commit is contained in:
Luca Frosini 2022-12-07 09:36:19 +01:00
parent f1afe85744
commit c39484784f
3 changed files with 50 additions and 10 deletions

View File

@ -5,7 +5,8 @@ import java.util.Map;
import org.gcube.common.authorization.utils.manager.SecretManagerProvider;
import org.gcube.gcat.configuration.isproxies.GCoreISConfigurationProxy;
import org.gcube.gcat.configuration.isproxies.ISConfigurationProxyFactory;
import org.gcube.gcat.configuration.isproxies.GCoreISConfigurationProxyFactory;
import org.gcube.gcat.configuration.isproxies.FacetBasedISConfigurationProxyFactory;
import org.gcube.gcat.configuration.isproxies.FacetBasedISConfigurationProxy;
import org.gcube.gcat.configuration.service.ServiceCatalogueConfiguration;
import org.gcube.gcat.persistence.ckan.CKANUserCache;
@ -22,27 +23,31 @@ public class CatalogueConfigurationFactory {
}
private static ServiceCatalogueConfiguration load(String context) {
FacetBasedISConfigurationProxy restISConfigurationProxy = ISConfigurationProxyFactory.getInstance(context);
ServiceCatalogueConfiguration serviceCatalogueConfiguration = restISConfigurationProxy.getCatalogueConfiguration();
if(serviceCatalogueConfiguration == null) {
GCoreISConfigurationProxy gCoreISConfigurationProxy = new GCoreISConfigurationProxy(context);
ServiceCatalogueConfiguration serviceCatalogueConfiguration = null;
try {
FacetBasedISConfigurationProxy facetBasedISConfigurationProxy = FacetBasedISConfigurationProxyFactory.getInstance(context);
serviceCatalogueConfiguration = facetBasedISConfigurationProxy.getCatalogueConfiguration();
} catch(Exception e){
GCoreISConfigurationProxy gCoreISConfigurationProxy = GCoreISConfigurationProxyFactory.getInstance();
serviceCatalogueConfiguration = gCoreISConfigurationProxy.getCatalogueConfiguration();
}
return serviceCatalogueConfiguration;
}
private static void purgeFromIS(String context) {
FacetBasedISConfigurationProxy restISConfigurationProxy = ISConfigurationProxyFactory.getInstance(context);
FacetBasedISConfigurationProxy restISConfigurationProxy = FacetBasedISConfigurationProxyFactory.getInstance(context);
restISConfigurationProxy.delete();
GCoreISConfigurationProxy gCoreISConfigurationProxy = new GCoreISConfigurationProxy(context);
GCoreISConfigurationProxy gCoreISConfigurationProxy = GCoreISConfigurationProxyFactory.getInstance();
gCoreISConfigurationProxy.delete();
}
private static void createOrUpdateOnIS(String context, ServiceCatalogueConfiguration catalogueConfiguration) throws Exception {
FacetBasedISConfigurationProxy restISConfigurationProxy = ISConfigurationProxyFactory.getInstance(context);
FacetBasedISConfigurationProxy restISConfigurationProxy = FacetBasedISConfigurationProxyFactory.getInstance(context);
restISConfigurationProxy.setCatalogueConfiguration(catalogueConfiguration);
restISConfigurationProxy.createOrUpdateOnIS();
GCoreISConfigurationProxy gCoreISConfigurationProxy = new GCoreISConfigurationProxy(context);
GCoreISConfigurationProxy gCoreISConfigurationProxy = GCoreISConfigurationProxyFactory.getInstance();
gCoreISConfigurationProxy.setCatalogueConfiguration(catalogueConfiguration);
gCoreISConfigurationProxy.createOrUpdateOnIS();
}

View File

@ -5,7 +5,7 @@ import java.util.Map;
import org.gcube.common.authorization.utils.manager.SecretManagerProvider;
public class ISConfigurationProxyFactory {
public class FacetBasedISConfigurationProxyFactory {
private static final Map<String, FacetBasedISConfigurationProxy> isConfigurationProxies;

View File

@ -0,0 +1,35 @@
package org.gcube.gcat.configuration.isproxies;
import java.util.HashMap;
import java.util.Map;
import org.gcube.common.authorization.utils.manager.SecretManagerProvider;
public class GCoreISConfigurationProxyFactory {
private static final Map<String, GCoreISConfigurationProxy> isConfigurationProxies;
static {
isConfigurationProxies = new HashMap<>();
}
private static GCoreISConfigurationProxy find(String context) {
GCoreISConfigurationProxy isConfigurationProxy = new GCoreISConfigurationProxy(context);
return isConfigurationProxy;
}
public synchronized static GCoreISConfigurationProxy getInstance(String context) {
GCoreISConfigurationProxy isConfigurationProxy = isConfigurationProxies.get(context);
if(isConfigurationProxy == null) {
isConfigurationProxy = find(context);
isConfigurationProxies.put(context, isConfigurationProxy);
}
return isConfigurationProxy;
}
public static GCoreISConfigurationProxy getInstance() {
String context = SecretManagerProvider.instance.get().getContext();
return getInstance(context);
}
}