1.0.1 #1
|
@ -2,6 +2,10 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
||||||
|
|
||||||
# Changelog for org.gcube.application.geoportal-service
|
# Changelog for org.gcube.application.geoportal-service
|
||||||
|
|
||||||
|
## [v1.0.1] 2020-11-11
|
||||||
|
|
||||||
|
Project interface
|
||||||
|
|
||||||
## [v1.0.0] 2020-11-11
|
## [v1.0.0] 2020-11-11
|
||||||
|
|
||||||
First release
|
First release
|
||||||
|
|
6
pom.xml
6
pom.xml
|
@ -4,7 +4,7 @@
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.gcube.application</groupId>
|
<groupId>org.gcube.application</groupId>
|
||||||
<artifactId>geoportal-service</artifactId>
|
<artifactId>geoportal-service</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.1</version>
|
||||||
<name>Geoportal Service</name>
|
<name>Geoportal Service</name>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
|
|
||||||
|
@ -91,12 +91,12 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.application</groupId>
|
<groupId>org.gcube.application</groupId>
|
||||||
<artifactId>geoportal-common</artifactId>
|
<artifactId>geoportal-common</artifactId>
|
||||||
<version>[1.0.0,2.0.0)</version>
|
<version>[1.0.0-SNAPSHOT,2.0.0)</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.application</groupId>
|
<groupId>org.gcube.application</groupId>
|
||||||
<artifactId>geoportal-logic</artifactId>
|
<artifactId>geoportal-logic</artifactId>
|
||||||
<version>[1.0.4,2.0.0)</version>
|
<version>[1.0.4-SNAPSHOT,2.0.0)</version>
|
||||||
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package org.gcube.application.geoportal.service.engine;
|
package org.gcube.application.geoportal.service.engine;
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.gcube.application.geoportal.common.model.profile.Profile;
|
import org.gcube.application.geoportal.common.model.profile.Profile;
|
||||||
|
@ -27,10 +26,8 @@ public class ProfileMapCache extends AbstractScopedMap<Map<String,Profile>> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Map<String, Profile> retrieveObject() throws ConfigurationException {
|
protected Map<String, Profile> retrieveObject() throws ConfigurationException {
|
||||||
//TODO load from IS
|
// TODO Auto-generated method stub
|
||||||
// Profile fakeProfile=new Profile();
|
return null;
|
||||||
|
|
||||||
return Collections.singletonMap(null, null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
package org.gcube.application.geoportal.service.engine.mongo;
|
package org.gcube.application.geoportal.service.engine.mongo;
|
||||||
|
|
||||||
|
|
||||||
import org.bson.Document;
|
import org.bson.Document;
|
||||||
import org.gcube.application.geoportal.common.model.profile.Profile;
|
import org.gcube.application.geoportal.common.model.profile.Profile;
|
||||||
import org.gcube.application.geoportal.common.model.project.Project;
|
import org.gcube.application.geoportal.common.model.project.Project;
|
||||||
import org.gcube.application.geoportal.model.fault.ConfigurationException;
|
import org.gcube.application.geoportal.model.fault.ConfigurationException;
|
||||||
import org.gcube.application.geoportal.service.engine.ImplementationProvider;
|
|
||||||
|
|
||||||
import com.mongodb.MongoClient;
|
import com.mongodb.MongoClient;
|
||||||
import com.mongodb.client.FindIterable;
|
import com.mongodb.client.FindIterable;
|
||||||
import com.mongodb.client.MongoCollection;
|
import com.mongodb.client.MongoCollection;
|
||||||
import com.mongodb.client.MongoDatabase;
|
import com.mongodb.client.MongoDatabase;
|
||||||
|
|
||||||
public class MongoManager {
|
public abstract class MongoManager {
|
||||||
|
|
||||||
private MongoClient client=null;
|
private MongoClient client=null;
|
||||||
|
|
||||||
|
@ -19,14 +19,16 @@ public class MongoManager {
|
||||||
|
|
||||||
|
|
||||||
public MongoManager() throws ConfigurationException {
|
public MongoManager() throws ConfigurationException {
|
||||||
client=ImplementationProvider.get().getMongoClientProvider().getObject();
|
// client=ImplementationProvider.get().getMongoClientProvider().getObject();
|
||||||
|
|
||||||
// init profile
|
// init profile
|
||||||
}
|
}
|
||||||
|
|
||||||
private MongoDatabase getDatabase() {
|
// private abstract MongoDatabase getDatabase() {
|
||||||
return client.getDatabase("gna-db");
|
// return client.getDatabase("gna-db");
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
protected abstract MongoDatabase getDatabase();
|
||||||
|
|
||||||
//*********** PROJECTS
|
//*********** PROJECTS
|
||||||
public void insert(Project proj, Profile profile) {
|
public void insert(Project proj, Profile profile) {
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
package org.gcube.application.geoportal.service.engine.mongo;
|
||||||
|
|
||||||
|
public class ProfiledMongoManager {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
package org.gcube.application.geoportal.service.rest;
|
||||||
|
|
||||||
|
public class Commons {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
package org.gcube.application.geoportal.service.rest;
|
||||||
|
|
||||||
|
import javax.ws.rs.WebApplicationException;
|
||||||
|
import javax.ws.rs.core.Response.Status;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public abstract class GuardedMethod<T> {
|
||||||
|
|
||||||
|
|
||||||
|
private T result=null;
|
||||||
|
|
||||||
|
public GuardedMethod<T> execute() throws WebApplicationException{
|
||||||
|
try {
|
||||||
|
result=run();
|
||||||
|
return this;
|
||||||
|
}catch(WebApplicationException e) {
|
||||||
|
throw e;
|
||||||
|
}catch(Throwable t) {
|
||||||
|
log.error("Unexpected error ",t);
|
||||||
|
throw new WebApplicationException("Unexpected internal error", t,Status.INTERNAL_SERVER_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public T getResult() {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected abstract T run() throws Exception,WebApplicationException;
|
||||||
|
}
|
|
@ -1,7 +1,11 @@
|
||||||
package org.gcube.application.geoportal.service.rest;
|
package org.gcube.application.geoportal.service.rest;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import javax.ws.rs.Consumes;
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.POST;
|
||||||
import javax.ws.rs.PUT;
|
import javax.ws.rs.PUT;
|
||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
import javax.ws.rs.PathParam;
|
import javax.ws.rs.PathParam;
|
||||||
|
@ -9,6 +13,7 @@ import javax.ws.rs.Produces;
|
||||||
import javax.ws.rs.WebApplicationException;
|
import javax.ws.rs.WebApplicationException;
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
|
import org.bson.Document;
|
||||||
import org.gcube.application.geoportal.common.model.project.Project;
|
import org.gcube.application.geoportal.common.model.project.Project;
|
||||||
import org.gcube.application.geoportal.common.rest.InterfaceConstants;
|
import org.gcube.application.geoportal.common.rest.InterfaceConstants;
|
||||||
|
|
||||||
|
@ -18,61 +23,105 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class Projects {
|
public class Projects {
|
||||||
|
|
||||||
// GET BY ID
|
//***************** GENERIC PROJECTS
|
||||||
|
// GET ALL
|
||||||
@GET
|
@GET
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
@Path("{"+InterfaceConstants.Parameters.PROJECT_ID+"}")
|
public List<Project> getAll() {
|
||||||
public Project getByID(@PathParam(InterfaceConstants.Parameters.PROJECT_ID) String id) {
|
return new GuardedMethod<List<Project>>() {
|
||||||
try {
|
protected List<Project> run() throws Exception ,WebApplicationException {
|
||||||
log.info("Looking for profile [ID :{} ]",id);
|
return Collections.singletonList(new Project());
|
||||||
throw new RuntimeException("Feature not yet available");
|
};
|
||||||
}catch(WebApplicationException e){
|
}.execute().getResult();
|
||||||
log.warn("Unable to serve request",e);
|
|
||||||
throw e;
|
|
||||||
}catch(Throwable e){
|
|
||||||
log.warn("Unable to serve request",e);
|
|
||||||
throw new WebApplicationException("Unable to serve request", e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
@Path("/search")
|
||||||
|
public List<Project> getFilteredAll(Document filter){
|
||||||
|
return new GuardedMethod<List<Project>>() {
|
||||||
|
protected List<Project> run() throws Exception ,WebApplicationException {
|
||||||
|
return Collections.singletonList(new Project());
|
||||||
|
};
|
||||||
|
}.execute().getResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// GET ALL (Filters apply)
|
//***************** BY PROFILE ID
|
||||||
@GET
|
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
|
||||||
public Project getAll() {
|
|
||||||
try {
|
|
||||||
log.info("Loading all projects..");
|
|
||||||
throw new RuntimeException("Feature not yet available");
|
|
||||||
}catch(WebApplicationException e){
|
|
||||||
log.warn("Unable to serve request",e);
|
|
||||||
throw e;
|
|
||||||
}catch(Throwable e){
|
|
||||||
log.warn("Unable to serve request",e);
|
|
||||||
throw new WebApplicationException("Unable to serve request", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create new Project
|
// Create new Project
|
||||||
@PUT
|
@PUT
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
public Project registerNew(Project toRegister) {
|
@Path("{"+InterfaceConstants.Parameters.PROFILE_ID+"}")
|
||||||
try {
|
public Project registerNew(@PathParam(InterfaceConstants.Parameters.PROFILE_ID)String profileId,
|
||||||
log.info("Loading all projects..");
|
Document toRegister) {
|
||||||
throw new RuntimeException("Feature not yet available");
|
return new GuardedMethod<Project>() {
|
||||||
}catch(WebApplicationException e){
|
@Override
|
||||||
log.warn("Unable to serve request",e);
|
protected Project run() throws Exception, WebApplicationException {
|
||||||
throw e;
|
return new Project();
|
||||||
}catch(Throwable e){
|
|
||||||
log.warn("Unable to serve request",e);
|
|
||||||
throw new WebApplicationException("Unable to serve request", e);
|
|
||||||
}
|
}
|
||||||
|
}.execute().getResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// GET ALL (Filters apply)
|
||||||
|
@POST
|
||||||
// Modify Project Document
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
// Delete Project
|
@Path("/search/{"+InterfaceConstants.Parameters.PROFILE_ID+"}")
|
||||||
|
public List<Project> getFilteredAllInProfiles(@PathParam(InterfaceConstants.Parameters.PROFILE_ID)String profileId,
|
||||||
|
Document filters) {
|
||||||
|
return new GuardedMethod<List<Project>>() {
|
||||||
|
protected List<Project> run() throws Exception ,WebApplicationException {
|
||||||
|
return Collections.singletonList(new Project());
|
||||||
|
};
|
||||||
|
}.execute().getResult();
|
||||||
|
}
|
||||||
|
|
||||||
|
// GET ALL
|
||||||
|
@GET
|
||||||
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
@Path("{"+InterfaceConstants.Parameters.PROFILE_ID+"}")
|
||||||
|
public List<Project> getAllinProfile(@PathParam(InterfaceConstants.Parameters.PROFILE_ID)String profileId) {
|
||||||
|
return new GuardedMethod<List<Project>>() {
|
||||||
|
protected List<Project> run() throws Exception ,WebApplicationException {
|
||||||
|
return Collections.singletonList(new Project());
|
||||||
|
};
|
||||||
|
}.execute().getResult();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//***************** BY PROFILE ID + PROJECT ID
|
||||||
|
// GET BY ID
|
||||||
|
@GET
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
@Path("{"+InterfaceConstants.Parameters.PROFILE_ID+"}/{"+InterfaceConstants.Parameters.PROJECT_ID+"}")
|
||||||
|
public Project getByID(@PathParam(InterfaceConstants.Parameters.PROFILE_ID) String profile,
|
||||||
|
@PathParam(InterfaceConstants.Parameters.PROJECT_ID) String id) {
|
||||||
|
Project toReturn=new GuardedMethod<Project>() {
|
||||||
|
@Override
|
||||||
|
protected Project run() throws Exception ,WebApplicationException{
|
||||||
|
return new Project();
|
||||||
|
}
|
||||||
|
}.execute().getResult();
|
||||||
|
return toReturn;
|
||||||
|
}
|
||||||
|
|
||||||
|
@PUT
|
||||||
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
@Path("{"+InterfaceConstants.Parameters.PROFILE_ID+"}/{"+InterfaceConstants.Parameters.PROJECT_ID+"}")
|
||||||
|
public Project updateDocument(@PathParam(InterfaceConstants.Parameters.PROFILE_ID) String profile,
|
||||||
|
@PathParam(InterfaceConstants.Parameters.PROJECT_ID) String id,Document toSetDocument) {
|
||||||
|
Project toReturn=new GuardedMethod<Project>() {
|
||||||
|
@Override
|
||||||
|
protected Project run() throws Exception ,WebApplicationException{
|
||||||
|
return new Project();
|
||||||
|
}
|
||||||
|
}.execute().getResult();
|
||||||
|
return toReturn;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
package org.gcube.application.geoportal.service;
|
||||||
|
|
||||||
|
import javax.persistence.EntityManagerFactory;
|
||||||
|
import javax.ws.rs.core.Application;
|
||||||
|
|
||||||
|
import org.gcube.application.geoportal.managers.AbstractRecordManager;
|
||||||
|
import org.gcube.application.geoportal.model.fault.ConfigurationException;
|
||||||
|
import org.gcube.application.geoportal.service.engine.ImplementationProvider;
|
||||||
|
import org.gcube.application.geoportal.service.engine.ScopedEMFProvider;
|
||||||
|
import org.gcube.application.geoportal.service.engine.StorageClientProvider;
|
||||||
|
import org.gcube.application.geoportal.service.legacy.TokenSetter;
|
||||||
|
import org.gcube.contentmanagement.blobstorage.service.IClient;
|
||||||
|
import org.glassfish.jersey.test.JerseyTest;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
|
||||||
|
public class BasicServiceTestUnit extends JerseyTest {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Application configure() {
|
||||||
|
return new GeoPortalService();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void init() {
|
||||||
|
String scope="/gcube/devsec/devVRE";
|
||||||
|
AbstractRecordManager.setDefaultProvider(
|
||||||
|
|
||||||
|
new ScopedEMFProvider(){
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EntityManagerFactory getFactory() {
|
||||||
|
// System.err.println("***********************SETTING DEBUG CONTEXT******************");
|
||||||
|
TokenSetter.set(scope);
|
||||||
|
return super.getFactory();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
ImplementationProvider.get().setStorageProvider(new StorageClientProvider() {
|
||||||
|
@Override
|
||||||
|
public IClient getObject() throws ConfigurationException {
|
||||||
|
TokenSetter.set(scope);
|
||||||
|
return super.getObject();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,79 @@
|
||||||
|
package org.gcube.application.geoportal.service;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.ws.rs.client.Entity;
|
||||||
|
import javax.ws.rs.client.WebTarget;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
|
import org.bson.Document;
|
||||||
|
import org.gcube.application.geoportal.common.model.project.Project;
|
||||||
|
import org.gcube.application.geoportal.common.rest.InterfaceConstants;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
|
public class ProjectTests extends BasicServiceTestUnit{
|
||||||
|
|
||||||
|
String testProfileId="profiled_concessione";
|
||||||
|
String projectId="asdlkjgdasfjklgadjhkl";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getAll() {
|
||||||
|
WebTarget target=target(InterfaceConstants.Methods.PROJECTS);
|
||||||
|
System.out.println(target.request(MediaType.APPLICATION_JSON).get(List.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getFilteredAll() {
|
||||||
|
WebTarget target=target(InterfaceConstants.Methods.PROJECTS);
|
||||||
|
Document document =new Document(Collections.singletonMap("key", "value"));
|
||||||
|
|
||||||
|
System.out.println(target.path("search").request(MediaType.APPLICATION_JSON).
|
||||||
|
post(Entity.entity(document, MediaType.APPLICATION_JSON)));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getAllByProfile() {
|
||||||
|
WebTarget target=target(InterfaceConstants.Methods.PROJECTS);
|
||||||
|
System.out.println(target.path(testProfileId).request(MediaType.APPLICATION_JSON).get(List.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getFilteredByProfile() {
|
||||||
|
WebTarget target=target(InterfaceConstants.Methods.PROJECTS);
|
||||||
|
Document document =new Document(Collections.singletonMap("key", "value"));
|
||||||
|
|
||||||
|
System.out.println(target.path("search").path(testProfileId).request(MediaType.APPLICATION_JSON).
|
||||||
|
post(Entity.entity(document, MediaType.APPLICATION_JSON)));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getById() {
|
||||||
|
WebTarget target=target(InterfaceConstants.Methods.PROJECTS);
|
||||||
|
System.out.println(target.path(testProfileId).path(projectId).request(MediaType.APPLICATION_JSON).get().readEntity(String.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void registerNew() {
|
||||||
|
WebTarget target=target(InterfaceConstants.Methods.PROJECTS);
|
||||||
|
Document document =new Document(Collections.singletonMap("key", "value"));
|
||||||
|
|
||||||
|
System.out.println(target.path(testProfileId).request(MediaType.APPLICATION_JSON).
|
||||||
|
put(Entity.entity(document, MediaType.APPLICATION_JSON)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateDocument() {
|
||||||
|
WebTarget target=target(InterfaceConstants.Methods.PROJECTS);
|
||||||
|
Document document =new Document(Collections.singletonMap("key", "value"));
|
||||||
|
|
||||||
|
System.out.println(target.path(testProfileId).path(projectId).request(MediaType.APPLICATION_JSON).
|
||||||
|
put(Entity.entity(document, MediaType.APPLICATION_JSON)));
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,17 +8,14 @@ import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
import javax.persistence.EntityManagerFactory;
|
|
||||||
import javax.ws.rs.WebApplicationException;
|
import javax.ws.rs.WebApplicationException;
|
||||||
import javax.ws.rs.client.Entity;
|
import javax.ws.rs.client.Entity;
|
||||||
import javax.ws.rs.client.WebTarget;
|
import javax.ws.rs.client.WebTarget;
|
||||||
import javax.ws.rs.core.Application;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import javax.ws.rs.core.Response;
|
import javax.ws.rs.core.Response;
|
||||||
|
|
||||||
import org.gcube.application.geoportal.common.rest.InterfaceConstants;
|
import org.gcube.application.geoportal.common.rest.InterfaceConstants;
|
||||||
import org.gcube.application.geoportal.common.utils.Files;
|
import org.gcube.application.geoportal.common.utils.Files;
|
||||||
import org.gcube.application.geoportal.managers.AbstractRecordManager;
|
|
||||||
import org.gcube.application.geoportal.model.concessioni.Concessione;
|
import org.gcube.application.geoportal.model.concessioni.Concessione;
|
||||||
import org.gcube.application.geoportal.model.concessioni.LayerConcessione;
|
import org.gcube.application.geoportal.model.concessioni.LayerConcessione;
|
||||||
import org.gcube.application.geoportal.model.content.AssociatedContent;
|
import org.gcube.application.geoportal.model.content.AssociatedContent;
|
||||||
|
@ -26,64 +23,29 @@ import org.gcube.application.geoportal.model.content.UploadedImage;
|
||||||
import org.gcube.application.geoportal.model.fault.ConfigurationException;
|
import org.gcube.application.geoportal.model.fault.ConfigurationException;
|
||||||
import org.gcube.application.geoportal.model.report.PublicationReport;
|
import org.gcube.application.geoportal.model.report.PublicationReport;
|
||||||
import org.gcube.application.geoportal.model.report.ValidationReport.ValidationStatus;
|
import org.gcube.application.geoportal.model.report.ValidationReport.ValidationStatus;
|
||||||
import org.gcube.application.geoportal.service.GeoPortalService;
|
import org.gcube.application.geoportal.service.BasicServiceTestUnit;
|
||||||
import org.gcube.application.geoportal.service.engine.ImplementationProvider;
|
import org.gcube.application.geoportal.service.engine.ImplementationProvider;
|
||||||
import org.gcube.application.geoportal.service.engine.ScopedEMFProvider;
|
|
||||||
import org.gcube.application.geoportal.service.engine.StorageClientProvider;
|
|
||||||
import org.gcube.application.geoportal.service.model.internal.rest.AddSectionToConcessioneRequest;
|
import org.gcube.application.geoportal.service.model.internal.rest.AddSectionToConcessioneRequest;
|
||||||
import org.gcube.application.geoportal.service.model.internal.rest.AddSectionToConcessioneRequest.SHUBFileDescriptor;
|
import org.gcube.application.geoportal.service.model.internal.rest.AddSectionToConcessioneRequest.SHUBFileDescriptor;
|
||||||
import org.gcube.application.geoportal.service.model.internal.rest.AddSectionToConcessioneRequest.Section;
|
import org.gcube.application.geoportal.service.model.internal.rest.AddSectionToConcessioneRequest.Section;
|
||||||
import org.gcube.application.geoportal.service.utils.Serialization;
|
import org.gcube.application.geoportal.service.utils.Serialization;
|
||||||
import org.gcube.com.fasterxml.jackson.core.JsonProcessingException;
|
import org.gcube.com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import org.gcube.contentmanagement.blobstorage.service.IClient;
|
|
||||||
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
|
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
|
||||||
import org.glassfish.jersey.test.JerseyTest;
|
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class ConcessioniTest extends JerseyTest {
|
public class ConcessioniTest extends BasicServiceTestUnit {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Application configure() {
|
|
||||||
return new GeoPortalService();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void init() {
|
|
||||||
String scope="/gcube/devsec/devVRE";
|
|
||||||
AbstractRecordManager.setDefaultProvider(
|
|
||||||
|
|
||||||
new ScopedEMFProvider(){
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public EntityManagerFactory getFactory() {
|
|
||||||
// System.err.println("***********************SETTING DEBUG CONTEXT******************");
|
|
||||||
TokenSetter.set(scope);
|
|
||||||
return super.getFactory();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
ImplementationProvider.get().setStorageProvider(new StorageClientProvider() {
|
|
||||||
@Override
|
|
||||||
public IClient getObject() throws ConfigurationException {
|
|
||||||
TokenSetter.set(scope);
|
|
||||||
return super.getObject();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readId() {
|
public void readId() {
|
||||||
WebTarget target=target(InterfaceConstants.Methods.CONCESSIONI);
|
WebTarget target=target(InterfaceConstants.Methods.CONCESSIONI);
|
||||||
try{
|
try{
|
||||||
System.out.println(target.path("8").request(MediaType.APPLICATION_JSON).get(String.class));
|
System.out.println(target.path("9").request(MediaType.APPLICATION_JSON).get(String.class));
|
||||||
}catch(WebApplicationException e) {
|
}catch(WebApplicationException e) {
|
||||||
if(e.getResponse().getStatus()==404)
|
if(e.getResponse().getStatus()==404)
|
||||||
System.out.println("Object not found");
|
System.out.println("Object not found");
|
||||||
|
|
|
@ -40,11 +40,11 @@ public class MongoTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void listProfiles() throws JsonProcessingException, IOException, ConfigurationException {
|
public void listProfiles() throws JsonProcessingException, IOException, ConfigurationException {
|
||||||
MongoManager manager=new MongoManager();
|
// MongoManager manager=new MongoManager();
|
||||||
Profile f=Serialization.mapper.readerFor(Profile.class).readValue(
|
// Profile f=Serialization.mapper.readerFor(Profile.class).readValue(
|
||||||
Files.getFileFromResources("fakeProfile.json"));
|
// Files.getFileFromResources("fakeProfile.json"));
|
||||||
|
//
|
||||||
manager.iterate(new Document(),f).forEach(printBlock);
|
// manager.iterate(new Document(),f).forEach(printBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Test
|
// @Test
|
||||||
|
|
Reference in New Issue