Skip to content
Snippets Groups Projects
Commit dc71080b authored by Tor-Einar Skog's avatar Tor-Einar Skog
Browse files

Added support for IPM Decisions

parent 78e5a9bb
No related branches found
No related tags found
No related merge requests found
......@@ -20,13 +20,18 @@
package no.nibio.vips.coremanager.config;
import com.bedatadriven.jackson.datatype.jts.JtsModule;
import com.fasterxml.jackson.databind.Module.SetupContext;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.ext.ContextResolver;
import javax.ws.rs.ext.Provider;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import javax.ws.rs.Consumes;
import net.ipmdecisions.weather.entity.LocationWeatherData;
import no.nibio.vips.ipmdecisions.LocationWeatherDataDeserializer;
/**
* This config ensures that Jackson serializes dates as [ISO-8601 ]-compliant notation,
......@@ -45,6 +50,10 @@ public class JacksonConfig implements ContextResolver<ObjectMapper>{
objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.registerModule(new JtsModule());
objectMapper.registerModule(new JavaTimeModule());
SimpleModule module = new SimpleModule();
module.addDeserializer(LocationWeatherData.class, new LocationWeatherDataDeserializer());
objectMapper.registerModule(module);
}
@Override
......
......@@ -44,12 +44,14 @@ import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import no.nibio.vips.core.service.ModelResource;
import no.nibio.vips.coremanager.config.JacksonConfig;
import no.nibio.vips.coremanager.session.ControllerGetter;
import no.nibio.vips.coremanager.entity.ModelUsageLog;
import no.nibio.vips.coremanager.entity.VIPSCoreCredentials;
import no.nibio.vips.coremanager.entity.VipsCoreUser;
import no.nibio.vips.entity.ModelConfiguration;
import no.nibio.vips.entity.ModelRunRequest;
import no.nibio.vips.ipmdecisions.IPMDecisionsModelConfiguration;
import no.nibio.vips.model.Model;
import no.nibio.vips.util.ServletUtil;
import org.jboss.resteasy.annotations.GZIP;
......@@ -400,6 +402,18 @@ public class ManagerResourceImpl implements ManagerResource{
}
/**
* TODO Add some kind of authentication and logging for IPM Decisions
* @param modelId
* @param config
* @return
*/
@Override
public Response runModelForIPMDecisions(String modelId, IPMDecisionsModelConfiguration config) {
return this.getModelResource().runModelForIPMDecisions(modelId, config);
}
/**
* Instantiates and runs the requested model asynchronously (Implement if needed)
* @param modelId
......@@ -418,7 +432,11 @@ public class ManagerResourceImpl implements ManagerResource{
private ModelResource getModelResource()
{
Client client = ClientBuilder.newClient();
// This ensures that the general ObjectMapper config is applied to the
// client.
client.register(JacksonConfig.class);
WebTarget target = client.target(VIPSCORE_URL);
ResteasyWebTarget rTarget = (ResteasyWebTarget) target;
ModelResource resource = rTarget.proxy(ModelResource.class);
......@@ -488,5 +506,6 @@ public class ManagerResourceImpl implements ManagerResource{
return Response.ok(this.getStaticFileAsInputStream(servletContext, "staticcss/" + fileName)).build();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment