Rationalizing configuration got from IS
This commit is contained in:
parent
7051a5b952
commit
bf637e439f
|
@ -4,22 +4,28 @@ import static org.gcube.resources.discovery.icclient.ICFactory.clientFor;
|
||||||
import static org.gcube.resources.discovery.icclient.ICFactory.queryFor;
|
import static org.gcube.resources.discovery.icclient.ICFactory.queryFor;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.ws.rs.InternalServerErrorException;
|
import javax.ws.rs.InternalServerErrorException;
|
||||||
import javax.ws.rs.WebApplicationException;
|
import javax.ws.rs.WebApplicationException;
|
||||||
|
|
||||||
import org.gcube.common.encryption.encrypter.StringEncrypter;
|
import org.gcube.common.encryption.encrypter.StringEncrypter;
|
||||||
|
import org.gcube.common.resources.gcore.GenericResource;
|
||||||
import org.gcube.common.resources.gcore.ServiceEndpoint;
|
import org.gcube.common.resources.gcore.ServiceEndpoint;
|
||||||
import org.gcube.common.resources.gcore.ServiceEndpoint.AccessPoint;
|
import org.gcube.common.resources.gcore.ServiceEndpoint.AccessPoint;
|
||||||
import org.gcube.common.resources.gcore.ServiceEndpoint.Property;
|
import org.gcube.common.resources.gcore.ServiceEndpoint.Property;
|
||||||
|
import org.gcube.common.scope.impl.ScopeBean;
|
||||||
import org.gcube.gcat.utils.ContextUtility;
|
import org.gcube.gcat.utils.ContextUtility;
|
||||||
import org.gcube.resources.discovery.client.api.DiscoveryClient;
|
import org.gcube.resources.discovery.client.api.DiscoveryClient;
|
||||||
import org.gcube.resources.discovery.client.queries.api.SimpleQuery;
|
import org.gcube.resources.discovery.client.queries.api.SimpleQuery;
|
||||||
|
import org.gcube.resources.discovery.icclient.ICFactory;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.w3c.dom.NodeList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Luca Frosini (ISTI - CNR)
|
* @author Luca Frosini (ISTI - CNR)
|
||||||
|
@ -39,6 +45,7 @@ public class CKANInstance {
|
||||||
private final static String SOCIAL_POST = "SOCIAL_POST";
|
private final static String SOCIAL_POST = "SOCIAL_POST";
|
||||||
private final static String ALERT_USERS_ON_POST_CREATION = "ALERT_USERS_ON_POST_CREATION";
|
private final static String ALERT_USERS_ON_POST_CREATION = "ALERT_USERS_ON_POST_CREATION";
|
||||||
private final static String URL_RESOLVER = "URL_RESOLVER";
|
private final static String URL_RESOLVER = "URL_RESOLVER";
|
||||||
|
private final static String MODERATION_ENABLED_KEY = "MODERATION_ENABLED";
|
||||||
|
|
||||||
private static final Map<String,CKANInstance> ckanInstancePerScope;
|
private static final Map<String,CKANInstance> ckanInstancePerScope;
|
||||||
|
|
||||||
|
@ -48,6 +55,15 @@ public class CKANInstance {
|
||||||
protected boolean notificationToUsersEnabled;
|
protected boolean notificationToUsersEnabled;
|
||||||
protected String uriResolverURL;
|
protected String uriResolverURL;
|
||||||
|
|
||||||
|
protected boolean moderationEnabled;
|
||||||
|
|
||||||
|
protected final String currentContext;
|
||||||
|
protected final ScopeBean currentScopeBean;
|
||||||
|
|
||||||
|
protected final String currentOrganizationName;
|
||||||
|
protected final Set<String> supportedOrganizations;
|
||||||
|
|
||||||
|
|
||||||
static {
|
static {
|
||||||
ckanInstancePerScope = new HashMap<String,CKANInstance>();
|
ckanInstancePerScope = new HashMap<String,CKANInstance>();
|
||||||
}
|
}
|
||||||
|
@ -62,6 +78,14 @@ public class CKANInstance {
|
||||||
return ckanInstance;
|
return ckanInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private CKANInstance() {
|
||||||
|
currentContext = ContextUtility.getCurrentContext();
|
||||||
|
currentScopeBean = new ScopeBean(currentContext);
|
||||||
|
currentOrganizationName = CKANPackage.getOrganizationName(currentScopeBean);
|
||||||
|
supportedOrganizations = getSupportedOrganizationsFromIS();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve endpoints information from IS for DataCatalogue URL
|
* Retrieve endpoints information from IS for DataCatalogue URL
|
||||||
* @return list of endpoints for ckan data catalogue
|
* @return list of endpoints for ckan data catalogue
|
||||||
|
@ -153,6 +177,15 @@ public class CKANInstance {
|
||||||
uriResolverURL = accessPoint.propertyMap().get(URL_RESOLVER).value();
|
uriResolverURL = accessPoint.propertyMap().get(URL_RESOLVER).value();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
moderationEnabled = false;
|
||||||
|
if(accessPoint.propertyMap().containsKey(MODERATION_ENABLED_KEY)) {
|
||||||
|
if(accessPoint.propertyMap().get(MODERATION_ENABLED_KEY).value().trim()
|
||||||
|
.equalsIgnoreCase("true")) {
|
||||||
|
moderationEnabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch(WebApplicationException e) {
|
} catch(WebApplicationException e) {
|
||||||
|
@ -163,6 +196,48 @@ public class CKANInstance {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static final String GENERIC_RESOURCE_SECONDARY_TYPE_FOR_ORGANIZATIONS = "ApplicationProfile";
|
||||||
|
public static final String GENERIC_RESOURCE_NAME_FOR_ORGANIZATIONS = "Supported CKAN Organizations";
|
||||||
|
public static final String GENERIC_RESOURCE_TAG_NAME = "CKANOrganization";
|
||||||
|
public static final String GENERIC_RESOURCE_TAG_NAME_PLURAL = "CKANOrganizations";
|
||||||
|
|
||||||
|
protected Set<String> getSupportedOrganizationsFromIS() {
|
||||||
|
Set<String> supportedOrganizations = new HashSet<>();
|
||||||
|
|
||||||
|
SimpleQuery query = ICFactory.queryFor(GenericResource.class);
|
||||||
|
query.addCondition(String.format("$resource/Profile/SecondaryType/text() eq '%s'",
|
||||||
|
GENERIC_RESOURCE_SECONDARY_TYPE_FOR_ORGANIZATIONS));
|
||||||
|
query.addCondition(
|
||||||
|
String.format("$resource/Profile/Name/text() eq '%s'", GENERIC_RESOURCE_NAME_FOR_ORGANIZATIONS));
|
||||||
|
|
||||||
|
DiscoveryClient<GenericResource> client = ICFactory.clientFor(GenericResource.class);
|
||||||
|
List<GenericResource> resources = client.submit(query);
|
||||||
|
|
||||||
|
if(resources == null || resources.size() == 0) {
|
||||||
|
logger.info(
|
||||||
|
"{} with SecondaryType {} and Name %s not found. Item will be only be created in {} CKAN organization",
|
||||||
|
GenericResource.class.getSimpleName(), GENERIC_RESOURCE_SECONDARY_TYPE_FOR_ORGANIZATIONS,
|
||||||
|
GENERIC_RESOURCE_NAME_FOR_ORGANIZATIONS, currentOrganizationName);
|
||||||
|
supportedOrganizations.add(currentOrganizationName);
|
||||||
|
} else {
|
||||||
|
GenericResource genericResource = resources.get(0);
|
||||||
|
NodeList nodeList = genericResource.profile().body().getChildNodes();
|
||||||
|
if(nodeList != null && nodeList.getLength() > 0) {
|
||||||
|
for(int i = 0; i < nodeList.getLength(); i++) {
|
||||||
|
NodeList nl = nodeList.item(i).getChildNodes();
|
||||||
|
String organization = nl.item(0).getNodeValue();
|
||||||
|
supportedOrganizations.add(organization);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.debug("Supported CKAN Organization for current Context ({}) are {}", currentContext,
|
||||||
|
supportedOrganizations);
|
||||||
|
|
||||||
|
return supportedOrganizations;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public String getUriResolverURL() throws Exception {
|
public String getUriResolverURL() throws Exception {
|
||||||
return uriResolverURL;
|
return uriResolverURL;
|
||||||
}
|
}
|
||||||
|
@ -179,8 +254,37 @@ public class CKANInstance {
|
||||||
return notificationToUsersEnabled;
|
return notificationToUsersEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isModerationEnabled() {
|
||||||
|
return moderationEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
public String getSysAdminToken() throws Exception {
|
public String getSysAdminToken() throws Exception {
|
||||||
return sysAdminToken;
|
return sysAdminToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getCurrentContext() {
|
||||||
|
return currentContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public ScopeBean getCurrentScopeBean() {
|
||||||
|
return currentScopeBean;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getCurrentOrganizationName() {
|
||||||
|
return currentOrganizationName;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Set<String> getSupportedOrganizations() {
|
||||||
|
return supportedOrganizations;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setModerationEnabled(boolean moderationEnabled) {
|
||||||
|
this.moderationEnabled = moderationEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,25 +17,18 @@ import javax.ws.rs.WebApplicationException;
|
||||||
import javax.ws.rs.core.MultivaluedMap;
|
import javax.ws.rs.core.MultivaluedMap;
|
||||||
import javax.ws.rs.core.Response.Status;
|
import javax.ws.rs.core.Response.Status;
|
||||||
|
|
||||||
import org.gcube.common.resources.gcore.GenericResource;
|
import org.gcube.com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import org.gcube.com.fasterxml.jackson.databind.node.ArrayNode;
|
||||||
|
import org.gcube.com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
import org.gcube.common.scope.impl.ScopeBean;
|
import org.gcube.common.scope.impl.ScopeBean;
|
||||||
import org.gcube.common.scope.impl.ScopeBean.Type;
|
import org.gcube.common.scope.impl.ScopeBean.Type;
|
||||||
import org.gcube.gcat.api.GCatConstants;
|
import org.gcube.gcat.api.GCatConstants;
|
||||||
import org.gcube.gcat.oldutils.Validator;
|
import org.gcube.gcat.oldutils.Validator;
|
||||||
import org.gcube.gcat.profile.MetadataUtility;
|
import org.gcube.gcat.profile.MetadataUtility;
|
||||||
import org.gcube.gcat.social.SocialPost;
|
import org.gcube.gcat.social.SocialPost;
|
||||||
import org.gcube.gcat.utils.ContextUtility;
|
|
||||||
import org.gcube.gcat.utils.URIResolver;
|
import org.gcube.gcat.utils.URIResolver;
|
||||||
import org.gcube.resources.discovery.client.api.DiscoveryClient;
|
|
||||||
import org.gcube.resources.discovery.client.queries.api.SimpleQuery;
|
|
||||||
import org.gcube.resources.discovery.icclient.ICFactory;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.w3c.dom.NodeList;
|
|
||||||
|
|
||||||
import org.gcube.com.fasterxml.jackson.databind.JsonNode;
|
|
||||||
import org.gcube.com.fasterxml.jackson.databind.node.ArrayNode;
|
|
||||||
import org.gcube.com.fasterxml.jackson.databind.node.ObjectNode;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Luca Frosini (ISTI - CNR)
|
* @author Luca Frosini (ISTI - CNR)
|
||||||
|
@ -77,11 +70,6 @@ public class CKANPackage extends CKAN {
|
||||||
ORGANIZATION_REGEX_PATTERN = Pattern.compile(ORGANIZATION_REGEX);
|
ORGANIZATION_REGEX_PATTERN = Pattern.compile(ORGANIZATION_REGEX);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final String GENERIC_RESOURCE_SECONDARY_TYPE_FOR_ORGANIZATIONS = "ApplicationProfile";
|
|
||||||
public static final String GENERIC_RESOURCE_NAME_FOR_ORGANIZATIONS = "Supported CKAN Organizations";
|
|
||||||
public static final String GENERIC_RESOURCE_TAG_NAME = "CKANOrganization";
|
|
||||||
public static final String GENERIC_RESOURCE_TAG_NAME_PLURAL = "CKANOrganizations";
|
|
||||||
|
|
||||||
protected static final String LICENSE_KEY = "license_id";
|
protected static final String LICENSE_KEY = "license_id";
|
||||||
|
|
||||||
protected static final String EXTRAS_ITEM_URL_KEY = "Item URL";
|
protected static final String EXTRAS_ITEM_URL_KEY = "Item URL";
|
||||||
|
@ -118,16 +106,14 @@ public class CKANPackage extends CKAN {
|
||||||
|
|
||||||
protected String itemID;
|
protected String itemID;
|
||||||
|
|
||||||
protected final ScopeBean currentScopeBean;
|
|
||||||
protected final String currentContext;
|
|
||||||
|
|
||||||
protected final CKANUser ckanUser;
|
protected final CKANUser ckanUser;
|
||||||
|
|
||||||
protected String currentOrganizationName;
|
protected final CKANInstance ckanInstance;
|
||||||
protected Set<String> supportedOrganizations;
|
protected final Set<String> supportedOrganizations;
|
||||||
|
|
||||||
public CKANPackage() {
|
public CKANPackage() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
LIST = ITEM_LIST;
|
LIST = ITEM_LIST;
|
||||||
CREATE = ITEM_CREATE;
|
CREATE = ITEM_CREATE;
|
||||||
READ = ITEM_SHOW;
|
READ = ITEM_SHOW;
|
||||||
|
@ -136,55 +122,16 @@ public class CKANPackage extends CKAN {
|
||||||
DELETE = ITEM_DELETE;
|
DELETE = ITEM_DELETE;
|
||||||
PURGE = ITEM_PURGE;
|
PURGE = ITEM_PURGE;
|
||||||
managedResources = new ArrayList<CKANResource>();
|
managedResources = new ArrayList<CKANResource>();
|
||||||
currentContext = ContextUtility.getCurrentContext();
|
|
||||||
currentScopeBean = new ScopeBean(currentContext);
|
|
||||||
ckanUser = CKANUserCache.getCurrrentCKANUser();
|
ckanUser = CKANUserCache.getCurrrentCKANUser();
|
||||||
getSupportedOrganizationsFromIS();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Set<String> getSupportedOrganizationsFromIS() {
|
ckanInstance = CKANInstance.getInstance();
|
||||||
if(supportedOrganizations == null) {
|
supportedOrganizations = ckanInstance.getSupportedOrganizations();
|
||||||
|
|
||||||
// TODO Add a VRE based cache
|
|
||||||
|
|
||||||
supportedOrganizations = new HashSet<>();
|
|
||||||
|
|
||||||
SimpleQuery query = ICFactory.queryFor(GenericResource.class);
|
|
||||||
query.addCondition(String.format("$resource/Profile/SecondaryType/text() eq '%s'",
|
|
||||||
GENERIC_RESOURCE_SECONDARY_TYPE_FOR_ORGANIZATIONS));
|
|
||||||
query.addCondition(
|
|
||||||
String.format("$resource/Profile/Name/text() eq '%s'", GENERIC_RESOURCE_NAME_FOR_ORGANIZATIONS));
|
|
||||||
|
|
||||||
DiscoveryClient<GenericResource> client = ICFactory.clientFor(GenericResource.class);
|
|
||||||
List<GenericResource> resources = client.submit(query);
|
|
||||||
|
|
||||||
if(resources == null || resources.size() == 0) {
|
|
||||||
logger.info(
|
|
||||||
"{} with SecondaryType {} and Name %s not found. Item will be only be created in {} CKAN organization",
|
|
||||||
GenericResource.class.getSimpleName(), GENERIC_RESOURCE_SECONDARY_TYPE_FOR_ORGANIZATIONS,
|
|
||||||
GENERIC_RESOURCE_NAME_FOR_ORGANIZATIONS, getOrganizationName());
|
|
||||||
supportedOrganizations.add(getOrganizationName());
|
|
||||||
} else {
|
|
||||||
GenericResource genericResource = resources.get(0);
|
|
||||||
NodeList nodeList = genericResource.profile().body().getChildNodes();
|
|
||||||
if(nodeList != null && nodeList.getLength() > 0) {
|
|
||||||
for(int i = 0; i < nodeList.getLength(); i++) {
|
|
||||||
NodeList nl = nodeList.item(i).getChildNodes();
|
|
||||||
String organization = nl.item(0).getNodeValue();
|
|
||||||
supportedOrganizations.add(organization);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
for(String supportedOrganization : supportedOrganizations) {
|
for(String supportedOrganization : supportedOrganizations) {
|
||||||
ckanUser.addUserToOrganization(supportedOrganization);
|
ckanUser.addUserToOrganization(supportedOrganization);
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug("Supported CKAN Organization for current Context ({}) are {}", currentContext,
|
|
||||||
supportedOrganizations);
|
|
||||||
return supportedOrganizations;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -195,13 +142,6 @@ public class CKANPackage extends CKAN {
|
||||||
return contextName.toLowerCase().replace(" ", "_");
|
return contextName.toLowerCase().replace(" ", "_");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String getOrganizationName() {
|
|
||||||
if(currentOrganizationName == null) {
|
|
||||||
this.currentOrganizationName = CKANPackage.getOrganizationName(currentScopeBean);
|
|
||||||
}
|
|
||||||
return currentOrganizationName;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected CKANOrganization checkGotOrganization(String gotOrganization) throws ForbiddenException {
|
protected CKANOrganization checkGotOrganization(String gotOrganization) throws ForbiddenException {
|
||||||
if(!supportedOrganizations.contains(gotOrganization)) {
|
if(!supportedOrganizations.contains(gotOrganization)) {
|
||||||
String error = String.format(
|
String error = String.format(
|
||||||
|
@ -226,7 +166,7 @@ public class CKANPackage extends CKAN {
|
||||||
|
|
||||||
if(ckanOrganization == null) {
|
if(ckanOrganization == null) {
|
||||||
// owner organization must be specified if the token belongs to a VRE
|
// owner organization must be specified if the token belongs to a VRE
|
||||||
String organizationFromContext = getOrganizationName();
|
String organizationFromContext = ckanInstance.getCurrentOrganizationName();
|
||||||
ckanOrganization = checkGotOrganization(organizationFromContext);
|
ckanOrganization = checkGotOrganization(organizationFromContext);
|
||||||
objectNode.put(OWNER_ORG_KEY, organizationFromContext);
|
objectNode.put(OWNER_ORG_KEY, organizationFromContext);
|
||||||
}
|
}
|
||||||
|
@ -613,7 +553,7 @@ public class CKANPackage extends CKAN {
|
||||||
}
|
}
|
||||||
|
|
||||||
String catalogueItemURL = "";
|
String catalogueItemURL = "";
|
||||||
if(currentScopeBean.is(Type.VRE)) {
|
if(ckanInstance.getCurrentScopeBean().is(Type.VRE)) {
|
||||||
catalogueItemURL = addItemURLViaResolver(jsonNode);
|
catalogueItemURL = addItemURLViaResolver(jsonNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -629,7 +569,7 @@ public class CKANPackage extends CKAN {
|
||||||
// Actions performed after a package has been correctly created on ckan.
|
// Actions performed after a package has been correctly created on ckan.
|
||||||
String title = result.get(TITLE_KEY).asText();
|
String title = result.get(TITLE_KEY).asText();
|
||||||
|
|
||||||
if(currentScopeBean.is(Type.VRE)) {
|
if(ckanInstance.getCurrentScopeBean().is(Type.VRE)) {
|
||||||
sendSocialPost(title, catalogueItemURL);
|
sendSocialPost(title, catalogueItemURL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -145,8 +145,8 @@ public class CKANPackageTest extends ContextTest {
|
||||||
|
|
||||||
protected void createGenericResource(String xml) throws Exception {
|
protected void createGenericResource(String xml) throws Exception {
|
||||||
GenericResource genericResource = instantiateGenericResource(
|
GenericResource genericResource = instantiateGenericResource(
|
||||||
CKANPackage.GENERIC_RESOURCE_SECONDARY_TYPE_FOR_ORGANIZATIONS,
|
CKANInstance.GENERIC_RESOURCE_SECONDARY_TYPE_FOR_ORGANIZATIONS,
|
||||||
CKANPackage.GENERIC_RESOURCE_NAME_FOR_ORGANIZATIONS, xml);
|
CKANInstance.GENERIC_RESOURCE_NAME_FOR_ORGANIZATIONS, xml);
|
||||||
RegistryPublisher registryPublisher = RegistryPublisherFactory.create();
|
RegistryPublisher registryPublisher = RegistryPublisherFactory.create();
|
||||||
genericResource = registryPublisher.create(genericResource);
|
genericResource = registryPublisher.create(genericResource);
|
||||||
StringWriter stringWriter = new StringWriter();
|
StringWriter stringWriter = new StringWriter();
|
||||||
|
@ -161,19 +161,19 @@ public class CKANPackageTest extends ContextTest {
|
||||||
}
|
}
|
||||||
StringWriter stringWriter = new StringWriter();
|
StringWriter stringWriter = new StringWriter();
|
||||||
stringWriter.append("<");
|
stringWriter.append("<");
|
||||||
stringWriter.append(CKANPackage.GENERIC_RESOURCE_TAG_NAME_PLURAL);
|
stringWriter.append(CKANInstance.GENERIC_RESOURCE_TAG_NAME_PLURAL);
|
||||||
stringWriter.append(">");
|
stringWriter.append(">");
|
||||||
for(String organizationName : organizations) {
|
for(String organizationName : organizations) {
|
||||||
stringWriter.append("<");
|
stringWriter.append("<");
|
||||||
stringWriter.append(CKANPackage.GENERIC_RESOURCE_TAG_NAME);
|
stringWriter.append(CKANInstance.GENERIC_RESOURCE_TAG_NAME);
|
||||||
stringWriter.append(">");
|
stringWriter.append(">");
|
||||||
stringWriter.append(organizationName);
|
stringWriter.append(organizationName);
|
||||||
stringWriter.append("</");
|
stringWriter.append("</");
|
||||||
stringWriter.append(CKANPackage.GENERIC_RESOURCE_TAG_NAME);
|
stringWriter.append(CKANInstance.GENERIC_RESOURCE_TAG_NAME);
|
||||||
stringWriter.append(">");
|
stringWriter.append(">");
|
||||||
}
|
}
|
||||||
stringWriter.append("</");
|
stringWriter.append("</");
|
||||||
stringWriter.append(CKANPackage.GENERIC_RESOURCE_TAG_NAME_PLURAL);
|
stringWriter.append(CKANInstance.GENERIC_RESOURCE_TAG_NAME_PLURAL);
|
||||||
stringWriter.append(">");
|
stringWriter.append(">");
|
||||||
return stringWriter.toString();
|
return stringWriter.toString();
|
||||||
}
|
}
|
||||||
|
@ -208,8 +208,8 @@ public class CKANPackageTest extends ContextTest {
|
||||||
@Test
|
@Test
|
||||||
public void testGetSupportedOrganizationsFromIS() throws ObjectNotFound, Exception {
|
public void testGetSupportedOrganizationsFromIS() throws ObjectNotFound, Exception {
|
||||||
ContextTest.setContextByName("/gcube/devNext/NextNext");
|
ContextTest.setContextByName("/gcube/devNext/NextNext");
|
||||||
CKANPackage ckanPackage = new CKANPackage();
|
CKANInstance ckanInstance = CKANInstance.getInstance();
|
||||||
Set<String> organizations = ckanPackage.getSupportedOrganizationsFromIS();
|
Set<String> organizations = ckanInstance.getSupportedOrganizationsFromIS();
|
||||||
Assert.assertTrue(organizations.size()>0);
|
Assert.assertTrue(organizations.size()>0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue