Ported count method from version 1.4.4 to 2.0.0-SNAPSHOT
This commit is contained in:
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
|
||||
|
|
5
pom.xml
5
pom.xml
|
@ -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 getCurrentScope(String token) throws ObjectNotFound, Exception {
|
||||
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 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…
Reference in New Issue