diff --git a/.gitignore b/.gitignore index 663b123..2d6630f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ target .classpath .project -/.DS_Store +/**/.DS_Store diff --git a/src/main/java/org/gcube/gcat/GCatInitializator.java b/src/main/java/org/gcube/gcat/GCatInitializator.java index 123ff60..0641ccb 100644 --- a/src/main/java/org/gcube/gcat/GCatInitializator.java +++ b/src/main/java/org/gcube/gcat/GCatInitializator.java @@ -3,8 +3,10 @@ package org.gcube.gcat; import java.io.IOException; import org.gcube.common.authorization.utils.manager.SecretManagerProvider; -import org.gcube.gcat.configuration.isproxies.FacetBasedISConfigurationProxy; -import org.gcube.gcat.configuration.isproxies.FacetBasedISConfigurationProxyFactory; +import org.gcube.gcat.configuration.CatalogueConfigurationFactory; +import org.gcube.gcat.configuration.isproxies.impl.FacetBasedISConfigurationProxy; +import org.gcube.gcat.configuration.isproxies.impl.FacetBasedISConfigurationProxyFactory; +import org.gcube.gcat.configuration.isproxies.impl.GCoreISConfigurationProxyFactory; import org.gcube.gcat.rest.RequestFilter; import org.gcube.smartgears.ApplicationManager; import org.gcube.smartgears.ContextProvider; @@ -22,6 +24,8 @@ public class GCatInitializator implements ApplicationManager { */ private static Logger logger = LoggerFactory.getLogger(GCatInitializator.class); + public static boolean initialised; + /** * {@inheritDoc} * The method discover the plugins available on classpath and their own @@ -49,8 +53,17 @@ public class GCatInitializator implements ApplicationManager { ApplicationContext applicationContext = ContextProvider.get(); String gcatEServiceID = applicationContext.id(); + try { - FacetBasedISConfigurationProxy facetBasedISConfigurationProxy = FacetBasedISConfigurationProxyFactory.getInstance(context); + FacetBasedISConfigurationProxyFactory fbigcpf = new FacetBasedISConfigurationProxyFactory(); + FacetBasedISConfigurationProxy facetBasedISConfigurationProxy = fbigcpf.getInstance(context); + if(!initialised) { + CatalogueConfigurationFactory.addISConfigurationProxyFactory(fbigcpf); + GCoreISConfigurationProxyFactory gcigcpf = new GCoreISConfigurationProxyFactory(); + CatalogueConfigurationFactory.addISConfigurationProxyFactory(gcigcpf); + facetBasedISConfigurationProxy.installQueryTemplate(); + initialised = true; + } facetBasedISConfigurationProxy.setGcatEServiceID(gcatEServiceID); facetBasedISConfigurationProxy.createCallsForToVirtualService(); }catch (Exception e) { @@ -58,6 +71,8 @@ public class GCatInitializator implements ApplicationManager { logger.trace("Gcat is not configured through the Facet Based IS in context {}. The reason is:\n", context, e); } + + logger.trace( "\n-------------------------------------------------------\n" + "GCat Started Successfully on context {}\n" @@ -97,7 +112,8 @@ public class GCatInitializator implements ApplicationManager { ApplicationContext applicationContext = ContextProvider.get(); String gcatEServiceID = applicationContext.id(); - FacetBasedISConfigurationProxy facetBasedISConfigurationProxy = FacetBasedISConfigurationProxyFactory.getInstance(context); + FacetBasedISGcatConfigurationProxyFactory fbigcpf = new FacetBasedISGcatConfigurationProxyFactory(); + FacetBasedGcatISConfigurationProxy facetBasedISConfigurationProxy = fbigcpf.getInstance(context); facetBasedISConfigurationProxy.setGcatEServiceID(gcatEServiceID); try { facetBasedISConfigurationProxy.deleteCallsForToVirtualService(); diff --git a/src/main/java/org/gcube/gcat/configuration/CatalogueConfigurationFactory.java b/src/main/java/org/gcube/gcat/configuration/CatalogueConfigurationFactory.java index a9bb3a5..2833198 100644 --- a/src/main/java/org/gcube/gcat/configuration/CatalogueConfigurationFactory.java +++ b/src/main/java/org/gcube/gcat/configuration/CatalogueConfigurationFactory.java @@ -1,58 +1,114 @@ package org.gcube.gcat.configuration; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; +import org.gcube.common.authorization.utils.manager.SecretManager; import org.gcube.common.authorization.utils.manager.SecretManagerProvider; -import org.gcube.gcat.configuration.isproxies.GCoreISConfigurationProxy; -import org.gcube.gcat.configuration.isproxies.GCoreISConfigurationProxyFactory; -import org.gcube.gcat.configuration.isproxies.FacetBasedISConfigurationProxyFactory; -import org.gcube.gcat.configuration.isproxies.FacetBasedISConfigurationProxy; +import org.gcube.common.authorization.utils.secret.Secret; +import org.gcube.gcat.configuration.isproxies.ISConfigurationProxy; +import org.gcube.gcat.configuration.isproxies.ISConfigurationProxyFactory; +import org.gcube.gcat.configuration.isproxies.impl.FacetBasedISConfigurationProxyFactory; +import org.gcube.gcat.configuration.isproxies.impl.GCoreISConfigurationProxyFactory; import org.gcube.gcat.configuration.service.ServiceCatalogueConfiguration; import org.gcube.gcat.persistence.ckan.CKANUserCache; +import org.gcube.gcat.utils.Constants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author Luca Frosini (ISTI - CNR) */ public class CatalogueConfigurationFactory { + private static final Logger logger = LoggerFactory.getLogger(CatalogueConfigurationFactory.class); + private static final Map catalogueConfigurations; + private static List> factories; + static { catalogueConfigurations = new HashMap<>(); + factories = new ArrayList<>(); + } + + private static List> getFactories(){ + if(factories.size()==0) { + factories.add(new FacetBasedISConfigurationProxyFactory()); + factories.add(new GCoreISConfigurationProxyFactory()); + } + return factories; + } + + public static void addISConfigurationProxyFactory(ISConfigurationProxyFactory icpf) { + factories.add(icpf); } private static ServiceCatalogueConfiguration load(String context) { ServiceCatalogueConfiguration serviceCatalogueConfiguration = null; + SecretManager secretManager = SecretManagerProvider.instance.get(); try { - FacetBasedISConfigurationProxy facetBasedISConfigurationProxy = FacetBasedISConfigurationProxyFactory.getInstance(context); - serviceCatalogueConfiguration = facetBasedISConfigurationProxy.getCatalogueConfiguration(); - } catch(Throwable e){ - GCoreISConfigurationProxy gCoreISConfigurationProxy = GCoreISConfigurationProxyFactory.getInstance(); - serviceCatalogueConfiguration = gCoreISConfigurationProxy.getCatalogueConfiguration(); + Secret secret = Constants.getCatalogueSecret(); + secretManager.startSession(secret); + + for(ISConfigurationProxyFactory icpf : getFactories()) { + try { + ISConfigurationProxy icp = icpf.getInstance(context); + + serviceCatalogueConfiguration = icp.getCatalogueConfiguration(); + logger.trace("The configuration has been read using {}.", icp.getClass().getSimpleName()); + }catch(Exception e){ + logger.warn("{} cannot be used to read {}. Reason is {}", icpf.getClass().getSimpleName(), ServiceCatalogueConfiguration.class.getSimpleName(), e.getMessage()); + } + } + + } catch(Exception e) { + logger.error("Unable to start session. Reason is " + e.getMessage()); + } finally { + secretManager.endSession(); + } + + if(serviceCatalogueConfiguration==null) { + throw new RuntimeException("Unable to load " + ServiceCatalogueConfiguration.class.getSimpleName() + " by using configured " + ISConfigurationProxyFactory.class.getSimpleName() + " i.e. " + getFactories()); } return serviceCatalogueConfiguration; } private static void purgeFromIS(String context) { - FacetBasedISConfigurationProxy restISConfigurationProxy = FacetBasedISConfigurationProxyFactory.getInstance(context); - restISConfigurationProxy.delete(); - - GCoreISConfigurationProxy gCoreISConfigurationProxy = GCoreISConfigurationProxyFactory.getInstance(); - gCoreISConfigurationProxy.delete(); + SecretManager secretManager = SecretManagerProvider.instance.get(); + try { + Secret secret = Constants.getCatalogueSecret(); + secretManager.startSession(secret); + for(ISConfigurationProxyFactory icpf : getFactories()) { + ISConfigurationProxy icp = icpf.getInstance(context); + icp.delete(); + } + } catch(Exception e) { + logger.error("Unable to start session. Reason is " + e.getMessage()); + } finally { + secretManager.endSession(); + } } private static void createOrUpdateOnIS(String context, ServiceCatalogueConfiguration catalogueConfiguration) throws Exception { - FacetBasedISConfigurationProxy restISConfigurationProxy = FacetBasedISConfigurationProxyFactory.getInstance(context); - restISConfigurationProxy.setCatalogueConfiguration(catalogueConfiguration); - restISConfigurationProxy.createOrUpdateOnIS(); - - GCoreISConfigurationProxy gCoreISConfigurationProxy = GCoreISConfigurationProxyFactory.getInstance(); - gCoreISConfigurationProxy.setCatalogueConfiguration(catalogueConfiguration); - gCoreISConfigurationProxy.createOrUpdateOnIS(); + SecretManager secretManager = SecretManagerProvider.instance.get(); + try { + Secret secret = Constants.getCatalogueSecret(); + secretManager.startSession(secret); + + for(ISConfigurationProxyFactory icpf : getFactories()) { + ISConfigurationProxy icp = icpf.getInstance(context); + icp.setCatalogueConfiguration(catalogueConfiguration); + icp.createOrUpdateOnIS(); + } + + } finally { + secretManager.endSession(); + } } - public synchronized static ServiceCatalogueConfiguration getInstance() { String context = SecretManagerProvider.instance.get().getContext(); ServiceCatalogueConfiguration catalogueConfiguration = catalogueConfigurations.get(context); diff --git a/src/main/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxyFactory.java b/src/main/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxyFactory.java deleted file mode 100644 index 8ef85d3..0000000 --- a/src/main/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxyFactory.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.gcube.gcat.configuration.isproxies; - -import java.util.HashMap; -import java.util.Map; - -import org.gcube.common.authorization.utils.manager.SecretManagerProvider; - -public class FacetBasedISConfigurationProxyFactory { - - private static final Map isConfigurationProxies; - - static { - isConfigurationProxies = new HashMap<>(); - } - - private static FacetBasedISConfigurationProxy find(String context) { - FacetBasedISConfigurationProxy isConfigurationProxy = new FacetBasedISConfigurationProxy(context); - return isConfigurationProxy; - } - - public synchronized static FacetBasedISConfigurationProxy getInstance(String context) { - FacetBasedISConfigurationProxy isConfigurationProxy = isConfigurationProxies.get(context); - if(isConfigurationProxy == null) { - isConfigurationProxy = find(context); - isConfigurationProxies.put(context, isConfigurationProxy); - } - return isConfigurationProxy; - } - - public static FacetBasedISConfigurationProxy getInstance() { - String context = SecretManagerProvider.instance.get().getContext(); - return getInstance(context); - } - -} diff --git a/src/main/java/org/gcube/gcat/configuration/isproxies/GCoreISConfigurationProxyFactory.java b/src/main/java/org/gcube/gcat/configuration/isproxies/GCoreISConfigurationProxyFactory.java deleted file mode 100644 index 79afc93..0000000 --- a/src/main/java/org/gcube/gcat/configuration/isproxies/GCoreISConfigurationProxyFactory.java +++ /dev/null @@ -1,35 +0,0 @@ -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 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); - } - -} diff --git a/src/main/java/org/gcube/gcat/configuration/isproxies/ISConfigurationProxyFactory.java b/src/main/java/org/gcube/gcat/configuration/isproxies/ISConfigurationProxyFactory.java new file mode 100644 index 0000000..f58007c --- /dev/null +++ b/src/main/java/org/gcube/gcat/configuration/isproxies/ISConfigurationProxyFactory.java @@ -0,0 +1,36 @@ +package org.gcube.gcat.configuration.isproxies; + +import java.util.HashMap; +import java.util.Map; + +import org.gcube.common.authorization.utils.manager.SecretManagerProvider; + +/** + * @author Luca Frosini (ISTI - CNR) + */ +public abstract class ISConfigurationProxyFactory> { + + protected final Map isConfigurationProxies; + + public ISConfigurationProxyFactory() { + this.isConfigurationProxies = new HashMap<>(); + } + + protected abstract ISCP newInstance(String context); + + public synchronized ISCP getInstance(String context) { + ISCP isConfigurationProxy = isConfigurationProxies.get(context); + if(isConfigurationProxy == null) { + isConfigurationProxy = newInstance(context); + isConfigurationProxies.put(context, isConfigurationProxy); + } + return isConfigurationProxy; + } + + public ISCP getInstance() { + String context = SecretManagerProvider.instance.get().getContext(); + return getInstance(context); + } + +} + diff --git a/src/main/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxy.java b/src/main/java/org/gcube/gcat/configuration/isproxies/impl/FacetBasedISConfigurationProxy.java similarity index 91% rename from src/main/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxy.java rename to src/main/java/org/gcube/gcat/configuration/isproxies/impl/FacetBasedISConfigurationProxy.java index 9c805a2..f2544c9 100644 --- a/src/main/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxy.java +++ b/src/main/java/org/gcube/gcat/configuration/isproxies/impl/FacetBasedISConfigurationProxy.java @@ -1,4 +1,4 @@ -package org.gcube.gcat.configuration.isproxies; +package org.gcube.gcat.configuration.isproxies.impl; import java.io.File; import java.io.FileReader; @@ -18,6 +18,7 @@ import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.com.fasterxml.jackson.databind.ObjectMapper; import org.gcube.com.fasterxml.jackson.databind.node.ObjectNode; import org.gcube.gcat.api.configuration.CatalogueConfiguration; +import org.gcube.gcat.configuration.isproxies.ISConfigurationProxy; import org.gcube.gcat.configuration.service.FacetBasedISServiceCatalogueConfiguration; import org.gcube.gcat.configuration.service.ServiceCKANDB; import org.gcube.gcat.configuration.service.ServiceCatalogueConfiguration; @@ -60,61 +61,52 @@ public class FacetBasedISConfigurationProxy extends ISConfigurationProxy> callsForList = rrqtc.run(queryTemplateName, objectNode); + List> callsForList = rrqtc.run(queryTemplate.getName(), objectNode); return callsForList; } diff --git a/src/main/java/org/gcube/gcat/configuration/isproxies/impl/FacetBasedISConfigurationProxyFactory.java b/src/main/java/org/gcube/gcat/configuration/isproxies/impl/FacetBasedISConfigurationProxyFactory.java new file mode 100644 index 0000000..2c941ef --- /dev/null +++ b/src/main/java/org/gcube/gcat/configuration/isproxies/impl/FacetBasedISConfigurationProxyFactory.java @@ -0,0 +1,20 @@ +package org.gcube.gcat.configuration.isproxies.impl; + +import org.gcube.gcat.configuration.isproxies.ISConfigurationProxyFactory; + +/** + * @author Luca Frosini (ISTI - CNR) + */ +public class FacetBasedISConfigurationProxyFactory extends ISConfigurationProxyFactory { + + public FacetBasedISConfigurationProxyFactory() { + super(); + } + + @Override + protected FacetBasedISConfigurationProxy newInstance(String context) { + return new FacetBasedISConfigurationProxy(context); + } + + +} diff --git a/src/main/java/org/gcube/gcat/configuration/isproxies/GCoreISConfigurationProxy.java b/src/main/java/org/gcube/gcat/configuration/isproxies/impl/GCoreISConfigurationProxy.java similarity index 99% rename from src/main/java/org/gcube/gcat/configuration/isproxies/GCoreISConfigurationProxy.java rename to src/main/java/org/gcube/gcat/configuration/isproxies/impl/GCoreISConfigurationProxy.java index e1892d8..e70585a 100644 --- a/src/main/java/org/gcube/gcat/configuration/isproxies/GCoreISConfigurationProxy.java +++ b/src/main/java/org/gcube/gcat/configuration/isproxies/impl/GCoreISConfigurationProxy.java @@ -1,4 +1,4 @@ -package org.gcube.gcat.configuration.isproxies; +package org.gcube.gcat.configuration.isproxies.impl; import static org.gcube.resources.discovery.icclient.ICFactory.clientFor; import static org.gcube.resources.discovery.icclient.ICFactory.queryFor; @@ -33,6 +33,7 @@ import org.gcube.common.resources.gcore.utils.Group; import org.gcube.gcat.api.GCatConstants; import org.gcube.gcat.api.configuration.CatalogueConfiguration; import org.gcube.gcat.configuration.Version; +import org.gcube.gcat.configuration.isproxies.ISConfigurationProxy; import org.gcube.gcat.configuration.service.ServiceCKANDB; import org.gcube.gcat.configuration.service.ServiceCatalogueConfiguration; import org.gcube.informationsystem.publisher.RegistryPublisher; diff --git a/src/main/java/org/gcube/gcat/configuration/isproxies/impl/GCoreISConfigurationProxyFactory.java b/src/main/java/org/gcube/gcat/configuration/isproxies/impl/GCoreISConfigurationProxyFactory.java new file mode 100644 index 0000000..fc12dcf --- /dev/null +++ b/src/main/java/org/gcube/gcat/configuration/isproxies/impl/GCoreISConfigurationProxyFactory.java @@ -0,0 +1,23 @@ +package org.gcube.gcat.configuration.isproxies.impl; + +import org.gcube.gcat.configuration.isproxies.ISConfigurationProxyFactory; + +/** + * @author Luca Frosini (ISTI - CNR) + */ +public class GCoreISConfigurationProxyFactory extends ISConfigurationProxyFactory { + + public GCoreISConfigurationProxyFactory() { + super(); + } + + @Override + protected GCoreISConfigurationProxy newInstance(String context) { + GCoreISConfigurationProxy isConfigurationProxy = new GCoreISConfigurationProxy(context); + return isConfigurationProxy; + } + + + + +} diff --git a/src/main/java/org/gcube/gcat/configuration/service/FacetBasedISServiceCatalogueConfiguration.java b/src/main/java/org/gcube/gcat/configuration/service/FacetBasedISServiceCatalogueConfiguration.java index 9c88aad..329c410 100644 --- a/src/main/java/org/gcube/gcat/configuration/service/FacetBasedISServiceCatalogueConfiguration.java +++ b/src/main/java/org/gcube/gcat/configuration/service/FacetBasedISServiceCatalogueConfiguration.java @@ -5,7 +5,7 @@ import javax.ws.rs.InternalServerErrorException; import org.gcube.com.fasterxml.jackson.annotation.JsonGetter; import org.gcube.com.fasterxml.jackson.annotation.JsonIgnore; import org.gcube.com.fasterxml.jackson.annotation.JsonProperty; -import org.gcube.gcat.configuration.isproxies.FacetBasedISConfigurationProxy; +import org.gcube.gcat.configuration.isproxies.impl.FacetBasedISConfigurationProxy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java b/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java index 1b9ea6e..085ae38 100644 --- a/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java +++ b/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java @@ -123,7 +123,7 @@ public class CKANPackage extends CKAN implements Moderated { protected final CKANUser ckanUser; - protected final CatalogueConfiguration configuration; + protected CatalogueConfiguration configuration; protected boolean updateOperation; @@ -141,24 +141,28 @@ public class CKANPackage extends CKAN implements Moderated { protected boolean keepModerationExtraProperties; public CKANPackage() { + this(CatalogueConfigurationFactory.getInstance()); + } + + protected CKANPackage(CatalogueConfiguration configuration) { super(); - LIST = ITEM_LIST; - CREATE = ITEM_CREATE; - READ = ITEM_SHOW; - UPDATE = ITEM_UPDATE; - PATCH = ITEM_PATCH; - DELETE = ITEM_DELETE; - PURGE = ITEM_PURGE; - managedResources = new ArrayList(); + this.LIST = ITEM_LIST; + this.CREATE = ITEM_CREATE; + this.READ = ITEM_SHOW; + this.UPDATE = ITEM_UPDATE; + this.PATCH = ITEM_PATCH; + this.DELETE = ITEM_DELETE; + this.PURGE = ITEM_PURGE; - configuration = CatalogueConfigurationFactory.getInstance(); + this.managedResources = new ArrayList(); - ckanUser = CKANUserCache.getCurrrentCKANUser(); + this.configuration = configuration; - updateOperation = false; - keepModerationExtraProperties = true; - + this.ckanUser = CKANUserCache.getCurrrentCKANUser(); + + this.updateOperation = false; + this.keepModerationExtraProperties = true; } public void setKeepModerationExtraProperties(boolean keepModerationExtraProperties) { @@ -364,7 +368,7 @@ public class CKANPackage extends CKAN implements Moderated { /* * When a client provides the 'capacity' field as 'private', the item is not counted in the * total number of items in the GUI. We want to avoid such a behavior - * See https://support.d4science.org/issues/16410 + * See https://support.d4science.org/issues/16410 */ objectNode.remove(CAPACITY_KEY); } diff --git a/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackageTrash.java b/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackageTrash.java index 13b4d0e..8c06146 100644 --- a/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackageTrash.java +++ b/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackageTrash.java @@ -53,11 +53,15 @@ public class CKANPackageTrash { protected boolean ownOnly; public CKANPackageTrash() { - mapper = new ObjectMapper(); - ckanUser = CKANUserCache.getCurrrentCKANUser(); - configuration = CatalogueConfigurationFactory.getInstance(); - supportedOrganizations = configuration.getSupportedOrganizations(); - ownOnly = true; + this(CatalogueConfigurationFactory.getInstance()); + } + + protected CKANPackageTrash(CatalogueConfiguration configuration) { + this.mapper = new ObjectMapper(); + this.ckanUser = CKANUserCache.getCurrrentCKANUser(); + this.configuration = configuration; + this.supportedOrganizations = configuration.getSupportedOrganizations(); + this.ownOnly = true; } public void setOwnOnly(boolean ownOnly) { diff --git a/src/main/java/org/gcube/gcat/persistence/ckan/CKANUser.java b/src/main/java/org/gcube/gcat/persistence/ckan/CKANUser.java index f74d722..5732dce 100644 --- a/src/main/java/org/gcube/gcat/persistence/ckan/CKANUser.java +++ b/src/main/java/org/gcube/gcat/persistence/ckan/CKANUser.java @@ -54,16 +54,23 @@ public class CKANUser extends CKAN { protected Role role; protected Boolean catalogueModerator; + protected CatalogueConfiguration configuration; + public CKANUser() { + this(CatalogueConfigurationFactory.getInstance()); + } + + protected CKANUser(CatalogueConfiguration configuration) { super(); - LIST = USER_LIST; - CREATE = USER_CREATE; - READ = USER_SHOW; - UPDATE = USER_UPDATE; - PATCH = null; - DELETE = USER_DELETE; - PURGE = null; - catalogueModerator = null; + this.LIST = USER_LIST; + this.CREATE = USER_CREATE; + this.READ = USER_SHOW; + this.UPDATE = USER_UPDATE; + this.PATCH = null; + this.DELETE = USER_DELETE; + this.PURGE = null; + this.catalogueModerator = null; + this.configuration = configuration; } public void setName(String name) { diff --git a/src/test/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxyTest.java b/src/test/java/org/gcube/gcat/configuration/isproxies/impl/FacetBasedISConfigurationProxyTest.java similarity index 87% rename from src/test/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxyTest.java rename to src/test/java/org/gcube/gcat/configuration/isproxies/impl/FacetBasedISConfigurationProxyTest.java index 50f4649..429fcf0 100644 --- a/src/test/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxyTest.java +++ b/src/test/java/org/gcube/gcat/configuration/isproxies/impl/FacetBasedISConfigurationProxyTest.java @@ -1,4 +1,4 @@ -package org.gcube.gcat.configuration.isproxies; +package org.gcube.gcat.configuration.isproxies.impl; import java.util.List; @@ -24,7 +24,8 @@ public class FacetBasedISConfigurationProxyTest extends ContextTest { @Ignore @Test public void test() throws Exception { - FacetBasedISConfigurationProxy fbiscp = FacetBasedISConfigurationProxyFactory.getInstance(); + FacetBasedISConfigurationProxyFactory facetBasedISConfigurationProxyFactory = new FacetBasedISConfigurationProxyFactory(); + FacetBasedISConfigurationProxy fbiscp = facetBasedISConfigurationProxyFactory.getInstance(); fbiscp.setGcatEServiceID("f00bbacd-92b8-46d7-b41c-828f71a78753"); CallsFor callsFor = fbiscp.createCallsForToVirtualService(); logger.debug("Created {}", ElementMapper.marshal(callsFor)); diff --git a/src/test/java/org/gcube/gcat/configuration/isproxies/GCoreISConfigurationProxyTest.java b/src/test/java/org/gcube/gcat/configuration/isproxies/impl/GCoreISConfigurationProxyTest.java similarity index 99% rename from src/test/java/org/gcube/gcat/configuration/isproxies/GCoreISConfigurationProxyTest.java rename to src/test/java/org/gcube/gcat/configuration/isproxies/impl/GCoreISConfigurationProxyTest.java index f145b60..8de9ce5 100644 --- a/src/test/java/org/gcube/gcat/configuration/isproxies/GCoreISConfigurationProxyTest.java +++ b/src/test/java/org/gcube/gcat/configuration/isproxies/impl/GCoreISConfigurationProxyTest.java @@ -1,4 +1,4 @@ -package org.gcube.gcat.configuration.isproxies; +package org.gcube.gcat.configuration.isproxies.impl; import java.io.BufferedReader; import java.io.InputStream; diff --git a/src/test/java/org/gcube/gcat/persistence/grsf/GRSFUtilities.java b/src/test/java/org/gcube/gcat/persistence/grsf/GRSFUtilities.java index 4f648aa..aa605f9 100644 --- a/src/test/java/org/gcube/gcat/persistence/grsf/GRSFUtilities.java +++ b/src/test/java/org/gcube/gcat/persistence/grsf/GRSFUtilities.java @@ -236,7 +236,7 @@ public class GRSFUtilities extends ContextTest { } } - // @Test + @Test public void manageOrganizations() throws JsonProcessingException { String context = SecretManagerProvider.instance.get().getContext(); ScopeBean scopeBean = new ScopeBean(context); @@ -260,7 +260,7 @@ public class GRSFUtilities extends ContextTest { node.put("name", org.toLowerCase()); String json = objectMapper.writeValueAsString(node); try { - // ckanOrganization.create(json); + ckanOrganization.create(json); // ckanOrganization.purge(); }catch (Exception e) {