Ported count method from version 1.4.4 to 2.0.0-SNAPSHOT

master
Luca Frosini 3 years ago
parent 85a5436b59
commit 084369799c

@ -3,9 +3,14 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
# Changelog for gCube Catalogue (gCat) Client
## [v2.0.0-SNAPSHOT] [r5.0.0] -
## [v2.0.0-SNAPSHOT]
- Switched JSON management to gcube-jackson [#19735]
## [v1.2.2]
- Added count method for Item collection [#20627]
- Added count method for Organization, Group and Profile collection [#20629]
## [v1.2.1] [r4.18.0] - 2019-12-20

@ -30,7 +30,7 @@
<dependency>
<groupId>org.gcube.distribution</groupId>
<artifactId>gcube-bom</artifactId>
<version>2.0.0-SNAPSHOT</version>
<version>2.0.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@ -59,12 +59,11 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<!-- Test Dependencies -->
<dependency>
<groupId>org.gcube.common</groupId>
<artifactId>gcube-jackson-databind</artifactId>
<scope>test</scope>
</dependency>
<!-- Test Dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>

@ -8,6 +8,8 @@ import java.util.Map;
import javax.ws.rs.WebApplicationException;
import javax.xml.ws.WebServiceException;
import org.gcube.com.fasterxml.jackson.databind.JsonNode;
import org.gcube.com.fasterxml.jackson.databind.ObjectMapper;
import org.gcube.gcat.api.GCatConstants;
/**
@ -23,6 +25,22 @@ public class Group extends GCatClient implements org.gcube.gcat.api.interfaces.G
super(enforcedServiceURL, GROUPS);
}
@Override
public int count() throws WebServiceException {
Map<String, String> queryParams = new HashMap<>();
queryParams.put(GCatConstants.COUNT_PARAMETER, String.valueOf(true));
String ret = this.list(queryParams);
ObjectMapper objectMapper = new ObjectMapper();
try {
JsonNode jsonNode = objectMapper.readTree(ret);
return jsonNode.get(GCatConstants.COUNT_KEY).asInt();
}catch (WebApplicationException e) {
throw e;
}catch (Exception e) {
throw new WebApplicationException(e);
}
}
@Override
public String list(int limit, int offset) throws WebApplicationException {
Map<String, String> queryParams = new HashMap<>();

@ -8,6 +8,8 @@ import java.util.Map;
import javax.ws.rs.WebApplicationException;
import javax.xml.ws.WebServiceException;
import org.gcube.com.fasterxml.jackson.databind.JsonNode;
import org.gcube.com.fasterxml.jackson.databind.ObjectMapper;
import org.gcube.gcat.api.GCatConstants;
/**
@ -23,11 +25,27 @@ public class Item extends GCatClient implements org.gcube.gcat.api.interfaces.It
super(enforcedServiceURL, ITEMS);
}
@Override
public int count() throws WebServiceException {
Map<String, String> queryParams = new HashMap<>();
queryParams.put(GCatConstants.COUNT_PARAMETER, String.valueOf(true));
String ret = this.list(queryParams);
ObjectMapper objectMapper = new ObjectMapper();
try {
JsonNode jsonNode = objectMapper.readTree(ret);
return jsonNode.get(GCatConstants.COUNT_KEY).asInt();
}catch (WebApplicationException e) {
throw e;
}catch (Exception e) {
throw new WebApplicationException(e);
}
}
/**
* List the item in the organization correspondent to the current VRE.
* List the item in the organisation correspondent to the current VRE.
*
* If the client is entitled to run at VO or ROOT level the method return all the item in all the organization
* in the catalogue. To filter per organization used the method {@link #list(int, int, String)}
* in the catalogue. To filter per organisation used the method {@link #list(int, int, String)}
*/
@Override
public String list(int limit, int offset) throws WebApplicationException {
@ -43,7 +61,7 @@ public class Item extends GCatClient implements org.gcube.gcat.api.interfaces.It
}
/**
* List the item of a specific organization.
* List the item of a specific organisation.
* This API is only available if the client is entitles to run at VO and ROOT level.
*/
public String list(int limit, int offset, String organizationName) throws WebApplicationException {
@ -103,4 +121,5 @@ public class Item extends GCatClient implements org.gcube.gcat.api.interfaces.It
super.delete(true, name);
return null;
}
}

@ -6,7 +6,10 @@ import java.util.HashMap;
import java.util.Map;
import javax.ws.rs.WebApplicationException;
import javax.xml.ws.WebServiceException;
import org.gcube.com.fasterxml.jackson.databind.JsonNode;
import org.gcube.com.fasterxml.jackson.databind.ObjectMapper;
import org.gcube.gcat.api.GCatConstants;
/**
@ -22,6 +25,22 @@ public class Organization extends GCatClient implements org.gcube.gcat.api.inter
super(enforcedServiceURL, ORGANIZATIONS);
}
@Override
public int count() throws WebServiceException {
Map<String, String> queryParams = new HashMap<>();
queryParams.put(GCatConstants.COUNT_PARAMETER, String.valueOf(true));
String ret = this.list(queryParams);
ObjectMapper objectMapper = new ObjectMapper();
try {
JsonNode jsonNode = objectMapper.readTree(ret);
return jsonNode.get(GCatConstants.COUNT_KEY).asInt();
}catch (WebApplicationException e) {
throw e;
}catch (Exception e) {
throw new WebApplicationException(e);
}
}
@Override
public String list(int limit, int offset) throws WebApplicationException {
Map<String, String> queryParams = new HashMap<>();

@ -3,11 +3,16 @@ package org.gcube.gcat.client;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.xml.ws.WebServiceException;
import org.gcube.com.fasterxml.jackson.databind.JsonNode;
import org.gcube.com.fasterxml.jackson.databind.ObjectMapper;
import org.gcube.gcat.api.GCatConstants;
/**
@ -23,6 +28,22 @@ public class Profile extends GCatClient implements org.gcube.gcat.api.interfaces
super(enforcedServiceURL, PROFILES);
}
@Override
public int count() throws WebServiceException {
Map<String, String> queryParams = new HashMap<>();
queryParams.put(GCatConstants.COUNT_PARAMETER, String.valueOf(true));
String ret = this.list(queryParams);
ObjectMapper objectMapper = new ObjectMapper();
try {
JsonNode jsonNode = objectMapper.readTree(ret);
return jsonNode.get(GCatConstants.COUNT_KEY).asInt();
}catch (WebApplicationException e) {
throw e;
}catch (Exception e) {
throw new WebApplicationException(e);
}
}
@Override
public String list() throws WebApplicationException {
return super.list(null);

@ -1,10 +1,8 @@
/**
*
*/
package org.gcube.gcat.client;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.util.Properties;
import org.gcube.common.authorization.client.Constants;
@ -31,7 +29,12 @@ public class ContextTest {
protected static Properties properties;
protected static final String PROPERTIES_FILENAME = "token.properties";
public static final String DEFAULT_TEST_SCOPE_NAME;
protected static final String GCAT_PROPERTIES_FILENAME = "gcat.properties";
public static final String GCAT_URL_PROPERTY = "GCAT_URL_PROPERTY";
public static final String GCAT_URL;
public static final String DEFAULT_TEST_CONTEXT_NAME;
static {
properties = new Properties();
@ -44,14 +47,49 @@ public class ContextTest {
throw new RuntimeException(e);
}
DEFAULT_TEST_SCOPE_NAME = "/pred4s/preprod/preVRE";
//DEFAULT_TEST_CONTEXT_NAME = "/pred4s/preprod/preVRE";
DEFAULT_TEST_CONTEXT_NAME = "/gcube/devsec/devVRE";
try {
setContextByName(DEFAULT_TEST_CONTEXT_NAME);
} catch(Exception e) {
throw new RuntimeException(e);
}
Properties gcatProperties = new Properties();
input = ContextTest.class.getClassLoader().getResourceAsStream(GCAT_PROPERTIES_FILENAME);
try {
// load the properties file
gcatProperties.load(input);
} catch (IOException e) {
throw new RuntimeException(e);
}
GCAT_URL = gcatProperties.getProperty(GCAT_URL_PROPERTY);
if(GCAT_URL!=null){
try {
GCatClientDiscovery.forceToURL(GCAT_URL);
} catch (MalformedURLException e) {
throw new RuntimeException(e);
}
}
}
public static String getCurrentContextFullName() {
String token = SecurityTokenProvider.instance.get();
AuthorizationEntry authorizationEntry = null;
try {
authorizationEntry = Constants.authorizationService().get(token);
} catch(Exception e) {
return ScopeProvider.instance.get();
}
return authorizationEntry.getContext();
}
public static String getCurrentScope(String token) throws ObjectNotFound, Exception {
public static String getContextFullName(String token) throws ObjectNotFound, Exception {
AuthorizationEntry authorizationEntry = Constants.authorizationService().get(token);
String context = authorizationEntry.getContext();
logger.info("Context of token {} is {}", token, context);
return context;
return authorizationEntry.getContext();
}
public static void setContextByName(String fullContextName) throws ObjectNotFound, Exception {
@ -67,12 +105,12 @@ public class ContextTest {
String qualifier = authorizationEntry.getQualifier();
Caller caller = new Caller(clientInfo, qualifier);
AuthorizationProvider.instance.set(caller);
ScopeProvider.instance.set(getCurrentScope(token));
ScopeProvider.instance.set(getContextFullName(token));
}
@BeforeClass
public static void beforeClass() throws Exception {
setContextByName(DEFAULT_TEST_SCOPE_NAME);
setContextByName(DEFAULT_TEST_CONTEXT_NAME);
}
@AfterClass

@ -1,6 +1,7 @@
package org.gcube.gcat.client;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -30,6 +31,13 @@ public class GroupTest extends ContextTest {
private static final String DISPLAY_NAME_KEY = "display_name";
private static final String DISPLAY_NAME_VALUE = "0000 Display Name";
@Test
public void testCount() throws MalformedURLException {
Group group = new Group();
int count = group.count();
logger.debug("The number of groups is {}", count);
}
// @Test
public void completeTest() throws IOException {

@ -1,6 +1,7 @@
package org.gcube.gcat.client;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
@ -72,6 +73,13 @@ public class ItemTest extends ContextTest {
*/
}
@Test
public void testCount() throws MalformedURLException {
Item item = new Item();
int count = item.count();
logger.debug("The items published in the organization corresponding to the VRE {} are {}", ContextTest.getCurrentContextFullName(), count);
}
@Test
public void completeTest() throws IOException {
ObjectMapper mapper = new ObjectMapper();

@ -1,6 +1,7 @@
package org.gcube.gcat.client;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -30,6 +31,13 @@ public class OrganizationTest extends ContextTest {
private static final String DISPLAY_NAME_KEY = "display_name";
private static final String DISPLAY_NAME_VALUE = "0000 Display Name";
@Test
public void testCount() throws MalformedURLException {
Organization organization = new Organization();
int count = organization.count();
logger.debug("The number of organizations is {}", count);
}
// @Test
public void completeTest() throws IOException {

@ -1,6 +1,7 @@
package org.gcube.gcat.client;
import java.io.StringReader;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
@ -23,6 +24,13 @@ public class ProfileTest extends ContextTest {
private static Logger logger = LoggerFactory.getLogger(ProfileTest.class);
@Test
public void testCount() throws MalformedURLException {
Profile profile = new Profile();
int count = profile.count();
logger.debug("The number of profiles is {}", count);
}
@Test
public void safeTest() throws Exception {

@ -1 +1,2 @@
/token.properties
/gcat.properties

Loading…
Cancel
Save