diff --git a/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java b/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
index ac8ba3e65918dc0bc359ba8959fc56981219cfd4..f292f8099a3b1863e11899ee54e4e5759876b0bb 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
@@ -446,8 +446,7 @@ public class ForecastBean {
Integer instancesCompleted = 0;
for (VipsCoreInstance vipsCoreInstance : vipsCoreInstances) {
LOGGER.debug("Attempting to connect to " + vipsCoreInstance.getUri());
- try {
- Client client = ClientBuilder.newClient();
+ try (Client client = ClientBuilder.newClient()){
WebTarget target = client.target(vipsCoreInstance.getUri());
ResteasyWebTarget rTarget = (ResteasyWebTarget) target;
ManagerResource resource = rTarget.proxy(ManagerResource.class);
@@ -759,11 +758,12 @@ public class ForecastBean {
* @return
*/
private ManagerResource getManagerResource(ModelInformation modelInformation) {
- Client client = ClientBuilder.newClient();
- WebTarget target = client.target(modelInformation.getVipsCoreInstanceId().getUri());
- ResteasyWebTarget rTarget = (ResteasyWebTarget) target;
- ManagerResource resource = rTarget.proxy(ManagerResource.class);
- return resource;
+ try(Client client = ClientBuilder.newClient()){
+ WebTarget target = client.target(modelInformation.getVipsCoreInstanceId().getUri());
+ ResteasyWebTarget rTarget = (ResteasyWebTarget) target;
+ ManagerResource resource = rTarget.proxy(ManagerResource.class);
+ return resource;
+ }
}
public Kml getForecastsAggregateKml(List<Integer> organizationIds, List<Integer> cropOrganismIds, Date theDate,
diff --git a/src/main/java/no/nibio/vips/logic/service/ObservationService.java b/src/main/java/no/nibio/vips/logic/service/ObservationService.java
index 09f31ed6ec7594ce820482b1b121d09b9673aa93..41ff04066eeeb192ca26b043eb1c41040b6720c5 100755
--- a/src/main/java/no/nibio/vips/logic/service/ObservationService.java
+++ b/src/main/java/no/nibio/vips/logic/service/ObservationService.java
@@ -925,52 +925,55 @@ public class ObservationService {
* @return The list of observations, with the locations masked with the selected polygon service
*/
private List<Observation> maskObservations(PolygonService polygonService, List<Observation> observations) {
- //observations.forEach(o->System.out.println(o.getObservationId()));
- Client client = ClientBuilder.newClient();
- WebTarget target = client.target(polygonService.getGisSearchUrlTemplate());
- List<ReferencedPoint> points = observations.stream()
- .filter(obs -> (obs.getGeoinfos() != null && !obs.getGeoinfos().isEmpty()) || obs.getLocation() != null)
- .map(obs -> {
- ReferencedPoint rp = new ReferencedPoint();
- rp.setId(String.valueOf(obs.getObservationId()));
- if (obs.getGeoinfos() != null) {
- rp.setLon(obs.getGeoinfos().get(0).getGisGeom().getCoordinate().x);
- rp.setLat(obs.getGeoinfos().get(0).getGisGeom().getCoordinate().y);
- } else {
- rp.setLon(obs.getLocation().getLongitude());
- rp.setLat(obs.getLocation().getLatitude());
- }
- return rp;
- }).collect(Collectors.toList());
- /*System.out.println("maskobservations - target.request() about to be called");
- ObjectMapper oMapper = new ObjectMapper();
- try {
- System.out.println(oMapper.writeValueAsString(Entity.entity(points.toArray(new ReferencedPoint[points.size()]), MediaType.APPLICATION_JSON)));
- } catch (JsonProcessingException ex) {
- Logger.getLogger(ObservationService.class.getName()).log(Level.SEVERE, null, ex);
- }*/
- PointMappingResponse response = target.request(MediaType.APPLICATION_JSON)
- .post(Entity.entity(points.toArray(new ReferencedPoint[points.size()]), MediaType.APPLICATION_JSON), PointMappingResponse.class);
- // We need to loop through the observations and find corresponding featurecollections and replace those
- Map<Integer, Feature> indexedPolygons = new HashMap<>();
- for (Feature feature : response.getFeatureCollection().getFeatures()) {
- indexedPolygons.put((Integer) feature.getProperties().get("id"), feature);
- }
- GISEntityUtil gisEntityUtil = new GISEntityUtil();
- for (Map mapping : response.getMapping()) {
- Integer observationId = Integer.valueOf((String) mapping.get("id"));
- Integer borderId = (Integer) mapping.get("borderid");
- observations.stream().filter((o) -> (o.getObservationId().equals(observationId))).forEachOrdered((o) -> {
- Gis polygon = gisEntityUtil.getGisFromFeature(indexedPolygons.get(borderId));
- List<Gis> gis = new ArrayList<>();
- gis.add(polygon);
- o.setGeoinfos(gis);
- o.setLocation(null);
- o.setLocationPointOfInterestId(null);
- });
- }
+ try(Client client = ClientBuilder.newClient())
+ {
+ //observations.forEach(o->System.out.println(o.getObservationId()));
+
+ WebTarget target = client.target(polygonService.getGisSearchUrlTemplate());
+ List<ReferencedPoint> points = observations.stream()
+ .filter(obs -> (obs.getGeoinfos() != null && !obs.getGeoinfos().isEmpty()) || obs.getLocation() != null)
+ .map(obs -> {
+ ReferencedPoint rp = new ReferencedPoint();
+ rp.setId(String.valueOf(obs.getObservationId()));
+ if (obs.getGeoinfos() != null) {
+ rp.setLon(obs.getGeoinfos().get(0).getGisGeom().getCoordinate().x);
+ rp.setLat(obs.getGeoinfos().get(0).getGisGeom().getCoordinate().y);
+ } else {
+ rp.setLon(obs.getLocation().getLongitude());
+ rp.setLat(obs.getLocation().getLatitude());
+ }
+ return rp;
+ }).collect(Collectors.toList());
+ /*System.out.println("maskobservations - target.request() about to be called");
+ ObjectMapper oMapper = new ObjectMapper();
+ try {
+ System.out.println(oMapper.writeValueAsString(Entity.entity(points.toArray(new ReferencedPoint[points.size()]), MediaType.APPLICATION_JSON)));
+ } catch (JsonProcessingException ex) {
+ Logger.getLogger(ObservationService.class.getName()).log(Level.SEVERE, null, ex);
+ }*/
+ PointMappingResponse response = target.request(MediaType.APPLICATION_JSON)
+ .post(Entity.entity(points.toArray(new ReferencedPoint[points.size()]), MediaType.APPLICATION_JSON), PointMappingResponse.class);
+ // We need to loop through the observations and find corresponding featurecollections and replace those
+ Map<Integer, Feature> indexedPolygons = new HashMap<>();
+ for (Feature feature : response.getFeatureCollection().getFeatures()) {
+ indexedPolygons.put((Integer) feature.getProperties().get("id"), feature);
+ }
+ GISEntityUtil gisEntityUtil = new GISEntityUtil();
+ for (Map mapping : response.getMapping()) {
+ Integer observationId = Integer.valueOf((String) mapping.get("id"));
+ Integer borderId = (Integer) mapping.get("borderid");
+ observations.stream().filter((o) -> (o.getObservationId().equals(observationId))).forEachOrdered((o) -> {
+ Gis polygon = gisEntityUtil.getGisFromFeature(indexedPolygons.get(borderId));
+ List<Gis> gis = new ArrayList<>();
+ gis.add(polygon);
+ o.setGeoinfos(gis);
+ o.setLocation(null);
+ o.setLocationPointOfInterestId(null);
+ });
+ }
- return observations;
+ return observations;
+ }
}
/**
diff --git a/src/main/java/no/nibio/vips/logic/service/ObservationTimeSeriesService.java b/src/main/java/no/nibio/vips/logic/service/ObservationTimeSeriesService.java
index f92c6340fa819562bc4da6357f286a70eb2549de..ef6257888e06d98ba8a2c48c490e86429399d515 100644
--- a/src/main/java/no/nibio/vips/logic/service/ObservationTimeSeriesService.java
+++ b/src/main/java/no/nibio/vips/logic/service/ObservationTimeSeriesService.java
@@ -134,31 +134,32 @@ public class ObservationTimeSeriesService {
* @return The observation time series, with location masked with the provided polygon service
*/
private void maskLocation(PolygonService polygonService, ObservationTimeSeries observationTimeSeries) {
- Client client = ClientBuilder.newClient();
- WebTarget target = client.target(polygonService.getGisSearchUrlTemplate());
- ReferencedPoint rp = new ReferencedPoint();
- rp.setId(String.valueOf(observationTimeSeries.getObservationTimeSeriesId()));
- rp.setLon(observationTimeSeries.getLocationPointOfInterest().getLongitude());
- rp.setLat(observationTimeSeries.getLocationPointOfInterest().getLatitude());
+ try(Client client = ClientBuilder.newClient()){
+ WebTarget target = client.target(polygonService.getGisSearchUrlTemplate());
+ ReferencedPoint rp = new ReferencedPoint();
+ rp.setId(String.valueOf(observationTimeSeries.getObservationTimeSeriesId()));
+ rp.setLon(observationTimeSeries.getLocationPointOfInterest().getLongitude());
+ rp.setLat(observationTimeSeries.getLocationPointOfInterest().getLatitude());
- ReferencedPoint[] pointArray = {rp};
- PointMappingResponse response = target.request(MediaType.APPLICATION_JSON).post(Entity.entity(pointArray, MediaType.APPLICATION_JSON), PointMappingResponse.class);
- // We need to loop through the observations and find corresponding featurecollections and replace those
- Map<Integer, Feature> indexedPolygons = new HashMap<>();
- for (Feature feature : response.getFeatureCollection().getFeatures()) {
- indexedPolygons.put((Integer) feature.getProperties().get("id"), feature);
- }
- GISEntityUtil gisEntityUtil = new GISEntityUtil();
- for (Map mapping : response.getMapping()) {
- Integer observationTimeSeriesId = Integer.valueOf((String) mapping.get("id"));
- if (observationTimeSeries.getObservationTimeSeriesId().equals(observationTimeSeriesId)) {
- Integer borderId = (Integer) mapping.get("borderid");
- Gis polygon = gisEntityUtil.getGisFromFeature(indexedPolygons.get(borderId));
- List<Gis> gis = new ArrayList<>();
- gis.add(polygon);
- observationTimeSeries.setGeoInfoList(gis);
- observationTimeSeries.setLocationPointOfInterest(null);
- observationTimeSeries.setLocationPointOfInterestId(null);
+ ReferencedPoint[] pointArray = {rp};
+ PointMappingResponse response = target.request(MediaType.APPLICATION_JSON).post(Entity.entity(pointArray, MediaType.APPLICATION_JSON), PointMappingResponse.class);
+ // We need to loop through the observations and find corresponding featurecollections and replace those
+ Map<Integer, Feature> indexedPolygons = new HashMap<>();
+ for (Feature feature : response.getFeatureCollection().getFeatures()) {
+ indexedPolygons.put((Integer) feature.getProperties().get("id"), feature);
+ }
+ GISEntityUtil gisEntityUtil = new GISEntityUtil();
+ for (Map mapping : response.getMapping()) {
+ Integer observationTimeSeriesId = Integer.valueOf((String) mapping.get("id"));
+ if (observationTimeSeries.getObservationTimeSeriesId().equals(observationTimeSeriesId)) {
+ Integer borderId = (Integer) mapping.get("borderid");
+ Gis polygon = gisEntityUtil.getGisFromFeature(indexedPolygons.get(borderId));
+ List<Gis> gis = new ArrayList<>();
+ gis.add(polygon);
+ observationTimeSeries.setGeoInfoList(gis);
+ observationTimeSeries.setLocationPointOfInterest(null);
+ observationTimeSeries.setLocationPointOfInterestId(null);
+ }
}
}
}
diff --git a/src/test/java/no/nibio/vips/logic/entity/rest/PointMappingRequestTest.java b/src/test/java/no/nibio/vips/logic/entity/rest/PointMappingRequestTest.java
index d0ea65c47482c1029673bc6abdfb4deb04b87292..5b62e2df13454958f59fc682ee9156a0bb0818d2 100644
--- a/src/test/java/no/nibio/vips/logic/entity/rest/PointMappingRequestTest.java
+++ b/src/test/java/no/nibio/vips/logic/entity/rest/PointMappingRequestTest.java
@@ -102,16 +102,16 @@ public class PointMappingRequestTest {
ReferencedPoint[] instance = points.toArray(new ReferencedPoint[points.size()]);
- Client client = ClientBuilder.newClient();
- WebTarget target = client.target("https://proxy1.nibio.no/municipality_cache_ws/pointmapping/1/4326");
+ try(Client client = ClientBuilder.newClient()) {
+ WebTarget target = client.target("https://proxy1.nibio.no/municipality_cache_ws/pointmapping/1/4326");
- //PointMappingResponse response =
- PointMappingResponse response = target.request(MediaType.APPLICATION_JSON)
- .post(Entity.entity(instance, MediaType.APPLICATION_JSON), PointMappingResponse.class);//.toString();
- client.close();
- //System.out.println(((Polygon)response.getFeatureCollection().getFeatures()[0].getGeometry()).getCoordinates()[0].length);
-
- assertNotNull(response);
+ //PointMappingResponse response =
+ PointMappingResponse response = target.request(MediaType.APPLICATION_JSON)
+ .post(Entity.entity(instance, MediaType.APPLICATION_JSON), PointMappingResponse.class);//.toString();
+ //System.out.println(((Polygon)response.getFeatureCollection().getFeatures()[0].getGeometry()).getCoordinates()[0].length);
+
+ assertNotNull(response);
+ }
//System.out.println(Entity.entity(instance, MediaType.APPLICATION_JSON));
//System.out.println(target.request(MediaType.APPLICATION_JSON)