From 57d4ab211a827245e55240cb8f0e18c6b4796033 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Mon, 15 May 2023 15:49:36 +0200 Subject: [PATCH 1/6] Integrated the grouped custom layers configuration [#25110] --- CHANGELOG.md | 5 + pom.xml | 2 +- .../ConvertToDataValueObjectModel.java | 31 ++++++- .../ucd/GEOPORTAL_CONFIGURATION_TYPE.java | 2 +- .../geoportal/ucd/GEOPORTAL_DATA_HANDLER.java | 2 + .../java/org/gcube/application/UCD_Tests.java | 92 +++++++++++++++++-- 6 files changed, 124 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c1ba68..d14ecd4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v2.2.0-SNAPSHOT] + +- Integrated the cross-filtering configuration [#25074] +- Integrated the grouped custom layers configuration [#25110] + ## [v2.1.0] - 2023-05-11 - Integrated the deleteFileset method [#24977] diff --git a/pom.xml b/pom.xml index 63c68a4..35ef306 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.gcube.application geoportal-data-common - 2.1.0 + 2.2.0-SNAPSHOT GeoPortal Data Common is common library used by GUI components developed for GeoNA diff --git a/src/main/java/org/gcube/application/geoportalcommon/ConvertToDataValueObjectModel.java b/src/main/java/org/gcube/application/geoportalcommon/ConvertToDataValueObjectModel.java index ea236f2..d046de3 100644 --- a/src/main/java/org/gcube/application/geoportalcommon/ConvertToDataValueObjectModel.java +++ b/src/main/java/org/gcube/application/geoportalcommon/ConvertToDataValueObjectModel.java @@ -45,6 +45,7 @@ import org.gcube.application.geoportalcommon.shared.geoportal.config.GcubeProfil import org.gcube.application.geoportalcommon.shared.geoportal.config.ItemFieldDV; import org.gcube.application.geoportalcommon.shared.geoportal.geojson.Crs; import org.gcube.application.geoportalcommon.shared.geoportal.geojson.GeoJSON; +import org.gcube.application.geoportalcommon.shared.geoportal.materialization.GroupedCustomLayersDV; import org.gcube.application.geoportalcommon.shared.geoportal.materialization.IndexLayerDV; import org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject.PayloadDV; import org.gcube.application.geoportalcommon.shared.geoportal.project.AccessDV; @@ -297,7 +298,7 @@ public class ConvertToDataValueObjectModel { int i = 0; for (String asJSONString : jsonConfigurations) { - LOG.debug(++i + ") the gCubeProfile is: " + asJSONString); + LOG.debug(++i + ") the " + geoportalConfigType + " is: " + asJSONString); GcubeProfile profile = org.gcube.application.geoportal.client.utils.Serialization .read(asJSONString, GcubeProfile.class); listGcubeProfiles.add(toGcubeProfileDV(profile)); @@ -317,7 +318,7 @@ public class ConvertToDataValueObjectModel { int i = 0; for (String asJSONString : jsonConfigurations) { - LOG.debug(++i + ") the itemField is: " + asJSONString); + LOG.debug(++i + ") the " + geoportalConfigType + " is: " + asJSONString); ItemField itemField = org.gcube.application.geoportal.client.utils.Serialization .read(asJSONString, ItemField.class); listItemFields.add(toItemFieldDV(itemField)); @@ -374,7 +375,33 @@ public class ConvertToDataValueObjectModel { return hdDV; } + case grouped_custom_layers: { + + List listGroupedCL = new ArrayList( + jsonConfigurations.size()); + + int i = 0; + for (String asJSONString : jsonConfigurations) { + LOG.debug( + ++i + ") the " + GroupedCustomLayersDV.class.getSimpleName() + " is: " + asJSONString); + GroupedCustomLayersDV profile = org.gcube.application.geoportal.client.utils.Serialization + .read(asJSONString, GroupedCustomLayersDV.class); + // listGroupedCL.add(toGcubeProfileDV(profile)); + listGroupedCL.add(profile); + } + + ConfigurationDV> dDV = new ConfigurationDV>( + listGroupedCL); + dDV.setConfiguration(listGroupedCL); + dDV.setConfigurationType(geoportalConfigType); + hdDV.setConfiguration(dDV); + LOG.info("returning {}", hdDV); + return hdDV; + + } + default: + LOG.warn("HANDLER NOT FOUND FOR configs: " + geoportalConfigType); break; } } diff --git a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_CONFIGURATION_TYPE.java b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_CONFIGURATION_TYPE.java index 0fb7a52..f6e8330 100644 --- a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_CONFIGURATION_TYPE.java +++ b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_CONFIGURATION_TYPE.java @@ -1,7 +1,7 @@ package org.gcube.application.geoportalcommon.shared.geoportal.ucd; public enum GEOPORTAL_CONFIGURATION_TYPE { - item_fields("itemFields"), gcube_profiles("gcubeProfiles"), actions_definition("actionsDefinition"); + item_fields("itemFields"), gcube_profiles("gcubeProfiles"), actions_definition("actionsDefinition"), grouped_custom_layers("grouped_custom_layers"); String id; diff --git a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_DATA_HANDLER.java b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_DATA_HANDLER.java index d0b3532..7360d3c 100644 --- a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_DATA_HANDLER.java +++ b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_DATA_HANDLER.java @@ -7,6 +7,8 @@ public enum GEOPORTAL_DATA_HANDLER { geoportal_data_entry("org.gcube.portlets.user.geoportal-data-entry-app", "DATA_ENTRY_GUI"), geoportal_workflow_action_list("org.gcube.portlets.user.geoportal-workflow-action-list","WORKFLOW_ACTION_LIST_GUI"), geoportal_timeline_json_template("org.gcube.portlets.user.geoportal-timeline-json-template","TIMELINE_JSON_TEMPLATE"), + geoportal_cross_filtering("org.gcube.portlets.user.cross-filtering","CROSS_FILTERING"), + geoportal_grouped_custom_layers("org.gcube.portlets.user.grouped_custom_layers","GROUPED_CUSTOM_LAYERS"), gna_concessioni_lc("GNA-CONCESSIONI-LC", "LifecycleManagement"); String id; diff --git a/src/test/java/org/gcube/application/UCD_Tests.java b/src/test/java/org/gcube/application/UCD_Tests.java index 1e1a890..efaf2ce 100644 --- a/src/test/java/org/gcube/application/UCD_Tests.java +++ b/src/test/java/org/gcube/application/UCD_Tests.java @@ -2,11 +2,15 @@ package org.gcube.application; import static org.gcube.application.geoportal.client.plugins.GeoportalAbstractPlugin.useCaseDescriptors; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; +import java.util.Properties; import java.util.stream.Collectors; import org.bson.Document; @@ -19,6 +23,9 @@ import org.gcube.application.geoportalcommon.shared.geoportal.ConfigurationDV; import org.gcube.application.geoportalcommon.shared.geoportal.config.ActionDefinitionDV; import org.gcube.application.geoportalcommon.shared.geoportal.config.GcubeProfileDV; import org.gcube.application.geoportalcommon.shared.geoportal.config.ItemFieldDV; +import org.gcube.application.geoportalcommon.shared.geoportal.materialization.CustomLayerDV; +import org.gcube.application.geoportalcommon.shared.geoportal.materialization.GroupedCustomLayersDV; +import org.gcube.application.geoportalcommon.shared.geoportal.ucd.GEOPORTAL_CONFIGURATION_TYPE; import org.gcube.application.geoportalcommon.shared.geoportal.ucd.GEOPORTAL_DATA_HANDLER; import org.gcube.application.geoportalcommon.shared.geoportal.ucd.HandlerDeclarationDV; import org.gcube.application.geoportalcommon.shared.geoportal.ucd.UseCaseDescriptorDV; @@ -26,6 +33,8 @@ import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.scope.api.ScopeProvider; import org.json.JSONArray; import org.json.JSONObject; +import org.junit.Before; +import org.junit.Test; import com.jayway.jsonpath.JsonPath; import com.jayway.jsonpath.spi.json.JsonOrgJsonProvider; @@ -38,17 +47,46 @@ import com.jayway.jsonpath.spi.json.JsonOrgJsonProvider; * Sep 9, 2022 */ public class UCD_Tests { + + private static final String GCUBE_CONFIG_PROPERTIES_FILENAME = "gcube_config.properties"; + // APP Working Directory + /src/test/resources must be the location of + // gcube_config.properties + private static String gcube_config_path = String.format("%s/%s", + System.getProperty("user.dir") + "/src/test/resources", GCUBE_CONFIG_PROPERTIES_FILENAME); + private static String CONTEXT; + private static String TOKEN; private UseCaseDescriptorCaller client = null; - private static String CONTEXT = "/pred4s/preprod/preVRE"; - private static String TOKEN = ""; //preVRE - //private static String CONTEXT = "/gcube/devsec/devVRE"; //private static String TOKEN = ""; // devVRE private static String PROFILE_ID = "profiledConcessioni"; + + /** + * Read context settings. + */ + public static void readContextSettings() { + + try (InputStream input = new FileInputStream(gcube_config_path)) { + + Properties prop = new Properties(); + + // load a properties file + prop.load(input); + + CONTEXT = prop.getProperty("CONTEXT"); + TOKEN = prop.getProperty("TOKEN"); + // get the property value and print it out + System.out.println("CONTEXT: " + CONTEXT); + System.out.println("TOKEN: " + TOKEN); + + } catch (IOException ex) { + ex.printStackTrace(); + } + } + /** * Gets the client. * @@ -56,7 +94,7 @@ public class UCD_Tests { */ //@Before public void getClient() { - // assumeTrue(GCubeTest.isTestInfrastructureEnabled()); + readContextSettings(); ScopeProvider.instance.set(CONTEXT); SecurityTokenProvider.instance.set(TOKEN); client = GeoportalClientCaller.useCaseDescriptors(); @@ -192,6 +230,40 @@ public class UCD_Tests { System.out.println(listUCDDV); } + + //@Test + public void getUCDGroupedCustomLayers() throws Exception { + ScopeProvider.instance.set(CONTEXT); + SecurityTokenProvider.instance.set(TOKEN); + + List handlersIds = null; + List listUseCaseDescriptor; + + try { + UseCaseDescriptorCaller client = GeoportalClientCaller.useCaseDescriptors(); + + if (handlersIds == null) { + handlersIds = Arrays.asList(GEOPORTAL_DATA_HANDLER.geoportal_grouped_custom_layers.getId()); + System.out.println("handlersIds is null, so using default: " + handlersIds); + } + listUseCaseDescriptor = client.getListForHandlerIds(handlersIds); + } catch (Exception e) { + e.printStackTrace(); + return; + } + + if (listUseCaseDescriptor == null) { + listUseCaseDescriptor = new ArrayList(); + } + + List listUCDDV = new ArrayList(listUseCaseDescriptor.size()); + for (UseCaseDescriptor ucd : listUseCaseDescriptor) { + listUCDDV.add(ConvertToDataValueObjectModel.toUseCaseDescriptorDV(ucd, null)); + } + + System.out.println(listUCDDV); + + } /** * Gets the UCD for handler types. @@ -203,13 +275,15 @@ public class UCD_Tests { public void getUCDForHandlerTypes() throws Exception { ScopeProvider.instance.set(CONTEXT); SecurityTokenProvider.instance.set(TOKEN); - + + String handlerType = GEOPORTAL_DATA_HANDLER.geoportal_grouped_custom_layers.getType(); + UseCaseDescriptor ucd = null; List handlers = null; try { UseCaseDescriptorCaller client = GeoportalClientCaller.useCaseDescriptors(); ucd = client.getUCDForId(PROFILE_ID); - handlers = client.getHandlersByType(PROFILE_ID, GEOPORTAL_DATA_HANDLER.geoportal_basic_data_list.getType()); + handlers = client.getHandlersByType(PROFILE_ID, handlerType); } catch (Exception e) { e.printStackTrace(); @@ -219,10 +293,16 @@ public class UCD_Tests { for (HandlerDeclaration handlerDeclaration : handlers) { System.out.println(handlerDeclaration); System.out.println("Config json: "+handlerDeclaration.getConfiguration().toJson()); + HandlerDeclarationDV handlerDV = ConvertToDataValueObjectModel.toHandlerDeclarationDV(handlerDeclaration, ucd, GEOPORTAL_CONFIGURATION_TYPE.grouped_custom_layers); + System.out.println("handlerDV is: "+handlerDV); } + + } + + /** * Gets the UCD for handler types. -- 2.17.1 From f5785268ef46a4b892f21300b6dd8378ab8c29b2 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Mon, 15 May 2023 15:49:58 +0200 Subject: [PATCH 2/6] - Integrated the grouped custom layers configuration [#25110] --- .../materialization/CustomLayerDV.java | 70 +++++++++++++++++ .../GroupedCustomLayersDV.java | 78 +++++++++++++++++++ .../java/org/gcube/application/UCD_Tests.java | 2 +- 3 files changed, 149 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/CustomLayerDV.java create mode 100644 src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/GroupedCustomLayersDV.java diff --git a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/CustomLayerDV.java b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/CustomLayerDV.java new file mode 100644 index 0000000..1607f5f --- /dev/null +++ b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/CustomLayerDV.java @@ -0,0 +1,70 @@ +package org.gcube.application.geoportalcommon.shared.geoportal.materialization; + +import java.io.Serializable; + +/** + * The Class CustomLayerDV. + * + * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it + * + * May 12, 2023 + */ +public class CustomLayerDV implements Serializable { + + String title; + String name; + String wms_url; + boolean display = false; + + public CustomLayerDV() { + + } + + public String getTitle() { + return title; + } + + public String getName() { + return name; + } + + public String getWms_url() { + return wms_url; + } + + public boolean isDisplay() { + return display; + } + + public void setTitle(String title) { + this.title = title; + } + + public void setName(String name) { + this.name = name; + } + + public void setWms_url(String wms_url) { + this.wms_url = wms_url; + } + + public void setDisplay(boolean display) { + this.display = display; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("CustomLayerDV [title="); + builder.append(title); + builder.append(", name="); + builder.append(name); + builder.append(", wms_url="); + builder.append(wms_url); + builder.append(", display="); + builder.append(display); + builder.append("]"); + return builder.toString(); + } + +} diff --git a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/GroupedCustomLayersDV.java b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/GroupedCustomLayersDV.java new file mode 100644 index 0000000..e43bbd5 --- /dev/null +++ b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/GroupedCustomLayersDV.java @@ -0,0 +1,78 @@ +package org.gcube.application.geoportalcommon.shared.geoportal.materialization; + +import java.io.Serializable; +import java.util.List; + +import org.gcube.application.geoportalcommon.shared.geoportal.config.GeoportalConfigurationID; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * The Class GroupedCustomLayersDV. + * + * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it + * + * May 12, 2023 + */ +public class GroupedCustomLayersDV implements Serializable, GeoportalConfigurationID { + + private String name; + private String description; + + @JsonProperty(value = "layers") + private List listCustomLayers; + + @Override + public String getID() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void setID(String configID) { + // TODO Auto-generated method stub + + } + + public GroupedCustomLayersDV() { + + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public List getListCustomLayers() { + return listCustomLayers; + } + + public void setName(String name) { + this.name = name; + } + + public void setDescription(String description) { + this.description = description; + } + + public void setListCustomLayers(List listCustomLayers) { + this.listCustomLayers = listCustomLayers; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("GroupedCustomLayersDV [name="); + builder.append(name); + builder.append(", description="); + builder.append(description); + builder.append(", listCustomLayers="); + builder.append(listCustomLayers); + builder.append("]"); + return builder.toString(); + } + +} diff --git a/src/test/java/org/gcube/application/UCD_Tests.java b/src/test/java/org/gcube/application/UCD_Tests.java index efaf2ce..bc60d9a 100644 --- a/src/test/java/org/gcube/application/UCD_Tests.java +++ b/src/test/java/org/gcube/application/UCD_Tests.java @@ -92,7 +92,7 @@ public class UCD_Tests { * * @return the client */ - //@Before + @Before public void getClient() { readContextSettings(); ScopeProvider.instance.set(CONTEXT); -- 2.17.1 From 6a38ebc0c894ecd559d05485a7478f9c3738faf8 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Tue, 23 May 2023 15:42:51 +0200 Subject: [PATCH 3/6] Renamed "grouped custom layers" to "grouped overlay layers" --- CHANGELOG.md | 2 +- .../geoportalcommon/ConvertToDataValueObjectModel.java | 2 +- .../shared/geoportal/ucd/GEOPORTAL_CONFIGURATION_TYPE.java | 2 +- .../shared/geoportal/ucd/GEOPORTAL_DATA_HANDLER.java | 2 +- src/test/java/org/gcube/application/UCD_Tests.java | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d14ecd4..0816d23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [v2.2.0-SNAPSHOT] - Integrated the cross-filtering configuration [#25074] -- Integrated the grouped custom layers configuration [#25110] +- Integrated the grouped overlay layers configuration [#25110] ## [v2.1.0] - 2023-05-11 diff --git a/src/main/java/org/gcube/application/geoportalcommon/ConvertToDataValueObjectModel.java b/src/main/java/org/gcube/application/geoportalcommon/ConvertToDataValueObjectModel.java index d046de3..012ea51 100644 --- a/src/main/java/org/gcube/application/geoportalcommon/ConvertToDataValueObjectModel.java +++ b/src/main/java/org/gcube/application/geoportalcommon/ConvertToDataValueObjectModel.java @@ -375,7 +375,7 @@ public class ConvertToDataValueObjectModel { return hdDV; } - case grouped_custom_layers: { + case grouped_overlay_layers: { List listGroupedCL = new ArrayList( jsonConfigurations.size()); diff --git a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_CONFIGURATION_TYPE.java b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_CONFIGURATION_TYPE.java index f6e8330..f8f1134 100644 --- a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_CONFIGURATION_TYPE.java +++ b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_CONFIGURATION_TYPE.java @@ -1,7 +1,7 @@ package org.gcube.application.geoportalcommon.shared.geoportal.ucd; public enum GEOPORTAL_CONFIGURATION_TYPE { - item_fields("itemFields"), gcube_profiles("gcubeProfiles"), actions_definition("actionsDefinition"), grouped_custom_layers("grouped_custom_layers"); + item_fields("itemFields"), gcube_profiles("gcubeProfiles"), actions_definition("actionsDefinition"), grouped_overlay_layers("grouped_overlay_layers"); String id; diff --git a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_DATA_HANDLER.java b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_DATA_HANDLER.java index 7360d3c..2ca5648 100644 --- a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_DATA_HANDLER.java +++ b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_DATA_HANDLER.java @@ -8,7 +8,7 @@ public enum GEOPORTAL_DATA_HANDLER { geoportal_workflow_action_list("org.gcube.portlets.user.geoportal-workflow-action-list","WORKFLOW_ACTION_LIST_GUI"), geoportal_timeline_json_template("org.gcube.portlets.user.geoportal-timeline-json-template","TIMELINE_JSON_TEMPLATE"), geoportal_cross_filtering("org.gcube.portlets.user.cross-filtering","CROSS_FILTERING"), - geoportal_grouped_custom_layers("org.gcube.portlets.user.grouped_custom_layers","GROUPED_CUSTOM_LAYERS"), + geoportal_grouped_overlay_layers("org.gcube.portlets.user.grouped_overlay_layers","GROUPED_OVERLAY_LAYERS"), gna_concessioni_lc("GNA-CONCESSIONI-LC", "LifecycleManagement"); String id; diff --git a/src/test/java/org/gcube/application/UCD_Tests.java b/src/test/java/org/gcube/application/UCD_Tests.java index bc60d9a..fd7a171 100644 --- a/src/test/java/org/gcube/application/UCD_Tests.java +++ b/src/test/java/org/gcube/application/UCD_Tests.java @@ -243,7 +243,7 @@ public class UCD_Tests { UseCaseDescriptorCaller client = GeoportalClientCaller.useCaseDescriptors(); if (handlersIds == null) { - handlersIds = Arrays.asList(GEOPORTAL_DATA_HANDLER.geoportal_grouped_custom_layers.getId()); + handlersIds = Arrays.asList(GEOPORTAL_DATA_HANDLER.geoportal_grouped_overlay_layers.getId()); System.out.println("handlersIds is null, so using default: " + handlersIds); } listUseCaseDescriptor = client.getListForHandlerIds(handlersIds); @@ -276,7 +276,7 @@ public class UCD_Tests { ScopeProvider.instance.set(CONTEXT); SecurityTokenProvider.instance.set(TOKEN); - String handlerType = GEOPORTAL_DATA_HANDLER.geoportal_grouped_custom_layers.getType(); + String handlerType = GEOPORTAL_DATA_HANDLER.geoportal_grouped_overlay_layers.getType(); UseCaseDescriptor ucd = null; List handlers = null; @@ -293,7 +293,7 @@ public class UCD_Tests { for (HandlerDeclaration handlerDeclaration : handlers) { System.out.println(handlerDeclaration); System.out.println("Config json: "+handlerDeclaration.getConfiguration().toJson()); - HandlerDeclarationDV handlerDV = ConvertToDataValueObjectModel.toHandlerDeclarationDV(handlerDeclaration, ucd, GEOPORTAL_CONFIGURATION_TYPE.grouped_custom_layers); + HandlerDeclarationDV handlerDV = ConvertToDataValueObjectModel.toHandlerDeclarationDV(handlerDeclaration, ucd, GEOPORTAL_CONFIGURATION_TYPE.grouped_overlay_layers); System.out.println("handlerDV is: "+handlerDV); } -- 2.17.1 From af82f20ca531350be867dba16ebd6c55ae75a5b2 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Wed, 24 May 2023 12:19:02 +0200 Subject: [PATCH 4/6] Read configuration and deserialization of "GROUPED_CROSS_FILTERING_LAYERS" --- .../ConvertToDataValueObjectModel.java | 46 +++++++++-- .../GroupedLayersDV.java} | 22 +++--- .../layers/ConfiguredLayerDV.java} | 46 ++++++++--- .../config/layers/CrossFilteringLayerDV.java | 78 +++++++++++++++++++ .../geoportal/config/layers/LayerIDV.java | 10 +++ .../ucd/GEOPORTAL_CONFIGURATION_TYPE.java | 6 +- .../geoportal/ucd/GEOPORTAL_DATA_HANDLER.java | 2 +- .../org/gcube/application/TestGNACommon.java | 2 - .../java/org/gcube/application/UCD_Tests.java | 56 ++++++++++--- 9 files changed, 229 insertions(+), 39 deletions(-) rename src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/{materialization/GroupedCustomLayersDV.java => config/GroupedLayersDV.java} (70%) rename src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/{materialization/CustomLayerDV.java => config/layers/ConfiguredLayerDV.java} (51%) create mode 100644 src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/layers/CrossFilteringLayerDV.java create mode 100644 src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/layers/LayerIDV.java diff --git a/src/main/java/org/gcube/application/geoportalcommon/ConvertToDataValueObjectModel.java b/src/main/java/org/gcube/application/geoportalcommon/ConvertToDataValueObjectModel.java index 012ea51..e6af43d 100644 --- a/src/main/java/org/gcube/application/geoportalcommon/ConvertToDataValueObjectModel.java +++ b/src/main/java/org/gcube/application/geoportalcommon/ConvertToDataValueObjectModel.java @@ -42,10 +42,12 @@ import org.gcube.application.geoportalcommon.shared.geoportal.ResultDocumentDV; import org.gcube.application.geoportalcommon.shared.geoportal.config.ActionDefinitionDV; import org.gcube.application.geoportalcommon.shared.geoportal.config.FilePathDV; import org.gcube.application.geoportalcommon.shared.geoportal.config.GcubeProfileDV; +import org.gcube.application.geoportalcommon.shared.geoportal.config.GroupedLayersDV; import org.gcube.application.geoportalcommon.shared.geoportal.config.ItemFieldDV; +import org.gcube.application.geoportalcommon.shared.geoportal.config.layers.ConfiguredLayerDV; +import org.gcube.application.geoportalcommon.shared.geoportal.config.layers.CrossFilteringLayerDV; import org.gcube.application.geoportalcommon.shared.geoportal.geojson.Crs; import org.gcube.application.geoportalcommon.shared.geoportal.geojson.GeoJSON; -import org.gcube.application.geoportalcommon.shared.geoportal.materialization.GroupedCustomLayersDV; import org.gcube.application.geoportalcommon.shared.geoportal.materialization.IndexLayerDV; import org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject.PayloadDV; import org.gcube.application.geoportalcommon.shared.geoportal.project.AccessDV; @@ -72,9 +74,11 @@ import org.slf4j.LoggerFactory; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.deser.std.StdDeserializer; import com.jayway.jsonpath.DocumentContext; @@ -377,20 +381,48 @@ public class ConvertToDataValueObjectModel { case grouped_overlay_layers: { - List listGroupedCL = new ArrayList( + List> listGroupedCL = new ArrayList>( jsonConfigurations.size()); int i = 0; + ObjectMapper mapper = new ObjectMapper(); for (String asJSONString : jsonConfigurations) { - LOG.debug( - ++i + ") the " + GroupedCustomLayersDV.class.getSimpleName() + " is: " + asJSONString); - GroupedCustomLayersDV profile = org.gcube.application.geoportal.client.utils.Serialization - .read(asJSONString, GroupedCustomLayersDV.class); + LOG.debug(++i + ") the " + GroupedLayersDV.class.getSimpleName() + " is: " + asJSONString); + TypeReference> typeRef = new TypeReference>() {}; + GroupedLayersDV profile = mapper.readValue(asJSONString, typeRef); +// GroupedLayersDV profile = org.gcube.application.geoportal.client.utils.Serialization +// .read(asJSONString, typeRef); // listGroupedCL.add(toGcubeProfileDV(profile)); listGroupedCL.add(profile); } - ConfigurationDV> dDV = new ConfigurationDV>( + ConfigurationDV>> dDV = new ConfigurationDV>>( + listGroupedCL); + dDV.setConfiguration(listGroupedCL); + dDV.setConfigurationType(geoportalConfigType); + hdDV.setConfiguration(dDV); + LOG.info("returning {}", hdDV); + return hdDV; + } + + case grouped_cross_filtering_layers: { + + List> listGroupedCL = new ArrayList>( + jsonConfigurations.size()); + + int i = 0; + ObjectMapper mapper = new ObjectMapper(); + for (String asJSONString : jsonConfigurations) { + LOG.debug(++i + ") the " + GroupedLayersDV.class.getSimpleName() + " is: " + asJSONString); + TypeReference> typeRef = new TypeReference>() {}; + GroupedLayersDV profile = mapper.readValue(asJSONString, typeRef); +// GroupedLayersDV profile = org.gcube.application.geoportal.client.utils.Serialization +// .read(asJSONString, GroupedLayersDV.class); + // listGroupedCL.add(toGcubeProfileDV(profile)); + listGroupedCL.add(profile); + } + + ConfigurationDV>> dDV = new ConfigurationDV>>( listGroupedCL); dDV.setConfiguration(listGroupedCL); dDV.setConfigurationType(geoportalConfigType); diff --git a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/GroupedCustomLayersDV.java b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/GroupedLayersDV.java similarity index 70% rename from src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/GroupedCustomLayersDV.java rename to src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/GroupedLayersDV.java index e43bbd5..72a5c87 100644 --- a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/GroupedCustomLayersDV.java +++ b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/GroupedLayersDV.java @@ -1,26 +1,30 @@ -package org.gcube.application.geoportalcommon.shared.geoportal.materialization; +package org.gcube.application.geoportalcommon.shared.geoportal.config; import java.io.Serializable; import java.util.List; -import org.gcube.application.geoportalcommon.shared.geoportal.config.GeoportalConfigurationID; +import org.gcube.application.geoportalcommon.shared.geoportal.config.layers.LayerIDV; import com.fasterxml.jackson.annotation.JsonProperty; /** - * The Class GroupedCustomLayersDV. + * The Class GroupedLayersDV. * * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * * May 12, 2023 */ -public class GroupedCustomLayersDV implements Serializable, GeoportalConfigurationID { +public class GroupedLayersDV implements Serializable, GeoportalConfigurationID { + /** + * + */ + private static final long serialVersionUID = -2021774489849084231L; private String name; private String description; @JsonProperty(value = "layers") - private List listCustomLayers; + private List listCustomLayers; @Override public String getID() { @@ -34,7 +38,7 @@ public class GroupedCustomLayersDV implements Serializable, GeoportalConfigurati } - public GroupedCustomLayersDV() { + public GroupedLayersDV() { } @@ -46,7 +50,7 @@ public class GroupedCustomLayersDV implements Serializable, GeoportalConfigurati return description; } - public List getListCustomLayers() { + public List getListCustomLayers() { return listCustomLayers; } @@ -58,14 +62,14 @@ public class GroupedCustomLayersDV implements Serializable, GeoportalConfigurati this.description = description; } - public void setListCustomLayers(List listCustomLayers) { + public void setListCustomLayers(List listCustomLayers) { this.listCustomLayers = listCustomLayers; } @Override public String toString() { StringBuilder builder = new StringBuilder(); - builder.append("GroupedCustomLayersDV [name="); + builder.append("GroupedLayersDV [name="); builder.append(name); builder.append(", description="); builder.append(description); diff --git a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/CustomLayerDV.java b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/layers/ConfiguredLayerDV.java similarity index 51% rename from src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/CustomLayerDV.java rename to src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/layers/ConfiguredLayerDV.java index 1607f5f..b7f17db 100644 --- a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/CustomLayerDV.java +++ b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/layers/ConfiguredLayerDV.java @@ -1,22 +1,29 @@ -package org.gcube.application.geoportalcommon.shared.geoportal.materialization; +package org.gcube.application.geoportalcommon.shared.geoportal.config.layers; import java.io.Serializable; /** - * The Class CustomLayerDV. + * The Class ConfiguredLayerDV. * * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * * May 12, 2023 */ -public class CustomLayerDV implements Serializable { +public class ConfiguredLayerDV implements Serializable, LayerIDV { - String title; - String name; - String wms_url; + /** + * + */ + private static final long serialVersionUID = 6910607957385140987L; + + private String title; + private String description; + private String name; + private String wms_url; + private String wfs_url; boolean display = false; - public CustomLayerDV() { + public ConfiguredLayerDV() { } @@ -24,14 +31,22 @@ public class CustomLayerDV implements Serializable { return title; } + public String getDescription() { + return description; + } + public String getName() { return name; } - public String getWms_url() { + public String getWMS_URL() { return wms_url; } + public String getWFS_URL() { + return wfs_url; + } + public boolean isDisplay() { return display; } @@ -40,6 +55,10 @@ public class CustomLayerDV implements Serializable { this.title = title; } + public void setDescription(String description) { + this.description = description; + } + public void setName(String name) { this.name = name; } @@ -48,6 +67,10 @@ public class CustomLayerDV implements Serializable { this.wms_url = wms_url; } + public void setWfs_url(String wfs_url) { + this.wfs_url = wfs_url; + } + public void setDisplay(boolean display) { this.display = display; } @@ -55,16 +78,21 @@ public class CustomLayerDV implements Serializable { @Override public String toString() { StringBuilder builder = new StringBuilder(); - builder.append("CustomLayerDV [title="); + builder.append("ConfiguredLayerDV [title="); builder.append(title); + builder.append(", description="); + builder.append(description); builder.append(", name="); builder.append(name); builder.append(", wms_url="); builder.append(wms_url); + builder.append(", wfs_url="); + builder.append(wfs_url); builder.append(", display="); builder.append(display); builder.append("]"); return builder.toString(); } + } diff --git a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/layers/CrossFilteringLayerDV.java b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/layers/CrossFilteringLayerDV.java new file mode 100644 index 0000000..f65bef7 --- /dev/null +++ b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/layers/CrossFilteringLayerDV.java @@ -0,0 +1,78 @@ +package org.gcube.application.geoportalcommon.shared.geoportal.config.layers; + +import java.util.List; + +public class CrossFilteringLayerDV extends ConfiguredLayerDV { + + /** + * + */ + private static final long serialVersionUID = 1130075528037312939L; + String table_show_field; + String table_key_field; + String table_parent_key_field; + String table_geometry_name; + List related_to; + + public CrossFilteringLayerDV() { + + } + + public String getTable_show_field() { + return table_show_field; + } + + public String getTable_key_field() { + return table_key_field; + } + + public String getTable_parent_key_field() { + return table_parent_key_field; + } + + public String getTable_geometry_name() { + return table_geometry_name; + } + + public List getRelated_to() { + return related_to; + } + + public void setTable_show_field(String table_show_field) { + this.table_show_field = table_show_field; + } + + public void setTable_key_field(String table_key_field) { + this.table_key_field = table_key_field; + } + + public void setTable_parent_key_field(String table_parent_key_field) { + this.table_parent_key_field = table_parent_key_field; + } + + public void setTable_geometry_name(String table_geometry_name) { + this.table_geometry_name = table_geometry_name; + } + + public void setRelated_to(List related_to) { + this.related_to = related_to; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("CrossFilteringLayerDV [table_show_field="); + builder.append(table_show_field); + builder.append(", table_key_field="); + builder.append(table_key_field); + builder.append(", table_parent_key_field="); + builder.append(table_parent_key_field); + builder.append(", table_geometry_name="); + builder.append(table_geometry_name); + builder.append(", related_to="); + builder.append(related_to); + builder.append("]"); + return builder.toString(); + } + +} diff --git a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/layers/LayerIDV.java b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/layers/LayerIDV.java new file mode 100644 index 0000000..8e9743a --- /dev/null +++ b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/layers/LayerIDV.java @@ -0,0 +1,10 @@ +package org.gcube.application.geoportalcommon.shared.geoportal.config.layers; + +public interface LayerIDV { + + String getName(); + String getTitle(); + String getWMS_URL(); + String getWFS_URL(); + +} diff --git a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_CONFIGURATION_TYPE.java b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_CONFIGURATION_TYPE.java index f8f1134..72999fe 100644 --- a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_CONFIGURATION_TYPE.java +++ b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_CONFIGURATION_TYPE.java @@ -1,7 +1,11 @@ package org.gcube.application.geoportalcommon.shared.geoportal.ucd; public enum GEOPORTAL_CONFIGURATION_TYPE { - item_fields("itemFields"), gcube_profiles("gcubeProfiles"), actions_definition("actionsDefinition"), grouped_overlay_layers("grouped_overlay_layers"); + item_fields("itemFields"), + gcube_profiles("gcubeProfiles"), + actions_definition("actionsDefinition"), + grouped_overlay_layers("grouped_overlay_layers"), + grouped_cross_filtering_layers("grouped_cross_filtering_layers"); String id; diff --git a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_DATA_HANDLER.java b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_DATA_HANDLER.java index 2ca5648..1e72518 100644 --- a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_DATA_HANDLER.java +++ b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/ucd/GEOPORTAL_DATA_HANDLER.java @@ -7,7 +7,7 @@ public enum GEOPORTAL_DATA_HANDLER { geoportal_data_entry("org.gcube.portlets.user.geoportal-data-entry-app", "DATA_ENTRY_GUI"), geoportal_workflow_action_list("org.gcube.portlets.user.geoportal-workflow-action-list","WORKFLOW_ACTION_LIST_GUI"), geoportal_timeline_json_template("org.gcube.portlets.user.geoportal-timeline-json-template","TIMELINE_JSON_TEMPLATE"), - geoportal_cross_filtering("org.gcube.portlets.user.cross-filtering","CROSS_FILTERING"), + geoportal_grouped_cross_filtering("org.gcube.portlets.user.grouped_cross_filtering_layers","GROUPED_CROSS_FILTERING_LAYERS"), geoportal_grouped_overlay_layers("org.gcube.portlets.user.grouped_overlay_layers","GROUPED_OVERLAY_LAYERS"), gna_concessioni_lc("GNA-CONCESSIONI-LC", "LifecycleManagement"); diff --git a/src/test/java/org/gcube/application/TestGNACommon.java b/src/test/java/org/gcube/application/TestGNACommon.java index 99c35aa..aec7f19 100644 --- a/src/test/java/org/gcube/application/TestGNACommon.java +++ b/src/test/java/org/gcube/application/TestGNACommon.java @@ -15,8 +15,6 @@ import org.gcube.application.geoportalcommon.shared.GeoportalItemReferences; import org.gcube.application.geoportalcommon.shared.config.RoleRights; import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.scope.api.ScopeProvider; -import org.junit.Before; -import org.junit.Test; public class TestGNACommon { diff --git a/src/test/java/org/gcube/application/UCD_Tests.java b/src/test/java/org/gcube/application/UCD_Tests.java index fd7a171..001e661 100644 --- a/src/test/java/org/gcube/application/UCD_Tests.java +++ b/src/test/java/org/gcube/application/UCD_Tests.java @@ -23,8 +23,6 @@ import org.gcube.application.geoportalcommon.shared.geoportal.ConfigurationDV; import org.gcube.application.geoportalcommon.shared.geoportal.config.ActionDefinitionDV; import org.gcube.application.geoportalcommon.shared.geoportal.config.GcubeProfileDV; import org.gcube.application.geoportalcommon.shared.geoportal.config.ItemFieldDV; -import org.gcube.application.geoportalcommon.shared.geoportal.materialization.CustomLayerDV; -import org.gcube.application.geoportalcommon.shared.geoportal.materialization.GroupedCustomLayersDV; import org.gcube.application.geoportalcommon.shared.geoportal.ucd.GEOPORTAL_CONFIGURATION_TYPE; import org.gcube.application.geoportalcommon.shared.geoportal.ucd.GEOPORTAL_DATA_HANDLER; import org.gcube.application.geoportalcommon.shared.geoportal.ucd.HandlerDeclarationDV; @@ -232,7 +230,7 @@ public class UCD_Tests { } //@Test - public void getUCDGroupedCustomLayers() throws Exception { + public void getUCDGroupedOverlayLayers() throws Exception { ScopeProvider.instance.set(CONTEXT); SecurityTokenProvider.instance.set(TOKEN); @@ -264,6 +262,43 @@ public class UCD_Tests { System.out.println(listUCDDV); } + + + //@Test + public void getUCDGroupedCrossFilteringLayers() throws Exception { + System.out.println("Running getUCDGroupedCrossFilteringLayers"); + ScopeProvider.instance.set(CONTEXT); + SecurityTokenProvider.instance.set(TOKEN); + + List handlersIds = null; + List listUseCaseDescriptor; + + try { + UseCaseDescriptorCaller client = GeoportalClientCaller.useCaseDescriptors(); + + if (handlersIds == null) { + handlersIds = Arrays.asList(GEOPORTAL_DATA_HANDLER.geoportal_grouped_cross_filtering.getId()); + System.out.println("handlersIds is null, so using default: " + handlersIds); + } + listUseCaseDescriptor = client.getListForHandlerIds(handlersIds); + } catch (Exception e) { + e.printStackTrace(); + return; + } + + if (listUseCaseDescriptor == null) { + listUseCaseDescriptor = new ArrayList(); + } + + List listUCDDV = new ArrayList(listUseCaseDescriptor.size()); + for (UseCaseDescriptor ucd : listUseCaseDescriptor) { + listUCDDV.add(ConvertToDataValueObjectModel.toUseCaseDescriptorDV(ucd, null)); + } + + System.out.println(listUCDDV); + System.out.println("Terminated getUCDGroupedCrossFilteringLayers"); + + } /** * Gets the UCD for handler types. @@ -273,10 +308,11 @@ public class UCD_Tests { */ //@Test public void getUCDForHandlerTypes() throws Exception { + System.out.println("Running getUCDForHandlerTypes"); ScopeProvider.instance.set(CONTEXT); SecurityTokenProvider.instance.set(TOKEN); - String handlerType = GEOPORTAL_DATA_HANDLER.geoportal_grouped_overlay_layers.getType(); + String handlerType = GEOPORTAL_DATA_HANDLER.geoportal_grouped_cross_filtering.getType(); UseCaseDescriptor ucd = null; List handlers = null; @@ -290,15 +326,15 @@ public class UCD_Tests { return; } + int i = 0; for (HandlerDeclaration handlerDeclaration : handlers) { System.out.println(handlerDeclaration); - System.out.println("Config json: "+handlerDeclaration.getConfiguration().toJson()); - HandlerDeclarationDV handlerDV = ConvertToDataValueObjectModel.toHandlerDeclarationDV(handlerDeclaration, ucd, GEOPORTAL_CONFIGURATION_TYPE.grouped_overlay_layers); - System.out.println("handlerDV is: "+handlerDV); + System.out.println(++i+")##Config json: "+handlerDeclaration.getConfiguration().toJson()); + HandlerDeclarationDV handlerDV = ConvertToDataValueObjectModel.toHandlerDeclarationDV(handlerDeclaration, ucd, GEOPORTAL_CONFIGURATION_TYPE.grouped_cross_filtering_layers); + System.out.println("\nhandlerDV is: "+handlerDV); } - - - + System.out.println("\n"); + System.out.println("Terminated getUCDForHandlerTypes"); } -- 2.17.1 From e003479415a7a501a41072ad5bce88f9589541c6 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Thu, 25 May 2023 09:20:18 +0200 Subject: [PATCH 5/6] added serializable --- .../shared/geoportal/config/layers/ConfiguredLayerDV.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/layers/ConfiguredLayerDV.java b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/layers/ConfiguredLayerDV.java index b7f17db..9e380a8 100644 --- a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/layers/ConfiguredLayerDV.java +++ b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/config/layers/ConfiguredLayerDV.java @@ -9,7 +9,7 @@ import java.io.Serializable; * * May 12, 2023 */ -public class ConfiguredLayerDV implements Serializable, LayerIDV { +public class ConfiguredLayerDV implements LayerIDV, Serializable{ /** * -- 2.17.1 From 11190e5605b456ad0617462ea66cb8ff4823111a Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Mon, 5 Jun 2023 14:28:53 +0200 Subject: [PATCH 6/6] Updated changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0816d23..8a3aaf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [v2.2.0-SNAPSHOT] - Integrated the cross-filtering configuration [#25074] -- Integrated the grouped overlay layers configuration [#25110] +- Integrated the overlay layers configuration [#25110] ## [v2.1.0] - 2023-05-11 -- 2.17.1