Mongo
This commit is contained in:
parent
050e22a6ba
commit
11dfbea2be
|
@ -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
|
||||
|
||||
## [v1.0.4-SNAPSHOT] 2020-11-11
|
||||
Mongo integration with Concessione
|
||||
Project interface
|
||||
|
||||
## [v1.0.3] 2020-11-11
|
||||
Fixed HTTP method
|
||||
|
||||
|
|
2
pom.xml
2
pom.xml
|
@ -4,7 +4,7 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.gcube.application</groupId>
|
||||
<artifactId>geoportal-service</artifactId>
|
||||
<version>1.0.3</version>
|
||||
<version>1.0.4-SNAPSHOT</version>
|
||||
<name>Geoportal Service</name>
|
||||
<packaging>war</packaging>
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import javax.ws.rs.ApplicationPath;
|
|||
|
||||
import org.gcube.application.geoportal.common.rest.InterfaceConstants;
|
||||
import org.gcube.application.geoportal.service.rest.Concessioni;
|
||||
import org.gcube.application.geoportal.service.rest.ConcessioniOverMongo;
|
||||
import org.gcube.application.geoportal.service.rest.Profiles;
|
||||
import org.gcube.application.geoportal.service.rest.Projects;
|
||||
import org.gcube.application.geoportal.service.rest.Sections;
|
||||
|
@ -18,6 +19,7 @@ public class GeoPortalService extends ResourceConfig{
|
|||
super();
|
||||
//Register interrfaces
|
||||
registerClasses(Concessioni.class);
|
||||
registerClasses(ConcessioniOverMongo.class);
|
||||
registerClasses(Projects.class);
|
||||
registerClasses(Sections.class);
|
||||
registerClasses(Profiles.class);
|
||||
|
|
|
@ -10,6 +10,8 @@ import com.mongodb.MongoClientOptions;
|
|||
import com.mongodb.MongoCredential;
|
||||
import com.mongodb.ServerAddress;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@Slf4j
|
||||
public class MongoClientProvider extends AbstractScopedMap<MongoClient>{
|
||||
|
||||
public MongoClientProvider() {
|
||||
|
@ -21,9 +23,13 @@ public class MongoClientProvider extends AbstractScopedMap<MongoClient>{
|
|||
@Override
|
||||
protected MongoClient retrieveObject() throws ConfigurationException {
|
||||
MongoConnection conn=ImplementationProvider.get().getMongoConnectionProvider().getObject();
|
||||
log.debug("Connecting to "+conn);
|
||||
|
||||
MongoCredential credential = MongoCredential.createCredential(conn.getUser(), conn.getDatabase(),
|
||||
conn.getPassword().toCharArray());
|
||||
|
||||
|
||||
|
||||
MongoClientOptions options = MongoClientOptions.builder().sslEnabled(true).build();
|
||||
|
||||
return new MongoClient(new ServerAddress(conn.getHosts().get(0),conn.getPort()),
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
package org.gcube.application.geoportal.service.engine.mongo;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.bson.Document;
|
||||
import org.bson.types.ObjectId;
|
||||
import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
||||
import org.gcube.application.geoportal.common.model.legacy.report.PublicationReport;
|
||||
import org.gcube.application.geoportal.model.fault.ConfigurationException;
|
||||
import org.gcube.application.geoportal.service.utils.Serialization;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
|
||||
import lombok.Synchronized;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class ConcessioniMongoManager extends MongoManager{
|
||||
|
||||
|
||||
|
||||
public ConcessioniMongoManager() throws ConfigurationException {
|
||||
super();
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
private static final String collectionName="legacy-concessioni";
|
||||
private static final String DB_NAME="gna_dev";
|
||||
|
||||
|
||||
private MongoDatabase db=null;
|
||||
|
||||
@Override
|
||||
@Synchronized
|
||||
protected MongoDatabase getDatabase() {
|
||||
if(db==null) {
|
||||
db=client.getDatabase(DB_NAME);
|
||||
}
|
||||
return db;
|
||||
}
|
||||
|
||||
protected static Document asDocument (Concessione c) throws JsonProcessingException {
|
||||
return Document.parse(Serialization.write(c));
|
||||
|
||||
}
|
||||
|
||||
protected static Concessione asConcessione (Document d) throws JsonProcessingException, IOException {
|
||||
return Serialization.read(d.toJson(), Concessione.class);
|
||||
}
|
||||
|
||||
public Concessione registerNew(Concessione toRegister) throws IOException {
|
||||
ObjectId id=insert(asDocument(toRegister), collectionName);
|
||||
Concessione toReturn=asConcessione(getById(id,collectionName));
|
||||
toReturn.setMongo_id(id.toHexString());
|
||||
update(asDocument(toRegister),collectionName);
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
public void update(Concessione toRegister) throws JsonProcessingException {
|
||||
update(asDocument(toRegister),collectionName);
|
||||
}
|
||||
|
||||
public List<Concessione> list(){
|
||||
ArrayList<Concessione> toReturn=new ArrayList<>();
|
||||
iterate(null, collectionName).forEach((Document d)->{
|
||||
try {
|
||||
toReturn.add(asConcessione(d));
|
||||
}catch(Throwable t) {
|
||||
log.error("Unable to read Document as concessione ",t);
|
||||
log.debug("Document was "+d.toJson());
|
||||
}
|
||||
});
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
public Concessione getById(String id) throws JsonProcessingException, IOException {
|
||||
return asConcessione(getById(new ObjectId(id),collectionName));
|
||||
}
|
||||
public void deleteById(String id) {
|
||||
delete(new ObjectId(id), collectionName);
|
||||
}
|
||||
|
||||
public Concessione publish(String id) throws JsonProcessingException, IOException{
|
||||
Concessione toReturn=asConcessione(getById(new ObjectId(id),collectionName));
|
||||
toReturn.setDefaults();
|
||||
toReturn.validate();
|
||||
publish(toReturn);
|
||||
update(asDocument(toReturn),collectionName);
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
private static PublicationReport publish(Concessione c) {
|
||||
//TODO implement
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -1,72 +1,95 @@
|
|||
package org.gcube.application.geoportal.service.engine.mongo;
|
||||
|
||||
|
||||
import static com.mongodb.client.model.Filters.eq;
|
||||
|
||||
import org.bson.Document;
|
||||
import org.gcube.application.geoportal.common.model.profile.Profile;
|
||||
import org.gcube.application.geoportal.common.model.project.Project;
|
||||
import org.bson.types.ObjectId;
|
||||
import org.gcube.application.geoportal.model.fault.ConfigurationException;
|
||||
import org.gcube.application.geoportal.service.engine.ImplementationProvider;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.FindIterable;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public abstract class MongoManager {
|
||||
|
||||
private MongoClient client=null;
|
||||
protected MongoClient client=null;
|
||||
|
||||
|
||||
|
||||
|
||||
public MongoManager() throws ConfigurationException {
|
||||
// client=ImplementationProvider.get().getMongoClientProvider().getObject();
|
||||
client=ImplementationProvider.get().getMongoClientProvider().getObject();
|
||||
|
||||
// init profile
|
||||
log.info("Got Mongo Client at "+client.getConnectPoint());
|
||||
// NOT AUTHORIZED
|
||||
// log.debug("Existing databases "+client.getDatabaseNames());
|
||||
}
|
||||
|
||||
// private abstract MongoDatabase getDatabase() {
|
||||
// return client.getDatabase("gna-db");
|
||||
// }
|
||||
|
||||
// TODO check if existing DB
|
||||
protected abstract MongoDatabase getDatabase();
|
||||
|
||||
//*********** PROJECTS
|
||||
public void insert(Project proj, Profile profile) {
|
||||
// NB BsonId
|
||||
protected ObjectId insert(Document proj, String collectionName) {
|
||||
MongoDatabase database=getDatabase();
|
||||
// TODO check if existing DB
|
||||
|
||||
String collectionName=profile.getName();
|
||||
|
||||
MongoCollection<Document> collection = database.getCollection(collectionName);
|
||||
// TODO check if existing collection
|
||||
|
||||
|
||||
collection.insertOne(Document.parse(proj.toString()));
|
||||
|
||||
collection.insertOne(Document.parse(proj.toJson()));
|
||||
return proj.getObjectId("_id");
|
||||
|
||||
}
|
||||
// public Project update(Project proj) {
|
||||
//
|
||||
// }
|
||||
|
||||
public void delete(String id) {
|
||||
|
||||
}
|
||||
public Document getById(String id,Profile p) {
|
||||
public void delete(ObjectId id, String collectionName) {
|
||||
MongoDatabase database=getDatabase();
|
||||
MongoCollection<Document> coll=database.getCollection(p.getName());
|
||||
|
||||
return coll.find(new Document("id",id)).first();
|
||||
MongoCollection<Document> collection = database.getCollection(collectionName);
|
||||
collection.deleteOne(eq("_id",id));
|
||||
}
|
||||
|
||||
public FindIterable<Document> iterate(Document filter,Profile p) {
|
||||
MongoDatabase database=getDatabase();
|
||||
MongoCollection<Document> coll=database.getCollection(p.getName());
|
||||
|
||||
|
||||
public Document getById(ObjectId id,String collectionName) {
|
||||
MongoDatabase database=getDatabase();
|
||||
MongoCollection<Document> coll=database.getCollection(collectionName);
|
||||
return coll.find(new Document("_id",id)).first();
|
||||
}
|
||||
|
||||
|
||||
public FindIterable<Document> iterate(Document filter,String collectionName) {
|
||||
MongoDatabase database=getDatabase();
|
||||
MongoCollection<Document> coll=database.getCollection(collectionName);
|
||||
if(filter==null)
|
||||
return coll.find();
|
||||
else
|
||||
return coll.find(filter);
|
||||
}
|
||||
|
||||
|
||||
public <T> FindIterable<T> iterateForClass(Document filter,String collectionName,Class<T> clazz) {
|
||||
MongoDatabase database=getDatabase();
|
||||
MongoCollection<Document> coll=database.getCollection(collectionName);
|
||||
if(filter==null)
|
||||
return coll.find(clazz);
|
||||
else
|
||||
return coll.find(filter,clazz);
|
||||
}
|
||||
|
||||
public void update(Document toUpdate,String collectionName) {
|
||||
MongoDatabase database=getDatabase();
|
||||
MongoCollection<Document> coll=database.getCollection(collectionName);
|
||||
coll.findOneAndReplace(eq("_id",toUpdate.getObjectId("_id")), toUpdate);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//********** PROFILES
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,127 @@
|
|||
package org.gcube.application.geoportal.service.rest;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DELETE;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.PUT;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
||||
import org.gcube.application.geoportal.common.rest.InterfaceConstants;
|
||||
import org.gcube.application.geoportal.service.engine.mongo.ConcessioniMongoManager;
|
||||
import org.gcube.application.geoportal.service.utils.Serialization;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Path("mongo-concessioni")
|
||||
@Slf4j
|
||||
public class ConcessioniOverMongo {
|
||||
|
||||
|
||||
@PUT
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String update(String jsonString) {
|
||||
return new GuardedMethod<String> () {
|
||||
@Override
|
||||
protected String run() throws Exception, WebApplicationException {
|
||||
Concessione c=Serialization.read(jsonString, Concessione.class);
|
||||
ConcessioniMongoManager manager=new ConcessioniMongoManager();
|
||||
manager.update(c);
|
||||
|
||||
return Serialization.write(manager.getById(c.getMongo_id()));
|
||||
}
|
||||
}.execute().getResult();
|
||||
}
|
||||
|
||||
@POST
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String createNew(String jsonString) {
|
||||
return new GuardedMethod<String> () {
|
||||
@Override
|
||||
protected String run() throws Exception, WebApplicationException {
|
||||
Concessione c=Serialization.read(jsonString, Concessione.class);
|
||||
ConcessioniMongoManager manager=new ConcessioniMongoManager();
|
||||
return Serialization.write(manager.registerNew(c));
|
||||
}
|
||||
}.execute().getResult();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@GET
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String list() {
|
||||
return new GuardedMethod<String> () {
|
||||
protected String run() throws Exception ,WebApplicationException {
|
||||
ConcessioniMongoManager manager=new ConcessioniMongoManager();
|
||||
JSONArray toReturn=new JSONArray();
|
||||
manager.list().forEach((Concessione c) -> {
|
||||
try{
|
||||
toReturn.put(new JSONObject(Serialization.write(c)));
|
||||
}catch(Throwable t) {
|
||||
log.error("Unable to serialize "+c);
|
||||
}
|
||||
});
|
||||
return toReturn.toString();
|
||||
|
||||
};
|
||||
}.execute().getResult();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// BY ID
|
||||
@GET
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Path("{"+InterfaceConstants.Parameters.PROJECT_ID+"}")
|
||||
public String getById(@PathParam(InterfaceConstants.Parameters.PROJECT_ID) String id) {
|
||||
return new GuardedMethod<String> () {
|
||||
@Override
|
||||
protected String run() throws Exception, WebApplicationException {
|
||||
ConcessioniMongoManager manager=new ConcessioniMongoManager();
|
||||
return Serialization.write(manager.getById(id));
|
||||
}
|
||||
}.execute().getResult();
|
||||
}
|
||||
|
||||
@DELETE
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Path("{"+InterfaceConstants.Parameters.PROJECT_ID+"}")
|
||||
public void deleteById(@PathParam(InterfaceConstants.Parameters.PROJECT_ID) String id) {
|
||||
new GuardedMethod<Concessione> () {
|
||||
@Override
|
||||
protected Concessione run() throws Exception, WebApplicationException {
|
||||
ConcessioniMongoManager manager=new ConcessioniMongoManager();
|
||||
manager.deleteById(id);
|
||||
return null;
|
||||
}
|
||||
}.execute();
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Path("/publish/{"+InterfaceConstants.Parameters.PROJECT_ID+"}")
|
||||
public String publish(@PathParam(InterfaceConstants.Parameters.PROJECT_ID) String id) {
|
||||
return new GuardedMethod<String> () {
|
||||
@Override
|
||||
protected String run() throws Exception, WebApplicationException {
|
||||
ConcessioniMongoManager manager=new ConcessioniMongoManager();
|
||||
return Serialization.write(manager.publish(id));
|
||||
}
|
||||
}.execute().getResult();
|
||||
}
|
||||
|
||||
}
|
|
@ -2,17 +2,24 @@ package org.gcube.application.geoportal.service;
|
|||
|
||||
import javax.persistence.EntityManagerFactory;
|
||||
import javax.ws.rs.core.Application;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
import org.gcube.application.geoportal.managers.AbstractRecordManager;
|
||||
import org.gcube.application.geoportal.model.fault.ConfigurationException;
|
||||
import org.gcube.application.geoportal.model.report.PublicationReport;
|
||||
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.engine.cache.MongoClientProvider;
|
||||
import org.gcube.application.geoportal.service.engine.cache.MongoConnectionProvider;
|
||||
import org.gcube.application.geoportal.service.legacy.TokenSetter;
|
||||
import org.gcube.application.geoportal.service.utils.Serialization;
|
||||
import org.gcube.contentmanagement.blobstorage.service.IClient;
|
||||
import org.glassfish.jersey.test.JerseyTest;
|
||||
import org.junit.BeforeClass;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
|
||||
public class BasicServiceTestUnit extends JerseyTest {
|
||||
|
||||
|
||||
|
@ -33,7 +40,6 @@ public class BasicServiceTestUnit extends JerseyTest {
|
|||
|
||||
@Override
|
||||
public EntityManagerFactory getFactory() {
|
||||
// System.err.println("***********************SETTING DEBUG CONTEXT******************");
|
||||
TokenSetter.set(scope);
|
||||
return super.getFactory();
|
||||
}
|
||||
|
@ -47,5 +53,31 @@ public class BasicServiceTestUnit extends JerseyTest {
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
ImplementationProvider.get().setMongoConnectionProvider(new MongoConnectionProvider() {
|
||||
@Override
|
||||
public org.gcube.application.geoportal.service.model.internal.db.MongoConnection getObject() throws ConfigurationException {
|
||||
TokenSetter.set(scope);
|
||||
return super.getObject();
|
||||
}
|
||||
});
|
||||
|
||||
ImplementationProvider.get().setMongoClientProvider(new MongoClientProvider() {
|
||||
@Override
|
||||
public MongoClient getObject() throws ConfigurationException {
|
||||
TokenSetter.set(scope);
|
||||
return super.getObject();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected static<T> T check(Response resp, Class<T> clazz) throws Exception {
|
||||
String resString=resp.readEntity(String.class);
|
||||
if(resp.getStatus()<200||resp.getStatus()>=300)
|
||||
throw new Exception("RESP STATUS IS "+resp.getStatus()+". Message : "+resString);
|
||||
System.out.println("Resp String is "+resString);
|
||||
return Serialization.read(resString, clazz);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
package org.gcube.application.geoportal.service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ws.rs.client.Entity;
|
||||
import javax.ws.rs.client.WebTarget;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
||||
import org.gcube.application.geoportal.service.utils.Serialization;
|
||||
import org.junit.Test;
|
||||
|
||||
public class ConcessioniOverMongoTest extends BasicServiceTestUnit{
|
||||
|
||||
|
||||
private static final String PATH="mongo-concessioni";
|
||||
|
||||
|
||||
@Test
|
||||
public void list() {
|
||||
WebTarget target=target(PATH);
|
||||
System.out.println(target.request(MediaType.APPLICATION_JSON).get(List.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createNew() throws Exception {
|
||||
WebTarget target=target(PATH);
|
||||
Concessione conc=TestModel.prepareConcessione();
|
||||
Response resp=target.request(MediaType.APPLICATION_JSON).post(Entity.entity(Serialization.write(conc), MediaType.APPLICATION_JSON));
|
||||
Concessione c=check(resp,Concessione.class);
|
||||
System.out.println("ID IS "+c.getMongo_id());
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,111 @@
|
|||
package org.gcube.application.geoportal.service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.gcube.application.geoportal.common.model.legacy.AccessPolicy;
|
||||
import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
||||
import org.gcube.application.geoportal.common.model.legacy.LayerConcessione;
|
||||
import org.gcube.application.geoportal.common.model.legacy.RelazioneScavo;
|
||||
import org.gcube.application.geoportal.common.model.legacy.UploadedImage;
|
||||
|
||||
|
||||
|
||||
public class TestModel {
|
||||
|
||||
|
||||
public static Concessione prepareEmptyConcessione() {
|
||||
Concessione concessione=new Concessione();
|
||||
|
||||
// Generic fields
|
||||
|
||||
// Concessione fields
|
||||
|
||||
concessione.setNome("MONGO Italia, forse, ma su ");
|
||||
concessione.setIntroduzione("This is my MONGO project");
|
||||
concessione.setDescrizioneContenuto("It contains this and that");
|
||||
|
||||
concessione.setAuthors(Arrays.asList(new String[] {"Some one","Some, oneelse"}));
|
||||
|
||||
concessione.setContributore("Contrib 1");
|
||||
concessione.setTitolari(Arrays.asList(new String[] {"Some one","Some, oneelse"}));
|
||||
concessione.setResponsabile("Someone");
|
||||
concessione.setEditore("Editore");
|
||||
|
||||
concessione.setFontiFinanziamento(Arrays.asList(new String[] {"Big pharma","Pentagon"}));
|
||||
|
||||
|
||||
concessione.setSoggetto(Arrays.asList(new String[] {"Research Excavation","Archeology"}));
|
||||
|
||||
|
||||
concessione.setDataInizioProgetto(LocalDateTime.now());
|
||||
concessione.setDataFineProgetto(LocalDateTime.now());
|
||||
|
||||
concessione.setLicenzaID("CC-BY");
|
||||
|
||||
concessione.setTitolareLicenza(Arrays.asList(new String[] {"Qualcun altro"}));
|
||||
concessione.setTitolareCopyright(Arrays.asList(new String[] {"Chiedilo in giro"}));
|
||||
|
||||
concessione.setParoleChiaveLibere(Arrays.asList(new String[] {"Robba","Stuff"}));
|
||||
concessione.setParoleChiaveICCD(Arrays.asList(new String[] {"vattelapesca","somthing something"}));
|
||||
|
||||
|
||||
concessione.setCentroidLat(43.0); //N-S
|
||||
concessione.setCentroidLong(9.0); //E-W
|
||||
|
||||
return concessione;
|
||||
}
|
||||
|
||||
public static Concessione prepareConcessione() {
|
||||
|
||||
Concessione concessione=prepareEmptyConcessione();
|
||||
|
||||
|
||||
|
||||
// Attachments
|
||||
|
||||
// Relazione scavo
|
||||
RelazioneScavo relScavo=new RelazioneScavo();
|
||||
|
||||
relScavo.setAbstractSection("simple abstract section");
|
||||
relScavo.setResponsabili(concessione.getAuthors());
|
||||
|
||||
concessione.setRelazioneScavo(relScavo);
|
||||
//Immagini rappresentative
|
||||
ArrayList<UploadedImage> imgs=new ArrayList<>();
|
||||
for(int i=0;i<5;i++) {
|
||||
UploadedImage img=new UploadedImage();
|
||||
img.setTitolo("My image number "+i);
|
||||
img.setDidascalia("You can see my image number "+i);
|
||||
img.setFormat("TIFF");
|
||||
img.setCreationTime(LocalDateTime.now());
|
||||
img.setResponsabili(concessione.getAuthors());
|
||||
imgs.add(img);
|
||||
}
|
||||
concessione.setImmaginiRappresentative(imgs);
|
||||
//Posizionamento
|
||||
LayerConcessione posizionamento=new LayerConcessione();
|
||||
posizionamento.setValutazioneQualita("Secondo me si");
|
||||
posizionamento.setMetodoRaccoltaDati("Fattobbene");
|
||||
posizionamento.setScalaAcquisizione("1:10000");
|
||||
posizionamento.setAuthors(concessione.getAuthors());
|
||||
concessione.setPosizionamentoScavo(posizionamento);
|
||||
|
||||
// Piante fine scavo
|
||||
ArrayList<LayerConcessione> piante=new ArrayList<LayerConcessione>();
|
||||
for(int i=0;i<4;i++) {
|
||||
LayerConcessione pianta=new LayerConcessione();
|
||||
pianta.setValutazioneQualita("Secondo me si");
|
||||
pianta.setMetodoRaccoltaDati("Fattobbene");
|
||||
pianta.setScalaAcquisizione("1:10000");
|
||||
pianta.setAuthors(concessione.getAuthors());
|
||||
pianta.setPolicy(AccessPolicy.RESTRICTED);
|
||||
piante.add(pianta);
|
||||
}
|
||||
concessione.setPianteFineScavo(piante);
|
||||
|
||||
return concessione;
|
||||
}
|
||||
|
||||
}
|
|
@ -71,7 +71,7 @@ public class ConcessioniTest extends BasicServiceTestUnit {
|
|||
|
||||
@Test
|
||||
public void failPublish() throws com.fasterxml.jackson.core.JsonProcessingException, IOException {
|
||||
Concessione toCreate=TestModel.prepareEmptyConcessione();
|
||||
Concessione toCreate=OLDTestModel.prepareEmptyConcessione();
|
||||
|
||||
Concessione conc=pushConcessione(toCreate);
|
||||
System.out.println(publish(conc.getId()+"").prettyPrint());
|
||||
|
@ -81,17 +81,17 @@ public class ConcessioniTest extends BasicServiceTestUnit {
|
|||
|
||||
@Test
|
||||
public void createNew() throws IOException {
|
||||
Concessione toCreate=TestModel.prepareEmptyConcessione();
|
||||
Concessione toCreate=OLDTestModel.prepareEmptyConcessione();
|
||||
|
||||
pushConcessione(toCreate);
|
||||
|
||||
}
|
||||
@Test
|
||||
public void publishNew() throws IOException, RemoteBackendException, ConfigurationException {
|
||||
Concessione toCreate=TestModel.prepareEmptyConcessione();
|
||||
Concessione toCreate=OLDTestModel.prepareEmptyConcessione();
|
||||
Concessione registered = pushConcessione(toCreate);
|
||||
System.out.println("Registered at "+Serialization.write(registered));
|
||||
Concessione fullTemplate=TestModel.prepareConcessione();
|
||||
Concessione fullTemplate=OLDTestModel.prepareConcessione();
|
||||
|
||||
//Push Relazione
|
||||
publishSection(registered.getId()+"",formRequest(Section.RELAZIONE,fullTemplate.getRelazioneScavo(),"concessioni/relazione.pdf"));
|
||||
|
|
|
@ -10,7 +10,7 @@ import org.gcube.application.geoportal.model.concessioni.LayerConcessione;
|
|||
import org.gcube.application.geoportal.model.concessioni.RelazioneScavo;
|
||||
import org.gcube.application.geoportal.model.content.UploadedImage;
|
||||
|
||||
public class TestModel {
|
||||
public class OLDTestModel {
|
||||
|
||||
public static Concessione prepareEmptyConcessione() {
|
||||
Concessione concessione=new Concessione();
|
Reference in New Issue