diff --git a/pom.xml b/pom.xml
index 14c064c..ef8b633 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,7 @@
${project.basedir}/src/main/webapp/WEB-INF
${project.basedir}/distro
-
+ 2.13
@@ -36,7 +36,7 @@
-
+
@@ -59,7 +59,11 @@
org.aspectj
aspectjrt
-
+
+ org.gcube.common
+ authorization-control-library
+ [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)
+
@@ -73,27 +77,59 @@
javax.servlet
javax.servlet-api
3.0.1
- provided
javax.ws.rs
javax.ws.rs-api
2.0
-
-
-
-
-
-
+
javax.enterprise
cdi-api
- 2.0
+ 1.1
+
+
+
+
+ org.glassfish.jersey.containers
+
+ jersey-container-servlet
+ ${jersey-version}
+
+
+
+
+
+
+ org.jboss.weld.servlet
+ weld-servlet
+ 2.2.10.Final
+
+
+
+ org.jboss
+ jandex
+ 1.2.2.Final
+
+
+
+ com.fasterxml.jackson.jaxrs
+ jackson-jaxrs-json-provider
+ 2.3.0
+
+
+
+ org.glassfish.jersey.media
+ jersey-media-json-jackson
+ ${jersey-version}
+
+
+
+ org.glassfish.jersey.media
+ jersey-media-multipart
+ ${jersey-version}
@@ -104,65 +140,88 @@
[1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)
+
+
+
+ postgresql
+ postgresql
+ 9.1-901.jdbc4
+ runtime
+
+
+
+
+
+ org.glassfish.jersey.test-framework.providers
+ jersey-test-framework-provider-simple
+ ${jersey-version}
+ test
+
+
+ ch.qos.logback
+ logback-classic
+ 1.0.13
+ test
+
-
+
-
-
+
+
-
-
-
- org.codehaus.mojo
- aspectj-maven-plugin
- 1.7
-
- 1.8
-
- 1.8
-
-
- org.gcube.common
- authorization-control-library
-
-
-
-
-
-
- compile
-
-
-
-
-
-
+
+
+ org.eclipse.m2e
+ lifecycle-mapping
+ 1.0.0
+
+
+
+
+
+ org.codehaus.mojo
+ aspectj-maven-plugin
+ [1.0,)
+
+ test-compile
+ compile
+
+
+
+
+
+
+
+
+
+
+
+ org.codehaus.mojo
+ aspectj-maven-plugin
+ 1.7
+
+ 1.8
+
+ 1.8
+
+
+ org.gcube.common
+ authorization-control-library
+
+
+
+
+
+
+ compile
+
+
+
+
+
+
-
-
+
+
\ No newline at end of file
diff --git a/src/main/java/org/gcube/application/perform/service/LocalConfiguration.java b/src/main/java/org/gcube/application/perform/service/LocalConfiguration.java
index 7b51b98..5d8e8a0 100644
--- a/src/main/java/org/gcube/application/perform/service/LocalConfiguration.java
+++ b/src/main/java/org/gcube/application/perform/service/LocalConfiguration.java
@@ -17,11 +17,11 @@ public class LocalConfiguration {
public static final String MAPPING_DB_ENDPOINT_NAME="mapping-db.ep.name";
- public static final String MAPPING_DB_ENDPOINT_CATEGORY="mapping-db.ep.name";
+ public static final String MAPPING_DB_ENDPOINT_CATEGORY="mapping-db.ep.category";
public static final String PERFORMANCE_DB_ENDPOINT_NAME="performance-db.ep.name";
- public static final String PERFORMANCE_DB_ENDPOINT_CATEGORY="performance-db.ep.name";
+ public static final String PERFORMANCE_DB_ENDPOINT_CATEGORY="performance-db.ep.category";
public static final String IMPORTER_COMPUTATION_ID="dm.importer.computationid";
diff --git a/src/main/java/org/gcube/application/perform/service/PerformService.java b/src/main/java/org/gcube/application/perform/service/PerformService.java
index fe8cd0b..f630d7d 100644
--- a/src/main/java/org/gcube/application/perform/service/PerformService.java
+++ b/src/main/java/org/gcube/application/perform/service/PerformService.java
@@ -2,13 +2,43 @@ package org.gcube.application.perform.service;
import javax.ws.rs.ApplicationPath;
+import org.gcube.application.perform.service.engine.Importer;
+import org.gcube.application.perform.service.engine.ImporterImpl;
+import org.gcube.application.perform.service.engine.MappingManager;
+import org.gcube.application.perform.service.engine.MappingManagerImpl;
+import org.gcube.application.perform.service.rest.Mappings;
+import org.glassfish.hk2.utilities.binding.AbstractBinder;
+import org.glassfish.jersey.media.multipart.MultiPartFeature;
+import org.glassfish.jersey.server.ResourceConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
-@ApplicationPath(ServiceConstants.APPLICATION_PATH)
-public class PerformService {
+@ApplicationPath(ServiceConstants.SERVICE_NAME)
+public class PerformService extends ResourceConfig{
+
+ private static final Logger log= LoggerFactory.getLogger(PerformService.class);
+
+
public PerformService() {
- super();
+ super();
+
+ AbstractBinder binder = new AbstractBinder() {
+ @Override
+ protected void configure() {
+ bind(MappingManagerImpl.class).to(MappingManager.class);
+ bind(ImporterImpl.class).to(Importer.class);
+
+ }
+ };
+ register(binder);
+ registerClasses(Mappings.class);
+
+// packages("org.gcube.application.perform.service.rest");
+ register(MultiPartFeature.class);
}
+
+
}
diff --git a/src/main/java/org/gcube/application/perform/service/ServiceConstants.java b/src/main/java/org/gcube/application/perform/service/ServiceConstants.java
index e81e7ff..64a8c87 100644
--- a/src/main/java/org/gcube/application/perform/service/ServiceConstants.java
+++ b/src/main/java/org/gcube/application/perform/service/ServiceConstants.java
@@ -2,6 +2,7 @@ package org.gcube.application.perform.service;
public interface ServiceConstants {
+ public static final String SERVICE_NAME="perform-service";
public static final String APPLICATION_PATH="/gcube/service/";
public static interface Mappings{
@@ -13,6 +14,8 @@ public interface ServiceConstants {
public static final String BATCH_TYPE_PARAMETER="type";
public static final String FARM_METHOD="farm";
+
+ public static final String AUTH="statistical.manager";
}
diff --git a/src/main/java/org/gcube/application/perform/service/engine/MappingManager.java b/src/main/java/org/gcube/application/perform/service/engine/MappingManager.java
index bcd9552..88a57e7 100644
--- a/src/main/java/org/gcube/application/perform/service/engine/MappingManager.java
+++ b/src/main/java/org/gcube/application/perform/service/engine/MappingManager.java
@@ -9,6 +9,7 @@ import org.gcube.application.perform.service.engine.model.InvalidRequestExceptio
import org.gcube.application.perform.service.engine.model.anagraphic.Batch;
import org.gcube.application.perform.service.engine.model.anagraphic.Farm;
+
public interface MappingManager {
public Batch getBatch(DBQueryDescriptor desc) throws BeanNotFound, SQLException, InvalidRequestException, InternalException;
diff --git a/src/main/java/org/gcube/application/perform/service/engine/MappingManagerImpl.java b/src/main/java/org/gcube/application/perform/service/engine/MappingManagerImpl.java
index d9d2e07..1c73f92 100644
--- a/src/main/java/org/gcube/application/perform/service/engine/MappingManagerImpl.java
+++ b/src/main/java/org/gcube/application/perform/service/engine/MappingManagerImpl.java
@@ -20,11 +20,11 @@ import org.slf4j.LoggerFactory;
public class MappingManagerImpl implements MappingManager {
private static final Logger log= LoggerFactory.getLogger(MappingManagerImpl.class);
-
+
private static ISQueryDescriptor isQueryDescriptor=null;
+
-
-
+
private static synchronized ISQueryDescriptor getISQueryDescriptor() {
if(isQueryDescriptor==null) {
isQueryDescriptor=
@@ -34,43 +34,43 @@ public class MappingManagerImpl implements MappingManager {
}
return isQueryDescriptor;
}
-
-
+
+
@Override
public Batch getBatch(DBQueryDescriptor desc) throws SQLException, InternalException{
DataBaseManager db=DataBaseManager.get(getISQueryDescriptor());
Connection conn=db.getConnection();
Query getQuery=Queries.GET_BATCH_BY_DESCRIPTIVE_KEY;
PreparedStatement psSearch=getQuery.get(conn, desc);
-
+
ResultSet rs=psSearch.executeQuery();
-
+
+ if(rs.next())
+ return Queries.rowToBatch(rs);
+
+ // ID NOT FOUND, TRY TO REGISTER IT
+
+ log.trace("Registering new Batch from condition {}",desc);
+ PreparedStatement psInsert=Queries.INSERT_BATCH.get(conn, desc);
+
+ boolean inserted=psInsert.executeUpdate()==1;
+ if(inserted) {
+ conn.commit();
+ log.trace("Committed Batch.");
+ }
+ rs=psSearch.executeQuery();
+
if(rs.next())
return Queries.rowToBatch(rs);
-
- // ID NOT FOUND, TRY TO REGISTER IT
-
- log.trace("Registering new Batch from condition {}",desc);
- PreparedStatement psInsert=Queries.INSERT_BATCH.get(conn, desc);
-
- boolean inserted=psInsert.executeUpdate()==1;
- if(inserted) {
- conn.commit();
- log.trace("Committed Batch.");
- }
- rs=psSearch.executeQuery();
-
- if(rs.next())
- return Queries.rowToBatch(rs);
- else throw new BeanNotFound(String.format("Unable to find Bean with ",desc));
-
+ else throw new BeanNotFound(String.format("Unable to find Bean with ",desc));
+
}
@Override
public Farm getFarm(DBQueryDescriptor desc) throws SQLException, InternalException{
DataBaseManager db=DataBaseManager.get(getISQueryDescriptor());
-
-
+
+
Connection conn=db.getConnection();
PreparedStatement psGet=null;
DBField IDField=DBField.Farm.fields.get(DBField.Farm.FARM_ID);
@@ -78,14 +78,14 @@ public class MappingManagerImpl implements MappingManager {
psGet=Queries.GET_FARM_BY_ID.get(conn, desc);
}
- ResultSet rs=psGet.executeQuery();
- if(!rs.next())
- throw new BeanNotFound("Farm not found. Condition was "+desc);
-
- return Queries.rowToFarm(rs);
+ ResultSet rs=psGet.executeQuery();
+ if(!rs.next())
+ throw new BeanNotFound("Farm not found. Condition was "+desc);
+
+ return Queries.rowToFarm(rs);
}
-
-
-
+
+
+
}
diff --git a/src/main/java/org/gcube/application/perform/service/engine/Queries.java b/src/main/java/org/gcube/application/perform/service/engine/Queries.java
index d6e4af8..ddbd6d3 100644
--- a/src/main/java/org/gcube/application/perform/service/engine/Queries.java
+++ b/src/main/java/org/gcube/application/perform/service/engine/Queries.java
@@ -13,7 +13,9 @@ import org.gcube.application.perform.service.engine.model.importer.ImportStatus;
public class Queries {
public static final Query GET_BATCH_BY_DESCRIPTIVE_KEY= new Query("Select * from batches where farmid=? AND type=? AND name= ?",
- new DBField[] {});
+ new DBField[] {DBField.Batch.fields.get(DBField.Batch.FARM_ID),
+ DBField.Batch.fields.get(DBField.Batch.BATCH_TYPE),
+ DBField.Batch.fields.get(DBField.Batch.BATCH_NAME)});
public static final Query INSERT_BATCH=new Query("INSERT INTO batches (id,uuid,farmid,type,name) VALUES (SELECT (max(id)+1 from batches),?,?,?,?) ON CONFLICT DO NOTHING",
new DBField[] {});
diff --git a/src/main/java/org/gcube/application/perform/service/engine/Query.java b/src/main/java/org/gcube/application/perform/service/engine/Query.java
index 7f1bc3d..72a6180 100644
--- a/src/main/java/org/gcube/application/perform/service/engine/Query.java
+++ b/src/main/java/org/gcube/application/perform/service/engine/Query.java
@@ -6,13 +6,18 @@ import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
+import org.gcube.application.perform.service.AnagraphicTests;
import org.gcube.application.perform.service.engine.model.DBField;
import org.gcube.application.perform.service.engine.model.DBQueryDescriptor;
import org.gcube.application.perform.service.engine.model.InvalidRequestException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class Query {
+ private static final Logger log= LoggerFactory.getLogger(Query.class);
+
private final String query;
private final ArrayList psFields;
@@ -36,6 +41,7 @@ public class Query {
}
public PreparedStatement fill(PreparedStatement ps,DBQueryDescriptor desc) throws SQLException, InvalidRequestException{
+ log.debug("Setting VALUES {} for Query {} ",desc,getQuery());
ArrayList fields=getPSFields();
for(int i=0;i client = clientFor(ServiceEndpoint.class);
@@ -51,5 +61,8 @@ public class ISUtils {
return toReturn;
}
-
+ public static final void setFixedToken(String toSet) {
+ log.warn("SETTING FIXED TOKEN. THIS SHOULD HAPPEN ONLY IN DEBUG MODE.");
+ fixedToken=toSet;
+ }
}
diff --git a/src/main/java/org/gcube/application/perform/service/engine/utils/ScopeUtils.java b/src/main/java/org/gcube/application/perform/service/engine/utils/ScopeUtils.java
index a397e3f..d2f4899 100644
--- a/src/main/java/org/gcube/application/perform/service/engine/utils/ScopeUtils.java
+++ b/src/main/java/org/gcube/application/perform/service/engine/utils/ScopeUtils.java
@@ -51,4 +51,6 @@ public class ScopeUtils {
return SecurityTokenProvider.instance.get();
}
+
+
}
diff --git a/src/main/java/org/gcube/application/perform/service/rest/Mappings.java b/src/main/java/org/gcube/application/perform/service/rest/Mappings.java
index 360d675..3115a18 100644
--- a/src/main/java/org/gcube/application/perform/service/rest/Mappings.java
+++ b/src/main/java/org/gcube/application/perform/service/rest/Mappings.java
@@ -10,9 +10,12 @@ import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+import org.gcube.application.perform.service.AnagraphicTests;
import org.gcube.application.perform.service.PerformServiceManager;
import org.gcube.application.perform.service.ServiceConstants;
import org.gcube.application.perform.service.engine.MappingManager;
@@ -23,17 +26,22 @@ import org.gcube.application.perform.service.engine.model.InternalException;
import org.gcube.application.perform.service.engine.model.InvalidRequestException;
import org.gcube.application.perform.service.engine.model.anagraphic.Batch;
import org.gcube.application.perform.service.engine.model.anagraphic.Farm;
+import org.gcube.common.authorization.control.annotations.AuthorizationControl;
import org.gcube.smartgears.annotations.ManagedBy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
@Path(ServiceConstants.Mappings.PATH)
@ManagedBy(PerformServiceManager.class)
-@AuthorizationControl(allowed={"lucio.lelii"}, exception=MyAuthException.class)
+
public class Mappings {
-
+ private static final Logger log= LoggerFactory.getLogger(Mappings.class);
+
+
@Inject
private MappingManager mappings;
@@ -45,10 +53,13 @@ public class Mappings {
* @param farmid
* @return
*/
+
+
@GET
@Path(ServiceConstants.Mappings.BATCHES_METHOD)
@Produces(MediaType.APPLICATION_JSON)
+ @AuthorizationControl(allowed={ServiceConstants.Mappings.AUTH}, exception=MyAuthException.class)
public Batch getBatch(@QueryParam(ServiceConstants.Mappings.BATCH_NAME_PARAMETER) String name,
@QueryParam(ServiceConstants.Mappings.BATCH_TYPE_PARAMETER) String type,
@QueryParam(ServiceConstants.Mappings.FARM_ID_PARAMETER) Long farmid) {
@@ -68,13 +79,20 @@ public class Mappings {
try{
return mappings.getBatch(desc);
}catch(BeanNotFound e) {
+ log.debug("Exception while getting Batch",e);
throw new WebApplicationException("Unable to find Batch with condition "+desc,Response.Status.BAD_REQUEST);
}catch(SQLException e) {
+ log.debug("Exception while getting Batch",e);
throw new WebApplicationException("Unexpected Exception occurred while dealing with database.", e,Response.Status.INTERNAL_SERVER_ERROR);
} catch (InvalidRequestException e) {
+ log.debug("Exception while getting Batch",e);
throw new WebApplicationException("Unable to search for Batch. ",e,Response.Status.BAD_REQUEST);
- } catch (InternalException e) {
+ } catch (InternalException e) {
+ log.warn("Unexpected Exception while getting Batch",e);
throw new WebApplicationException("Unexpected Exception.", e,Response.Status.INTERNAL_SERVER_ERROR);
+ }catch(Throwable t) {
+ log.warn("Unexpected Exception while getting Batch",t);
+ throw new WebApplicationException("Unexpected Exception.", t,Response.Status.INTERNAL_SERVER_ERROR);
}
}
@@ -89,18 +107,20 @@ public class Mappings {
@GET
@Path(ServiceConstants.Mappings.FARM_METHOD)
@Produces(MediaType.APPLICATION_JSON)
- public Farm getFarm(@QueryParam(ServiceConstants.Mappings.FARM_ID_PARAMETER) Long farmid,
- @QueryParam(ServiceConstants.Mappings.FARM_UUID_PARAMETER) String farmuuid){
-
+ @AuthorizationControl(allowed={ServiceConstants.Mappings.AUTH}, exception=MyAuthException.class)
+ public Farm getFarm(@Context UriInfo info){
+
DBQueryDescriptor desc=null;
-
+
try {
- InterfaceCommons.checkMandatory(farmid, ServiceConstants.Mappings.FARM_ID_PARAMETER);
- desc=new DBQueryDescriptor(Collections.singletonMap(DBField.Farm.fields.get(DBField.Farm.FARM_ID), farmid));
+ String farmidString=info.getQueryParameters().getFirst(ServiceConstants.Mappings.FARM_ID_PARAMETER);
+ InterfaceCommons.checkMandatory(farmidString, ServiceConstants.Mappings.FARM_ID_PARAMETER);
+ desc=new DBQueryDescriptor(Collections.singletonMap(DBField.Farm.fields.get(DBField.Farm.FARM_ID), Long.parseLong(farmidString)));
}catch(WebApplicationException e) {
try {
- InterfaceCommons.checkMandatory(farmuuid, ServiceConstants.Mappings.FARM_UUID_PARAMETER);
- desc=new DBQueryDescriptor(Collections.singletonMap(DBField.Farm.fields.get(DBField.Farm.UUID), farmuuid));
+ String farmUUID=info.getQueryParameters().getFirst(ServiceConstants.Mappings.FARM_UUID_PARAMETER);
+ InterfaceCommons.checkMandatory(farmUUID, ServiceConstants.Mappings.FARM_UUID_PARAMETER);
+ desc=new DBQueryDescriptor(Collections.singletonMap(DBField.Farm.fields.get(DBField.Farm.UUID), farmUUID));
}catch(WebApplicationException e1) {
throw new WebApplicationException("Specify either "+ServiceConstants.Mappings.FARM_UUID_PARAMETER+" or "+ServiceConstants.Mappings.FARM_ID_PARAMETER,Response.Status.BAD_REQUEST);
}
@@ -109,13 +129,24 @@ public class Mappings {
try{
return mappings.getFarm(desc);
}catch(BeanNotFound e) {
+ log.debug("Exception while getting Farm",e);
throw new WebApplicationException("Unable to find Farm with condition "+desc,Response.Status.BAD_REQUEST);
}catch(SQLException e) {
+ log.debug("Exception while getting Farm",e);
throw new WebApplicationException("Unexpected Exception occurred while dealing with database.", e,Response.Status.INTERNAL_SERVER_ERROR);
} catch (InvalidRequestException e) {
+ log.debug("Exception while getting Farm",e);
throw new WebApplicationException("Unable to search for Farm. ",e,Response.Status.BAD_REQUEST);
} catch (InternalException e) {
+ log.warn("Unexpected Exception while getting Farm",e);
throw new WebApplicationException("Unexpected Exception.", e,Response.Status.INTERNAL_SERVER_ERROR);
+ }catch(NumberFormatException t) {
+ throw new WebApplicationException("Invalid FarmID format "+desc,Response.Status.BAD_REQUEST);
+ }catch(Throwable t) {
+ log.warn("Unexpected Exception while getting Farm",t);
+ throw new WebApplicationException("Unexpected Exception.", t,Response.Status.INTERNAL_SERVER_ERROR);
}
}
+
+
}
diff --git a/src/main/java/org/gcube/application/perform/service/rest/MyAuthException.java b/src/main/java/org/gcube/application/perform/service/rest/MyAuthException.java
new file mode 100644
index 0000000..4ad1573
--- /dev/null
+++ b/src/main/java/org/gcube/application/perform/service/rest/MyAuthException.java
@@ -0,0 +1,16 @@
+package org.gcube.application.perform.service.rest;
+
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Response.Status;
+
+public class MyAuthException extends WebApplicationException {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public MyAuthException(Throwable cause) {
+ super(cause, Status.FORBIDDEN);
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/config.properties b/src/main/webapp/WEB-INF/config.properties
index e69de29..e0d6211 100644
--- a/src/main/webapp/WEB-INF/config.properties
+++ b/src/main/webapp/WEB-INF/config.properties
@@ -0,0 +1,11 @@
+db.pools.max_idle=5
+db.pools.max_total=50
+db.pools.min_total=3
+
+mapping-db.ep.name=PF_DB
+mapping-db.ep.category=Database
+
+performance-db.ep.name=PF_DB2
+performance-db.ep.category=PF_DB2
+
+dm.importer.computationid=org.gcube.dataanalysis.wps.statisticalmanager.synchserver.mappedclasses.transducerers.PERFORMFISH_DATA_EXTRACTOR
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index f1d7ed4..1daeabf 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -1,5 +1,23 @@
-
+
+ org.gcube.application.perform.service.PerformService
+ org.glassfish.jersey.servlet.ServletContainer
+
+
+ javax.ws.rs.Application
+ org.gcube.application.perform.service.PerformService
+
+
+ jersey.config.server.provider.classnames
+ org.glassfish.jersey.media.multipart.MultiPartFeature
+
+
+
+ jersey.config.xml.formatOutput
+ true
+
+ 1
+
org.gcube.application.perform.service.PerformService
/gcube/service/*
diff --git a/src/test/java/org/gcube/application/perform/service/AnagraphicTests.java b/src/test/java/org/gcube/application/perform/service/AnagraphicTests.java
index 4d3c112..ddd8fce 100644
--- a/src/test/java/org/gcube/application/perform/service/AnagraphicTests.java
+++ b/src/test/java/org/gcube/application/perform/service/AnagraphicTests.java
@@ -1,5 +1,68 @@
package org.gcube.application.perform.service;
-public class AnagraphicTests {
+import java.net.MalformedURLException;
+import java.nio.file.Paths;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.Application;
+import javax.ws.rs.core.Response;
+
+import org.gcube.application.perform.service.engine.utils.ISUtils;
+import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
+import org.glassfish.jersey.test.JerseyTest;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class AnagraphicTests extends JerseyTest{
+
+ private static final Logger log= LoggerFactory.getLogger(AnagraphicTests.class);
+
+ @BeforeClass
+ public static void init() throws MalformedURLException {
+ LocalConfiguration.init(Paths.get("src/main/webapp/WEB-INF/config.properties").toUri().toURL());
+ TokenSetter.set("/gcube/preprod/preVRE");
+ ISUtils.setFixedToken(SecurityTokenProvider.instance.get());
+
+ }
+
+
+ @Override
+ protected Application configure() {
+
+ return new PerformService();
+ }
+
+
+ @Test
+ public void getBatch() {
+ WebTarget target=
+// target(ServiceConstants.SERVICE_NAME).
+// path(ServiceConstants.APPLICATION_PATH).
+ target(ServiceConstants.Mappings.PATH).
+ path(ServiceConstants.Mappings.BATCHES_METHOD).
+ queryParam(ServiceConstants.Mappings.BATCH_NAME_PARAMETER, "gino").
+ queryParam(ServiceConstants.Mappings.BATCH_TYPE_PARAMETER, "pino").
+ queryParam(ServiceConstants.Mappings.FARM_ID_PARAMETER, 1234);
+
+ System.out.println(target.getUri());
+ Response resp=target.request().get();
+ System.out.println(resp.getStatus() + " : "+ resp.readEntity(String.class));
+ }
+
+ @Test
+ public void getFarm() {
+ WebTarget target=
+// target(ServiceConstants.SERVICE_NAME).
+// path(ServiceConstants.APPLICATION_PATH).
+ target(ServiceConstants.Mappings.PATH).
+ path(ServiceConstants.Mappings.FARM_METHOD).
+ queryParam(ServiceConstants.Mappings.FARM_ID_PARAMETER, 12334).
+ queryParam(ServiceConstants.Mappings.FARM_UUID_PARAMETER, "pino");
+
+ System.out.println(target.getUri());
+ Response resp=target.request().get();
+ System.out.println(resp.getStatus() + " : "+ resp.readEntity(String.class));
+ }
}
diff --git a/src/test/java/org/gcube/application/perform/service/TokenSetter.java b/src/test/java/org/gcube/application/perform/service/TokenSetter.java
new file mode 100644
index 0000000..6e200fa
--- /dev/null
+++ b/src/test/java/org/gcube/application/perform/service/TokenSetter.java
@@ -0,0 +1,40 @@
+package org.gcube.application.perform.service;
+
+import java.util.Properties;
+
+import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
+import org.gcube.common.scope.api.ScopeProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TokenSetter {
+
+
+private static Properties props=new Properties();
+
+ private static final Logger log= LoggerFactory.getLogger(AnagraphicTests.class);
+
+ static{
+ try {
+ props.load(TokenSetter.class.getResourceAsStream("/tokens.properties"));
+ } catch (Exception e) {
+ throw new RuntimeException("YOU NEED TO SET TOKEN FILE IN CONFIGURATION");
+ }
+ }
+
+
+ public static void set(String scope){
+ try{
+ if(!props.containsKey(scope)) throw new RuntimeException("No token found for scope : "+scope);
+ SecurityTokenProvider.instance.set(props.getProperty(scope));
+ }catch(Throwable e){
+ log.warn("Unable to set token for scope "+scope,e);
+ }
+ ScopeProvider.instance.set(scope);
+ }
+
+
+
+
+}
+
diff --git a/src/test/resources/logback.xml b/src/test/resources/logback.xml
new file mode 100644
index 0000000..b70dd26
--- /dev/null
+++ b/src/test/resources/logback.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
\ No newline at end of file