From 4fbf4480406c0861c344dbeb18014552a2d2564d Mon Sep 17 00:00:00 2001 From: Alvaro Vega Date: Mon, 29 Jul 2024 10:40:39 +0200 Subject: [PATCH 1/8] check geometry possible types --- .../cygnus/backends/arcgis/model/Feature.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java index 559a110a5..d83b72266 100644 --- a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java +++ b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java @@ -309,13 +309,21 @@ public static Feature createInstanceFromJson(String json) throws ArcgisException */ public static Feature createInstanceFromJson(JsonObject json) throws ArcgisException { try { - Geometry geometry; + Geometry geometry = null; if (json.has(GEOMETRY_TAG)) { - JsonObject jsonGeometry = json.get(GEOMETRY_TAG).getAsJsonObject(); - geometry = Point.createInstanceFromJson(jsonGeometry); // TODO another - //geometry types? - } else { - geometry = null; + JsonElement jsonGeometryElement = json.get(GEOMETRY_TAG); + if (jsonGeometryElement.isJsonObject()) { + JsonObject jsonGeometry = jsonGeometryElement.getAsJsonObject(); + if (jsonGeometry.get("x") != null) { + geometry = Point.createInstanceFromJson(jsonGeometry); + } else if (jsonGeometry.get("paths") != null) { + // geometry = Polyline.createInstance(jsonGeometry); + } else if (jsonGeometry.get("points") != null) { + // geometry = MultiPoint.createInstance(jsonGeometry); + } else if (jsonGeometry.get("rings") != null) { + // geometry = Polygon.createInstance(jsonGeometry); + } + } } Map attributes = attToMap(json.get(ATTRIBUTES_TAG).getAsJsonObject()); return new Feature(geometry, attributes); From 3347387e4351a6e617a53382ab8fd2d375c0789b Mon Sep 17 00:00:00 2001 From: Alvaro Vega Date: Mon, 29 Jul 2024 13:57:46 +0200 Subject: [PATCH 2/8] add PolyLine impl --- .../cygnus/backends/arcgis/model/Feature.java | 10 +- .../backends/arcgis/model/PolyLine.java | 196 ++++++++++++++++++ 2 files changed, 201 insertions(+), 5 deletions(-) create mode 100644 cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/PolyLine.java diff --git a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java index d83b72266..bb20b7f16 100644 --- a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java +++ b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java @@ -317,11 +317,11 @@ public static Feature createInstanceFromJson(JsonObject json) throws ArcgisExcep if (jsonGeometry.get("x") != null) { geometry = Point.createInstanceFromJson(jsonGeometry); } else if (jsonGeometry.get("paths") != null) { - // geometry = Polyline.createInstance(jsonGeometry); - } else if (jsonGeometry.get("points") != null) { - // geometry = MultiPoint.createInstance(jsonGeometry); - } else if (jsonGeometry.get("rings") != null) { - // geometry = Polygon.createInstance(jsonGeometry); + geometry = PolyLine.createInstanceFromJson(jsonGeometry); + // } else if (jsonGeometry.get("points") != null) { + // // geometry = MultiPoint.createInstance(jsonGeometry); + // } else if (jsonGeometry.get("rings") != null) { + // // geometry = Polygon.createInstance(jsonGeometry); } } } diff --git a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/PolyLine.java b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/PolyLine.java new file mode 100644 index 000000000..f20bd7a92 --- /dev/null +++ b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/PolyLine.java @@ -0,0 +1,196 @@ +/** + * Copyright 2014-2017 Telefonica Investigación y Desarrollo, S.A.U + * + * This file is part of fiware-cygnus (FIWARE project). + * + * fiware-cygnus is free software: you can redistribute it and/or modify it under the terms of the GNU Affero + * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. + * fiware-cygnus is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the + * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License + * for more details. + * + * You should have received a copy of the GNU Affero General Public License along with fiware-cygnus. If not, see + * http://www.gnu.org/licenses/. + * + * For those usages not covered by the GNU Affero General Public License please contact with iot_support at tid dot es + */ + +package com.telefonica.iot.cygnus.backends.arcgis.model; + +import java.util.List; +import com.google.gson.JsonObject; +import com.google.gson.Gson; +import com.telefonica.iot.cygnus.backends.arcgis.exceptions.ArcgisException; +import com.telefonica.iot.cygnus.log.CygnusLogger; + +/** + * + * @author avega + * + */ +public class PolyLine implements Geometry { + private static final CygnusLogger LOGGER = new CygnusLogger(PolyLine.class); + + private static final String SPATIAL_REFERENCE_TAG = "spatialReference"; + private static final String WKID_TAG = "wkid"; + private static final String PATHS_TAG = "paths"; + + class Paths { + private List> paths; + + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("{\n \"paths\": [\n"); + for (List path : this.paths) { + sb.append(" [\n"); + for (Point point : path) { + sb.append(" ").append(point.toString()).append(",\n"); + } + sb.setLength(sb.length() - 2); + sb.append("\n ],\n"); + } + sb.setLength(sb.length() - 2); + sb.append("\n ]\n}"); + return sb.toString(); + } + + } + private List> paths; + + private SpatialReference spatialReference; + private int type = Geometry.TYPE_SHAPE; // TBD + + /** + * Constructor. + * + * @param paths + * @param spatialReference + */ + public PolyLine(List> paths, SpatialReference spatialReference) { + this.paths = paths; + this.spatialReference = spatialReference; + } + + /** + * Constructor. + * + * @param lat + * @param lng + */ + public PolyLine(List> paths) { + this(paths, SpatialReference.WGS84); + } + + /** + * SetValue. + */ + public void setValue(Geometry g) throws ArcgisException { + if (g.getGeometryType() == Geometry.TYPE_SHAPE) { + PolyLine polyline = (PolyLine) g; + this.paths = polyline.paths; + } else { + throw new ArcgisException("Invalid Geometry Type, Point expected."); + } + + } + + /** + * Constructor. + * + * @param strPoint + * @throws ArcgisException + */ + public PolyLine(String strPolyline) throws ArcgisException { + try { + Gson gson = new Gson(); + Paths wrapper = gson.fromJson(strPolyline, Paths.class); + this.paths = wrapper.paths; + this.spatialReference = SpatialReference.WGS84; + + } catch (NumberFormatException e) { + throw new ArcgisException("Unexpected string format for type Point."); + } + } + + /** + * Sets Geometry From JSON. + */ + public void setGeometryFromJSON(String json) { + // TODO Auto-generated method stub + + } + + /** + * @return JsonObject + */ + public JsonObject toJSON() { + JsonObject result = new JsonObject(); + result.addProperty(PATHS_TAG, this.paths.toString()); + + JsonObject spatialRef = new JsonObject(); + spatialRef.addProperty(WKID_TAG, spatialReference.getWkid()); + + result.add(SPATIAL_REFERENCE_TAG, spatialRef); + return result; + } + + /** + * Factroy method. + * + * @param json + * @return + * @throws ArcgisException + */ + public static Geometry createInstanceFromJson(JsonObject json) throws ArcgisException { + try { + return new PolyLine(json.get(PATHS_TAG).getAsString()); + } catch (Exception e) { + LOGGER.error(e.getClass().getSimpleName() + " " + e.getMessage()); + throw new ArcgisException("Unable to parse PolyLine from json " + e.getMessage()); + } + + } + + /** + * @return String + */ + public String toString() { + return getPaths().toString(); + } + + /** + * @return geometry type + */ + public int getGeometryType() { + return type; + } + + /** + * + */ + public void setSpatialReference(SpatialReference spatialReference) { + this.spatialReference = spatialReference; + } + + /** + * + */ + public SpatialReference getSpatialReference() { + return this.spatialReference; + } + + /** + * + * @return + */ + public List> getPaths() { + return paths; + } + + @Override + public Object getValue() { + return null; + } + +} From 8485742c61d36873c13d27b3a3190d00d75a03be Mon Sep 17 00:00:00 2001 From: Alvaro Vega Date: Tue, 30 Jul 2024 10:00:43 +0200 Subject: [PATCH 3/8] add test --- .../cygnus/backends/arcgis/model/Feature.java | 13 +++++++ .../cygnus/backends/arcgis/FeatureTest.java | 10 ++++++ .../backends/arcgis/FeatureTestFactory.java | 35 +++++++++++++++++++ 3 files changed, 58 insertions(+) diff --git a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java index bb20b7f16..2ec699ab4 100644 --- a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java +++ b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java @@ -154,6 +154,19 @@ public static Feature createPointFeature(String latitud, String longitud) { return createPointFeature(lat, lon); } + /** + * + * @param paths + * @return + */ + public static Feature createPolyLineFeature(String paths) { + try { + return new Feature(new PolyLine(paths)); + } catch (Exception e) { + return null; + } + } + /** * This method merges unexistent attributes from sourceFeature. * diff --git a/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java b/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java index 222547700..4da5640fb 100644 --- a/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java +++ b/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java @@ -149,4 +149,14 @@ public void createInstanceFromJson2() { } } + + /** + * + */ + @Test + public void getPolyFeatureTest() { + System.out.println("---------------- getNewPolyLineFeature"); + Feature poly = FeatureTestFactory.getNewPolyLineFeature("Mi PolyLine", 33); + } + } diff --git a/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTestFactory.java b/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTestFactory.java index f63f5f0c3..9067c69a4 100644 --- a/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTestFactory.java +++ b/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTestFactory.java @@ -109,6 +109,41 @@ public static Feature getUpdatedOcupacionFeature(int objectId, String name) { return feature; } + /** + * + * @param description + * @param externalId + * @return + */ + public static Feature getNewPolyLineFeature(String description, Integer externalId) { + Map attributes = new LinkedHashMap(); + attributes.put("IDEXTERNO", externalId); + attributes.put("DESCRIPCION", description); + attributes.put("RAZONSOCIAL", "Razon social"); + attributes.put("NUMEROPOSTAL", null); + attributes.put("TIPOOCUPACION", 0); + attributes.put("FINI", new Date()); + attributes.put("UNIDADMEDIDA", null); + attributes.put("EXCSABDOM", 0); + attributes.put("EXCFESTIVOS", 0); + attributes.put("PRESENCIAPOLICIAL", 0); + attributes.put("REVISADO", 0); + attributes.put("IDACTIVIDAD", 0); + attributes.put("ACTIVIDAD", "actividad"); + attributes.put("IDCLASE", 0); + attributes.put("CLASE", "clase"); + attributes.put("IDESTADO", 0); + attributes.put("ESTADO", "estado"); + attributes.put("CALLE", "calle"); + attributes.put("FFIN", new GregorianCalendar()); + attributes.put("CANTIDADOCUPADA", null); + String jsonString = "{ \"paths\": [ [ [-97.06138, 32.837], [-97.06133, 33.836], [-98.2, 34.834], [-97, 40] ] ] }"; + + Feature feature = Feature.createPolyLineFeature(jsonString); + feature.setAttributes(attributes); + return feature; + } + /** * * @return From a055e3d43018bcf0a39fea3b6a2eb86f7791c4f3 Mon Sep 17 00:00:00 2001 From: Alvaro Vega Date: Tue, 30 Jul 2024 11:12:20 +0200 Subject: [PATCH 4/8] update feature test about poly --- .../com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java b/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java index 4da5640fb..e5f99bf7c 100644 --- a/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java +++ b/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java @@ -157,6 +157,7 @@ public void createInstanceFromJson2() { public void getPolyFeatureTest() { System.out.println("---------------- getNewPolyLineFeature"); Feature poly = FeatureTestFactory.getNewPolyLineFeature("Mi PolyLine", 33); + System.out.println("feature poly - " + poly.toJson()); } } From 45717a2414fd1a7636110c5a9a0efcb5cdc13d53 Mon Sep 17 00:00:00 2001 From: Alvaro Vega Date: Tue, 30 Jul 2024 13:58:30 +0200 Subject: [PATCH 5/8] add junit imports --- .../iot/cygnus/backends/arcgis/FeatureTest.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java b/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java index e5f99bf7c..34b0dde73 100644 --- a/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java +++ b/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java @@ -25,6 +25,10 @@ import org.apache.logging.log4j.core.config.DefaultConfiguration; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import static org.mockito.Mockito.when; +import org.mockito.junit.MockitoJUnitRunner; import com.google.gson.JsonArray; import com.google.gson.JsonElement; @@ -38,6 +42,7 @@ * @author dmartinez * */ +@RunWith(MockitoJUnitRunner.class) public class FeatureTest { /** @@ -114,7 +119,7 @@ public void getSetObjectId() { feature.setObjectId(255); assertTrue("getObjectId() doesn't match", feature.getObjectId() == 255); assertTrue("OBJECTID not properly saved", - ((Long) feature.getAttributes().get("OBJECTID")) == 255); + ((Long)feature.getAttributes().get("OBJECTID")) == 255); } catch (ArcgisException e) { fail(e.getMessage()); } @@ -158,6 +163,7 @@ public void getPolyFeatureTest() { System.out.println("---------------- getNewPolyLineFeature"); Feature poly = FeatureTestFactory.getNewPolyLineFeature("Mi PolyLine", 33); System.out.println("feature poly - " + poly.toJson()); + assertTrue("ok.", true); } } From 7e31f6d9e939d7abe77a0b94317e04cc9e03826d Mon Sep 17 00:00:00 2001 From: Alvaro Vega Date: Thu, 1 Aug 2024 12:52:26 +0200 Subject: [PATCH 6/8] update PolyLine --- .../cygnus/backends/arcgis/model/Feature.java | 1 + .../backends/arcgis/model/PolyLine.java | 70 ++++++++++--------- .../cygnus/backends/arcgis/FeatureTest.java | 19 +++++ .../backends/arcgis/FeatureTestFactory.java | 1 - 4 files changed, 58 insertions(+), 33 deletions(-) diff --git a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java index 2ec699ab4..0ad6234f6 100644 --- a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java +++ b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java @@ -163,6 +163,7 @@ public static Feature createPolyLineFeature(String paths) { try { return new Feature(new PolyLine(paths)); } catch (Exception e) { + LOGGER.error(e.getClass().getSimpleName() + " " + e.getMessage()); return null; } } diff --git a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/PolyLine.java b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/PolyLine.java index f20bd7a92..a6a625d1c 100644 --- a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/PolyLine.java +++ b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/PolyLine.java @@ -19,8 +19,14 @@ package com.telefonica.iot.cygnus.backends.arcgis.model; import java.util.List; +import java.util.Arrays; +import java.util.ArrayList; import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import java.lang.reflect.Type; + import com.telefonica.iot.cygnus.backends.arcgis.exceptions.ArcgisException; import com.telefonica.iot.cygnus.log.CygnusLogger; @@ -36,27 +42,7 @@ public class PolyLine implements Geometry { private static final String WKID_TAG = "wkid"; private static final String PATHS_TAG = "paths"; - class Paths { - private List> paths; - - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("{\n \"paths\": [\n"); - for (List path : this.paths) { - sb.append(" [\n"); - for (Point point : path) { - sb.append(" ").append(point.toString()).append(",\n"); - } - sb.setLength(sb.length() - 2); - sb.append("\n ],\n"); - } - sb.setLength(sb.length() - 2); - sb.append("\n ]\n}"); - return sb.toString(); - } - - } - private List> paths; + public List> paths; private SpatialReference spatialReference; private int type = Geometry.TYPE_SHAPE; // TBD @@ -67,7 +53,7 @@ public String toString() { * @param paths * @param spatialReference */ - public PolyLine(List> paths, SpatialReference spatialReference) { + public PolyLine(List> paths, SpatialReference spatialReference) { this.paths = paths; this.spatialReference = spatialReference; } @@ -78,7 +64,7 @@ public PolyLine(List> paths, SpatialReference spatialReference) { * @param lat * @param lng */ - public PolyLine(List> paths) { + public PolyLine(List> paths) { this(paths, SpatialReference.WGS84); } @@ -92,7 +78,6 @@ public void setValue(Geometry g) throws ArcgisException { } else { throw new ArcgisException("Invalid Geometry Type, Point expected."); } - } /** @@ -103,13 +88,15 @@ public void setValue(Geometry g) throws ArcgisException { */ public PolyLine(String strPolyline) throws ArcgisException { try { + JsonObject jsonObject = JsonParser.parseString(strPolyline).getAsJsonObject(); + String thePathsStr = jsonObject.get("paths").toString(); Gson gson = new Gson(); - Paths wrapper = gson.fromJson(strPolyline, Paths.class); - this.paths = wrapper.paths; + Type listType = new TypeToken>>() {}.getType(); + this.paths = gson.fromJson(thePathsStr, listType); this.spatialReference = SpatialReference.WGS84; - } catch (NumberFormatException e) { - throw new ArcgisException("Unexpected string format for type Point."); + LOGGER.error(e.getClass().getSimpleName() + " " + e.getMessage()); + throw new ArcgisException("Unexpected string format for type PolyLine."); } } @@ -126,7 +113,8 @@ public void setGeometryFromJSON(String json) { */ public JsonObject toJSON() { JsonObject result = new JsonObject(); - result.addProperty(PATHS_TAG, this.paths.toString()); + LOGGER.debug("toJSON "); + result.addProperty(PATHS_TAG, this.toString()); JsonObject spatialRef = new JsonObject(); spatialRef.addProperty(WKID_TAG, spatialReference.getWkid()); @@ -156,7 +144,25 @@ public static Geometry createInstanceFromJson(JsonObject json) throws ArcgisExce * @return String */ public String toString() { - return getPaths().toString(); + StringBuilder sb = new StringBuilder(); + sb.append("{ \"paths\": ["); + for (int i = 0; i < this.paths.size(); i++) { + List innerList = this.paths.get(i); + for (int j = 0; j < innerList.size(); j++) { + sb.append(" ["); + sb.append("["); + double[] array = innerList.get(j); + for (double value : array) { + sb.append(" ").append(value).append(","); + } + sb.append(" ]"); + sb.setLength(sb.length() - 2); + sb.append(" ],"); + } + } + sb.setLength(sb.length() - 2); + sb.append(" ]}"); + return sb.toString(); } /** @@ -184,8 +190,8 @@ public SpatialReference getSpatialReference() { * * @return */ - public List> getPaths() { - return paths; + public List> getPaths() { + return this.paths; } @Override diff --git a/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java b/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java index 34b0dde73..32a3aa579 100644 --- a/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java +++ b/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTest.java @@ -36,6 +36,16 @@ import com.google.gson.JsonParser; import com.telefonica.iot.cygnus.backends.arcgis.exceptions.ArcgisException; import com.telefonica.iot.cygnus.backends.arcgis.model.Feature; +import com.telefonica.iot.cygnus.backends.arcgis.model.PolyLine; + +import java.util.List; +import java.util.Arrays; +import java.util.ArrayList; +import com.google.gson.JsonObject; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import java.lang.reflect.Type; + /** * @@ -161,6 +171,15 @@ public void createInstanceFromJson2() { @Test public void getPolyFeatureTest() { System.out.println("---------------- getNewPolyLineFeature"); + try { + String paths = "{ \"paths\": [ [ [-97.06138, 32.837], [-97.06133, 33.836], [-98.2, 34.834], [-97, 40] ] ] }"; + PolyLine poly = new PolyLine(paths); + System.out.println("POLY: " + poly.toString()); + + } catch (Exception e) { + System.out.println("Exception"); + System.out.println(e.getClass().getSimpleName() + " " + e.getMessage()); + } Feature poly = FeatureTestFactory.getNewPolyLineFeature("Mi PolyLine", 33); System.out.println("feature poly - " + poly.toJson()); assertTrue("ok.", true); diff --git a/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTestFactory.java b/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTestFactory.java index 9067c69a4..d44d6a5c1 100644 --- a/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTestFactory.java +++ b/cygnus-common/src/test/java/com/telefonica/iot/cygnus/backends/arcgis/FeatureTestFactory.java @@ -138,7 +138,6 @@ public static Feature getNewPolyLineFeature(String description, Integer external attributes.put("FFIN", new GregorianCalendar()); attributes.put("CANTIDADOCUPADA", null); String jsonString = "{ \"paths\": [ [ [-97.06138, 32.837], [-97.06133, 33.836], [-98.2, 34.834], [-97, 40] ] ] }"; - Feature feature = Feature.createPolyLineFeature(jsonString); feature.setAttributes(attributes); return feature; From 78917e8c30525b49d67a44e1dc9921282968b395 Mon Sep 17 00:00:00 2001 From: Alvaro Vega Date: Thu, 1 Aug 2024 12:56:11 +0200 Subject: [PATCH 7/8] update CNR --- CHANGES_NEXT_RELEASE | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES_NEXT_RELEASE b/CHANGES_NEXT_RELEASE index 5100d2164..06076833d 100644 --- a/CHANGES_NEXT_RELEASE +++ b/CHANGES_NEXT_RELEASE @@ -1,3 +1,4 @@ [cygnus-ngsi] [mongo-sink] Add mongo_ssl, mongo_ssl_invalid_host_allowed, mongo_ssl_keystore_path_file, mongo_ssl_keystore_password, mongo_ssl_truststore_path_file and mongo_ssl_truststore_password options for mongoDB connections [cygnus-common] [mongo-backend] Use sslEnabled, sslInvalidHostNameAllowed, sslKeystorePathFile, sslKeystorePassword, sslTruststorePathFile and sslTruststorePassword options for mongoDB connections [cygnus-common] [mongo-backend] Allow mongodb autodiscover at connect when just one server is provided +[cygnus-ngsi] [arcgis-sink] Add esri Geometry PolyLine support (#2392) From 828d9399a2cbfb0a48540e8169d523af063f1b4c Mon Sep 17 00:00:00 2001 From: Alvaro Vega Date: Thu, 1 Aug 2024 14:47:00 +0200 Subject: [PATCH 8/8] add fixme --- .../com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java | 1 + 1 file changed, 1 insertion(+) diff --git a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java index 0ad6234f6..00c036ee0 100644 --- a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java +++ b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/model/Feature.java @@ -332,6 +332,7 @@ public static Feature createInstanceFromJson(JsonObject json) throws ArcgisExcep geometry = Point.createInstanceFromJson(jsonGeometry); } else if (jsonGeometry.get("paths") != null) { geometry = PolyLine.createInstanceFromJson(jsonGeometry); + // FIXME when MultiPoint and Polygon will be implemented // } else if (jsonGeometry.get("points") != null) { // // geometry = MultiPoint.createInstance(jsonGeometry); // } else if (jsonGeometry.get("rings") != null) {