181 lines
6.2 KiB
Java
181 lines
6.2 KiB
Java
package org.gcube.data_catalogue.grsf_publish_ws;
|
|
|
|
import java.beans.IntrospectionException;
|
|
import java.beans.PropertyDescriptor;
|
|
import java.io.BufferedReader;
|
|
import java.io.IOException;
|
|
import java.io.InputStreamReader;
|
|
import java.lang.reflect.Field;
|
|
import java.lang.reflect.InvocationTargetException;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import org.gcube.data_catalogue.grsf_publish_ws.custom_annotations.CustomField;
|
|
import org.gcube.data_catalogue.grsf_publish_ws.custom_annotations.Group;
|
|
import org.gcube.data_catalogue.grsf_publish_ws.custom_annotations.Tag;
|
|
import org.gcube.data_catalogue.grsf_publish_ws.json.input.FisheryRecord;
|
|
import org.gcube.data_catalogue.grsf_publish_ws.json.input.StockRecord;
|
|
import org.gcube.data_catalogue.grsf_publish_ws.utils.HelperMethods;
|
|
import org.gcube.data_catalogue.grsf_publish_ws.utils.groups.Abundance_Level;
|
|
import org.gcube.data_catalogue.grsf_publish_ws.utils.groups.Source;
|
|
import org.gcube.data_catalogue.grsf_publish_ws.utils.groups.Status;
|
|
import org.gcube.data_catalogue.grsf_publish_ws.utils.groups.Type;
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
import eu.trentorise.opendata.jackan.internal.org.apache.http.HttpResponse;
|
|
import eu.trentorise.opendata.jackan.internal.org.apache.http.client.methods.HttpGet;
|
|
import eu.trentorise.opendata.jackan.internal.org.apache.http.impl.client.CloseableHttpClient;
|
|
import eu.trentorise.opendata.jackan.internal.org.apache.http.impl.client.HttpClientBuilder;
|
|
|
|
public class JTests {
|
|
|
|
private static final String TEST_TOKEN = "d423aed7-e9e2-424a-b9e7-2bbbd151d9c4-98187548";
|
|
|
|
//@Test
|
|
public void test() throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, IntrospectionException {
|
|
|
|
FisheryRecord recordFishery = new FisheryRecord();
|
|
recordFishery.setType(Type.Fishing_Description);
|
|
recordFishery.setDatabaseSources(Source.FIRMS);
|
|
recordFishery.setStatus(Status.Pending);
|
|
|
|
List<String> tags = new ArrayList<String>();
|
|
List<String> groupsTitles = new ArrayList<String>();
|
|
Map<String, Object> extras = new HashMap<String, Object>();
|
|
|
|
// bottom up, looks up for Tag/Group fields
|
|
Class<?> current = recordFishery.getClass();
|
|
do{
|
|
System.out.println("Class is " + current.getCanonicalName());
|
|
Field[] fields = current.getDeclaredFields();
|
|
|
|
for (Field field : fields) {
|
|
if(field.isAnnotationPresent(Tag.class)){
|
|
Object f = new PropertyDescriptor(field.getName(), current).getReadMethod().invoke(recordFishery);
|
|
if(f != null){
|
|
|
|
tags.add(f.toString());
|
|
|
|
}
|
|
}
|
|
if(field.isAnnotationPresent(Group.class)){
|
|
Object f = new PropertyDescriptor(field.getName(), current).getReadMethod().invoke(recordFishery);
|
|
if(f != null){
|
|
|
|
groupsTitles.add(f.toString());
|
|
|
|
}
|
|
}
|
|
if(field.isAnnotationPresent(CustomField.class)){
|
|
Object f = new PropertyDescriptor(field.getName(), current).getReadMethod().invoke(recordFishery);
|
|
if(f != null){
|
|
|
|
// get the key to put into the map first
|
|
extras.put(field.getAnnotation(CustomField.class).key(), f);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
while((current = current.getSuperclass())!=null);
|
|
|
|
// print
|
|
System.out.println("TAGS " + tags);
|
|
System.out.println("GROUPS " + groupsTitles);
|
|
System.out.println("EXTRAS " + extras);
|
|
}
|
|
|
|
//@Test
|
|
public void testJsonSerializer(){
|
|
//
|
|
// String pendingAsString = "pending";
|
|
// Status resSatus = Status.onDeserialize(pendingAsString);
|
|
// System.out.println("Res is " + resSatus);
|
|
//
|
|
// System.out.println("To string is " + resSatus.onSerialize());
|
|
|
|
Abundance_Level type = Abundance_Level.onDeserialize("Uncertain Not assessed");
|
|
System.out.println("Res is " + type.onSerialize());
|
|
}
|
|
|
|
//@Test
|
|
public void testNameToStringEnum(){
|
|
|
|
Abundance_Level elem = Abundance_Level.Uncertain_Not_Assessed;
|
|
System.out.println("Enum name is = " + elem.name() + ", enum to string is = " + elem.toString() + ", enum on serialize = " + elem.onSerialize());
|
|
|
|
// try deserializer
|
|
String deserialize = "uncertain not assessed";
|
|
Abundance_Level res = Abundance_Level.onDeserialize(deserialize);
|
|
System.out.println(res.name());
|
|
}
|
|
|
|
//@Test
|
|
public void testJSONMapping() throws IOException{
|
|
|
|
StockRecord recordFishery = new StockRecord();
|
|
recordFishery.setType(Type.Fishing_Description);
|
|
recordFishery.setDatabaseSources(Source.FIRMS);
|
|
recordFishery.setAuthor("Costantino Perciante");
|
|
recordFishery.setMaintainer("Costantino Perciante");
|
|
recordFishery.setAuthorContact("costantino.perciante@isti.cnr.it");
|
|
recordFishery.setStatus(Status.Pending);
|
|
recordFishery.setVersion(new Long(1));
|
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
//Object to JSON in String
|
|
String jsonInString = mapper.writeValueAsString(recordFishery);
|
|
System.out.println(jsonInString);
|
|
|
|
// JSON back to object
|
|
StockRecord converted = mapper.readValue(jsonInString, recordFishery.getClass());
|
|
System.out.println(converted);
|
|
}
|
|
|
|
//@Test
|
|
public void instanciateGCoreReader() throws Exception{
|
|
|
|
String baseUrl = org.gcube.data_catalogue.grsf_publish_ws.utils.GcoreEndpointReaderSocialWS.getUrlSocialWS("/gcube/devNext/NextNext");
|
|
System.out.println("Base url is " + baseUrl);
|
|
|
|
try(CloseableHttpClient client = HttpClientBuilder.create().build();){
|
|
|
|
String url = baseUrl.replace("80", "") + "/users/getUserEmail?gcube-token=" + TEST_TOKEN;
|
|
System.out.println("Request url is " + url);
|
|
HttpGet getRequest = new HttpGet(url);
|
|
HttpResponse response = client.execute(getRequest);
|
|
|
|
if (response.getStatusLine().getStatusCode() != 200) {
|
|
throw new RuntimeException("Failed : HTTP error code : "
|
|
+ response.getStatusLine().getStatusCode());
|
|
}
|
|
|
|
BufferedReader br = new BufferedReader(
|
|
new InputStreamReader((response.getEntity().getContent())));
|
|
|
|
String output;
|
|
System.out.println("Output from Server .... \n");
|
|
while ((output = br.readLine()) != null) {
|
|
System.out.println(output);
|
|
}
|
|
|
|
System.out.println(response.toString());
|
|
|
|
}catch(Exception e){
|
|
System.err.println("error while performing post method " + e.toString());
|
|
}
|
|
}
|
|
|
|
//@Test
|
|
public void testFromScopeToOrgName(){
|
|
|
|
System.out.println("Valid ? " + HelperMethods.isValid("this is not valid"));
|
|
// System.out.println(HelperMethods.retrieveOrgNameFromScope("/gcube/devNext/NextNext"));
|
|
|
|
}
|
|
}
|