task_24166 #14
|
@ -1,12 +1,12 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<classpath>
|
<classpath>
|
||||||
<classpathentry kind="src" output="target/geoportal-data-viewer-app-3.3.1-SNAPSHOT/WEB-INF/classes" path="src/main/java">
|
<classpathentry kind="src" output="target/geoportal-data-viewer-app-3.4.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="optional" value="true"/>
|
<attribute name="optional" value="true"/>
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry excluding="**" kind="src" output="target/geoportal-data-viewer-app-3.3.1-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
|
<classpathentry excluding="**" kind="src" output="target/geoportal-data-viewer-app-3.4.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
@ -35,5 +35,5 @@
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="output" path="target/geoportal-data-viewer-app-3.3.1-SNAPSHOT/WEB-INF/classes"/>
|
<classpathentry kind="output" path="target/geoportal-data-viewer-app-3.4.0-SNAPSHOT/WEB-INF/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
lastWarOutDir=/home/francescomangiacrapa/git/geoportal-data-viewer-app/target/geoportal-data-viewer-app-3.3.1-SNAPSHOT
|
lastWarOutDir=/home/francescomangiacrapa/git/geoportal-data-viewer-app/target/geoportal-data-viewer-app-3.4.0-SNAPSHOT
|
||||||
warSrcDir=src/main/webapp
|
warSrcDir=src/main/webapp
|
||||||
warSrcDirIsOutput=false
|
warSrcDirIsOutput=false
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
|
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -58,8 +58,48 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<wb-module deploy-name="geoportal-data-viewer-app-3.3.1-SNAPSHOT">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<wb-module deploy-name="geoportal-data-viewer-app-3.4.0-SNAPSHOT">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -119,7 +159,27 @@
|
||||||
|
|
||||||
|
|
||||||
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -179,7 +239,27 @@
|
||||||
|
|
||||||
|
|
||||||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -239,7 +319,27 @@
|
||||||
|
|
||||||
|
|
||||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/target/generated-sources/gwt"/>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/target/generated-sources/gwt"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -299,7 +399,27 @@
|
||||||
|
|
||||||
|
|
||||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -359,10 +479,27 @@
|
||||||
|
|
||||||
|
|
||||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||||
<dependent-module archiveName="metadata-profile-form-builder-widget-2.1.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/metadata-profile-form-builder-widget/metadata-profile-form-builder-widget">
|
|
||||||
<dependency-type>uses</dependency-type>
|
|
||||||
</dependent-module>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -422,7 +559,27 @@
|
||||||
|
|
||||||
|
|
||||||
<property name="java-output-path" value="/geoportal-data-viewer-app/target/geoportal-data-viewer-app-0.0.1-SNAPSHOT/WEB-INF/classes"/>
|
<property name="java-output-path" value="/geoportal-data-viewer-app/target/geoportal-data-viewer-app-0.0.1-SNAPSHOT/WEB-INF/classes"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -482,7 +639,27 @@
|
||||||
|
|
||||||
|
|
||||||
<property name="context-root" value="geoportal-data-viewer-app"/>
|
<property name="context-root" value="geoportal-data-viewer-app"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -542,7 +719,27 @@
|
||||||
|
|
||||||
|
|
||||||
</wb-module>
|
</wb-module>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,10 @@
|
||||||
All notable changes to this project will be documented in this file.
|
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).
|
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [v3.4.0-SNAPSHOT] - 2023-05-11
|
||||||
|
|
||||||
|
- Integrated the geoportal-data-mapper component [#24978]
|
||||||
|
|
||||||
## [v3.3.1] - 2023-03-30
|
## [v3.3.1] - 2023-03-30
|
||||||
|
|
||||||
- Just including new dependencies
|
- Just including new dependencies
|
||||||
|
|
|
@ -16,9 +16,13 @@ The GeoPortal Data Viewer App is an application to access, discovery and navigat
|
||||||
* Vis-Timeline v7.x [VisTimeline](https://github.com/visjs/vis-timeline) is licensed under [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) and MIT
|
* Vis-Timeline v7.x [VisTimeline](https://github.com/visjs/vis-timeline) is licensed under [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) and MIT
|
||||||
* Handlebarsjs v4.x [Handlebarsjs](https://handlebarsjs.com/) is licensed under MIT
|
* Handlebarsjs v4.x [Handlebarsjs](https://handlebarsjs.com/) is licensed under MIT
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
<img src="https://gcube.wiki.gcube-system.org/images_gcube/8/82/GeoPortalDataViewer_Architecture.png" style="max-width:800px;" alt="GeoPortal Data-Viewer - Architecture" />
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
N/A
|
Geoportal Service Documentation is available at [gCube CMS Suite](https://geoportal.d4science.org/geoportal-service/docs/index.html)
|
||||||
|
|
||||||
## Change log
|
## Change log
|
||||||
|
|
||||||
|
|
37
pom.xml
37
pom.xml
|
@ -14,13 +14,13 @@
|
||||||
<groupId>org.gcube.portlets.user</groupId>
|
<groupId>org.gcube.portlets.user</groupId>
|
||||||
<artifactId>geoportal-data-viewer-app</artifactId>
|
<artifactId>geoportal-data-viewer-app</artifactId>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
<version>3.3.1</version>
|
<version>3.4.0-SNAPSHOT</version>
|
||||||
<name>GeoPortal Data Viewer App</name>
|
<name>GeoPortal Data Viewer App</name>
|
||||||
<description>The GeoPortal Data Viewer App is an application to access, discovery and navigate the Geoportal projects/documents by a Web-Map Interface</description>
|
<description>The GeoPortal Data Viewer App is an application to access, discovery and navigate the Geoportal projects/documents by a Web-Map Interface</description>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<!-- Convenience property to set the GWT version -->
|
<!-- Convenience property to set the GWT version -->
|
||||||
<gwt.version>2.10.0</gwt.version>
|
<gwt.version>2.9.0</gwt.version>
|
||||||
<gwt.compiler.style>PRETTY</gwt.compiler.style>
|
<gwt.compiler.style>PRETTY</gwt.compiler.style>
|
||||||
<gson.version>2.6.2</gson.version>
|
<gson.version>2.6.2</gson.version>
|
||||||
<webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
|
<webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
|
||||||
|
@ -55,7 +55,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.distribution</groupId>
|
<groupId>org.gcube.distribution</groupId>
|
||||||
<artifactId>maven-portal-bom</artifactId>
|
<artifactId>maven-portal-bom</artifactId>
|
||||||
<version>3.7.0</version>
|
<version>3.8.0-SNAPSHOT</version>
|
||||||
<type>pom</type>
|
<type>pom</type>
|
||||||
<scope>import</scope>
|
<scope>import</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
@ -135,13 +135,6 @@
|
||||||
<artifactId>usermanagement-core</artifactId>
|
<artifactId>usermanagement-core</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.gcube.portlets.user</groupId>
|
|
||||||
<artifactId>gcube-url-shortener</artifactId>
|
|
||||||
<version>[1.0.0,2.0.0-SNAPSHOT)</version>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- REQUIRED FOR JDK_11 -->
|
<!-- REQUIRED FOR JDK_11 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
|
@ -150,30 +143,12 @@
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- END -->
|
<!-- END -->
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.portlets.widgets</groupId>
|
<groupId>org.gcube.application</groupId>
|
||||||
<artifactId>metadata-profile-form-builder-widget</artifactId>
|
<artifactId>geoportal-data-mapper</artifactId>
|
||||||
<version>[2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version>
|
<version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
<!-- does not remove these exclusions, there are conflict with jackson
|
|
||||||
2.7 used by geo-json dependency -->
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>com.fasterxml.jackson.core</groupId>
|
|
||||||
<artifactId>jackson-core</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>com.fasterxml.jackson.core</groupId>
|
|
||||||
<artifactId>jackson-databind</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>de.grundid.opendatalab</groupId>
|
|
||||||
<artifactId>geojson-jackson</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.application</groupId>
|
<groupId>org.gcube.application</groupId>
|
||||||
<artifactId>geoportal-data-common</artifactId>
|
<artifactId>geoportal-data-common</artifactId>
|
||||||
|
|
|
@ -1010,9 +1010,9 @@ public class LayerManager {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
final Button buttonViewLayers = new Button("Zoom to Layers");
|
final Button buttonViewLayers = new Button("Zoom in...");
|
||||||
buttonViewLayers.getElement().setId("go-to-layers");
|
buttonViewLayers.getElement().setId("go-to-layers");
|
||||||
buttonViewLayers.getElement().setTitle("Zoom to Layers");
|
buttonViewLayers.getElement().setTitle("Zoom in...");
|
||||||
buttonViewLayers.setType(ButtonType.LINK);
|
buttonViewLayers.setType(ButtonType.LINK);
|
||||||
|
|
||||||
if (olMap.getCurrentZoomLevel() >= OLMapManager.LAYER_DETAIL_MAX_RESOLUTION) {
|
if (olMap.getCurrentZoomLevel() >= OLMapManager.LAYER_DETAIL_MAX_RESOLUTION) {
|
||||||
|
@ -1202,9 +1202,9 @@ public class LayerManager {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
final Button buttonViewLayers = new Button("Zoom to Layers");
|
final Button buttonViewLayers = new Button("Zoom in...");
|
||||||
buttonViewLayers.getElement().setId("go-to-layers");
|
buttonViewLayers.getElement().setId("go-to-layers");
|
||||||
buttonViewLayers.getElement().setTitle("Zoom to Layers");
|
buttonViewLayers.getElement().setTitle("Zoom in...");
|
||||||
buttonViewLayers.setType(ButtonType.LINK);
|
buttonViewLayers.setType(ButtonType.LINK);
|
||||||
|
|
||||||
if (olMap.getCurrentZoomLevel() >= OLMapManager.LAYER_DETAIL_MAX_RESOLUTION) {
|
if (olMap.getCurrentZoomLevel() >= OLMapManager.LAYER_DETAIL_MAX_RESOLUTION) {
|
||||||
|
|
|
@ -124,7 +124,7 @@ public class SectionViewer extends Composite {
|
||||||
List<FilesetDV> files = subDocumentView.getListFiles();
|
List<FilesetDV> files = subDocumentView.getListFiles();
|
||||||
if (files != null) {
|
if (files != null) {
|
||||||
for (FilesetDV fileset : files) {
|
for (FilesetDV fileset : files) {
|
||||||
showLinkToDownloadWsContent(fileset.getName(), fileset.getListPayload());
|
showLinkToDownloadWsContent(fileset.getGcubeProfileFieldName(), fileset.getListPayload());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,68 +0,0 @@
|
||||||
package org.gcube.portlets.user.geoportaldataviewer.server;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.gcube.application.geoportalcommon.shared.geoportal.config.GcubeProfileDV;
|
|
||||||
import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.MetaDataProfileBean;
|
|
||||||
|
|
||||||
public class GcubeProfilesMetadataForUCD implements Serializable {
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private static final long serialVersionUID = -8953445402356442872L;
|
|
||||||
private String profileID;
|
|
||||||
private GcubeProfileDV gcubeProfile;
|
|
||||||
private List<MetaDataProfileBean> listMetadataProfileBean;
|
|
||||||
|
|
||||||
public GcubeProfilesMetadataForUCD() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public GcubeProfilesMetadataForUCD(String profileID, GcubeProfileDV gcubeProfile,
|
|
||||||
List<MetaDataProfileBean> listMetadataProfileBean) {
|
|
||||||
|
|
||||||
this.profileID = profileID;
|
|
||||||
this.gcubeProfile = gcubeProfile;
|
|
||||||
this.listMetadataProfileBean = listMetadataProfileBean;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getProfileID() {
|
|
||||||
return profileID;
|
|
||||||
}
|
|
||||||
|
|
||||||
public GcubeProfileDV getGcubeProfile() {
|
|
||||||
return gcubeProfile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<MetaDataProfileBean> getListMetadataProfileBean() {
|
|
||||||
return listMetadataProfileBean;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProfileID(String profileID) {
|
|
||||||
this.profileID = profileID;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGcubeProfile(GcubeProfileDV gcubeProfile) {
|
|
||||||
this.gcubeProfile = gcubeProfile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setListMetadataProfileBean(List<MetaDataProfileBean> listMetadataProfileBean) {
|
|
||||||
this.listMetadataProfileBean = listMetadataProfileBean;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
StringBuilder builder = new StringBuilder();
|
|
||||||
builder.append("GcubeProfilesMetadataForUCD [profileID=");
|
|
||||||
builder.append(profileID);
|
|
||||||
builder.append(", gcubeProfile=");
|
|
||||||
builder.append(gcubeProfile);
|
|
||||||
builder.append(", listMetadataProfileBean=");
|
|
||||||
builder.append(listMetadataProfileBean);
|
|
||||||
builder.append("]");
|
|
||||||
return builder.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,162 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.gcube.portlets.user.geoportaldataviewer.server;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
import org.gcube.application.geoportal.common.model.useCaseDescriptor.HandlerDeclaration;
|
|
||||||
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
|
|
||||||
import org.gcube.application.geoportalcommon.ConvertToDataValueObjectModel;
|
|
||||||
import org.gcube.application.geoportalcommon.geoportal.GeoportalClientCaller;
|
|
||||||
import org.gcube.application.geoportalcommon.geoportal.UseCaseDescriptorCaller;
|
|
||||||
import org.gcube.application.geoportalcommon.shared.geoportal.ConfigurationDV;
|
|
||||||
import org.gcube.application.geoportalcommon.shared.geoportal.config.GcubeProfileDV;
|
|
||||||
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.common.scope.api.ScopeProvider;
|
|
||||||
import org.gcube.portlets.widgets.mpformbuilder.server.MetadataProfileFormBuilderServiceImpl;
|
|
||||||
import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.MetaDataProfileBean;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import com.google.common.cache.CacheBuilder;
|
|
||||||
import com.google.common.cache.CacheLoader;
|
|
||||||
import com.google.common.cache.LoadingCache;
|
|
||||||
import com.google.common.cache.RemovalListener;
|
|
||||||
import com.google.common.cache.RemovalNotification;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The Class GcubeProfilesPerUCDIdCache.
|
|
||||||
*
|
|
||||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
|
||||||
*
|
|
||||||
* Oct 12, 2022
|
|
||||||
*/
|
|
||||||
public class GcubeProfilesPerUCDIdCache {
|
|
||||||
|
|
||||||
private static Logger LOG = LoggerFactory.getLogger(GcubeProfilesPerUCDIdCache.class);
|
|
||||||
|
|
||||||
private static LoadingCache<String, LinkedHashMap<String, List<GcubeProfilesMetadataForUCD>>> gCubeProfilesPerProfileIDCache;
|
|
||||||
|
|
||||||
static {
|
|
||||||
|
|
||||||
CacheLoader<String, LinkedHashMap<String, List<GcubeProfilesMetadataForUCD>>> loader = new CacheLoader<String, LinkedHashMap<String, List<GcubeProfilesMetadataForUCD>>>() {
|
|
||||||
@Override
|
|
||||||
public LinkedHashMap<String, List<GcubeProfilesMetadataForUCD>> load(String scope) throws Exception {
|
|
||||||
LOG.info("Loading the cache for scope: " + scope);
|
|
||||||
return loadGcubeProfilesForUCDIdInTheScope(scope);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
RemovalListener<String, LinkedHashMap<String, List<GcubeProfilesMetadataForUCD>>> removalListener = new RemovalListener<String, LinkedHashMap<String, List<GcubeProfilesMetadataForUCD>>>() {
|
|
||||||
public void onRemoval(
|
|
||||||
RemovalNotification<String, LinkedHashMap<String, List<GcubeProfilesMetadataForUCD>>> removal) {
|
|
||||||
LOG.info(GcubeProfilesPerUCDIdCache.class.getSimpleName() + " cache expired");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
gCubeProfilesPerProfileIDCache = CacheBuilder.newBuilder().maximumSize(1000)
|
|
||||||
.expireAfterWrite(30, TimeUnit.MINUTES).removalListener(removalListener).build(loader);
|
|
||||||
|
|
||||||
LOG.info("cache instancied");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the.
|
|
||||||
*
|
|
||||||
* @param scope the scope
|
|
||||||
* @return the geonetwork instance
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public static LinkedHashMap<String, List<GcubeProfilesMetadataForUCD>> get(String scope) throws Exception {
|
|
||||||
LOG.info("GcubeProfilesPerUCDIdCache get - called in the scope: " + scope);
|
|
||||||
LinkedHashMap<String, List<GcubeProfilesMetadataForUCD>> map = gCubeProfilesPerProfileIDCache.get(scope);
|
|
||||||
LOG.info("GcubeProfilesPerUCDIdCache returning map null? " + (map==null));
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Load geonetwork instance.
|
|
||||||
*
|
|
||||||
* @param scope the scope
|
|
||||||
* @return the linked hash map
|
|
||||||
* @throws Exception the exception
|
|
||||||
*/
|
|
||||||
private static LinkedHashMap<String, List<GcubeProfilesMetadataForUCD>> loadGcubeProfilesForUCDIdInTheScope(
|
|
||||||
String scope) throws Exception {
|
|
||||||
LOG.info("loadGcubeProfilesForUCDIdInTheScope called in the scope: " + scope);
|
|
||||||
|
|
||||||
LinkedHashMap<String, List<GcubeProfilesMetadataForUCD>> linkedMap_UCDId_gCubeProfiles = new LinkedHashMap<String, List<GcubeProfilesMetadataForUCD>>();
|
|
||||||
try {
|
|
||||||
ScopeProvider.instance.set(scope);
|
|
||||||
UseCaseDescriptorCaller clientUCD = GeoportalClientCaller.useCaseDescriptors();
|
|
||||||
List<UseCaseDescriptor> listUCDs = clientUCD.getList();
|
|
||||||
LOG.debug("listUCDs: " + listUCDs);
|
|
||||||
|
|
||||||
for (UseCaseDescriptor ucd : listUCDs) {
|
|
||||||
|
|
||||||
LOG.info("Loaded UCD for ID: " + ucd.getId());
|
|
||||||
String profileID = ucd.getId();
|
|
||||||
GEOPORTAL_DATA_HANDLER theHandler = GEOPORTAL_DATA_HANDLER.geoportal_data_entry;
|
|
||||||
List<HandlerDeclaration> handlers = ucd.getHandlersByType(theHandler.getType());
|
|
||||||
|
|
||||||
if (handlers.size() == 0) {
|
|
||||||
LOG.warn("No handler " + theHandler + "found into UCD " + ucd.getId() + ", continue...");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Loading Handler gcube_profiles
|
|
||||||
HandlerDeclaration dataEntryHandler = handlers.get(0);
|
|
||||||
HandlerDeclarationDV handlerGcubeProfiles = ConvertToDataValueObjectModel
|
|
||||||
.toHandlerDeclarationDV(dataEntryHandler, ucd, GEOPORTAL_CONFIGURATION_TYPE.gcube_profiles);
|
|
||||||
|
|
||||||
LOG.debug("Handler " + GEOPORTAL_CONFIGURATION_TYPE.gcube_profiles + " for PROFILE_ID: " + ucd.getId());
|
|
||||||
LOG.debug("" + handlerGcubeProfiles);
|
|
||||||
|
|
||||||
ConfigurationDV<?> config = handlerGcubeProfiles.getConfiguration();
|
|
||||||
// List of gCube Profiles defined in the UCD
|
|
||||||
List<GcubeProfileDV> listGcubeProfiles = (List<GcubeProfileDV>) config.getConfiguration();
|
|
||||||
LOG.debug("List of GcubeProfileDV are: " + listGcubeProfiles);
|
|
||||||
|
|
||||||
List<GcubeProfilesMetadataForUCD> listProfilesBean = new ArrayList<GcubeProfilesMetadataForUCD>();
|
|
||||||
// Loading Metadata Profile from IS
|
|
||||||
MetadataProfileFormBuilderServiceImpl metaProfileBUilder = new MetadataProfileFormBuilderServiceImpl();
|
|
||||||
|
|
||||||
for (GcubeProfileDV gcubeProfileDV : listGcubeProfiles) {
|
|
||||||
ScopeProvider.instance.set(scope);
|
|
||||||
GcubeProfilesMetadataForUCD gCubeProfileMetadataForUCD = new GcubeProfilesMetadataForUCD();
|
|
||||||
List<MetaDataProfileBean> listProfiles = metaProfileBUilder.getProfilesInTheScopeForName(scope,
|
|
||||||
gcubeProfileDV.getGcubeSecondaryType(), gcubeProfileDV.getGcubeName());
|
|
||||||
|
|
||||||
String key = gcubeProfileDV.getGcubeSecondaryType() + gcubeProfileDV.getGcubeName();
|
|
||||||
LOG.debug("for key: " + key + " readi profiles: " + listGcubeProfiles);
|
|
||||||
gCubeProfileMetadataForUCD.setGcubeProfile(gcubeProfileDV);
|
|
||||||
gCubeProfileMetadataForUCD.setListMetadataProfileBean(listProfiles);
|
|
||||||
listProfilesBean.add(gCubeProfileMetadataForUCD);
|
|
||||||
|
|
||||||
}
|
|
||||||
linkedMap_UCDId_gCubeProfiles.put(ucd.getId(), listProfilesBean);
|
|
||||||
|
|
||||||
if (LOG.isDebugEnabled()) {
|
|
||||||
for (String key : linkedMap_UCDId_gCubeProfiles.keySet()) {
|
|
||||||
LOG.debug("For key '" + key + "' got profiles: " + linkedMap_UCDId_gCubeProfiles.get(key));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
String erroMsg = "Error occurred on preloadgCubeProfilesForUCDs: ";
|
|
||||||
LOG.error(erroMsg, e);
|
|
||||||
}
|
|
||||||
|
|
||||||
LOG.info("GcubeProfilesPerUCDIdCache loaded with " + linkedMap_UCDId_gCubeProfiles.size() + " item/s");
|
|
||||||
return linkedMap_UCDId_gCubeProfiles;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -61,6 +61,8 @@ import org.gcube.application.geoportalcommon.shared.geoportal.ucd.UseCaseDescrip
|
||||||
import org.gcube.application.geoportalcommon.shared.geoportal.view.ProjectView;
|
import org.gcube.application.geoportalcommon.shared.geoportal.view.ProjectView;
|
||||||
import org.gcube.application.geoportalcommon.shared.gis.BoundsMap;
|
import org.gcube.application.geoportalcommon.shared.gis.BoundsMap;
|
||||||
import org.gcube.application.geoportalcommon.util.URLParserUtil;
|
import org.gcube.application.geoportalcommon.util.URLParserUtil;
|
||||||
|
import org.gcube.application.geoportaldatamapper.GcubeProfilesPerUCDIdCache;
|
||||||
|
import org.gcube.application.geoportaldatamapper.Geoportal_JSON_Mapper;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
|
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerService;
|
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerService;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.server.gis.FeatureParser;
|
import org.gcube.portlets.user.geoportaldataviewer.server.gis.FeatureParser;
|
||||||
|
@ -117,7 +119,7 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
||||||
public static enum COMMON_IMAGES_FORMAT {
|
public static enum COMMON_IMAGES_FORMAT {
|
||||||
gif, png, jpeg, jpg, bmp, tif, tiff, svg, avif, webp
|
gif, png, jpeg, jpg, bmp, tif, tiff, svg, avif, webp
|
||||||
}
|
}
|
||||||
|
|
||||||
public static enum CENTROID_LAYER_INDEX_FLAG {
|
public static enum CENTROID_LAYER_INDEX_FLAG {
|
||||||
PUBLIC("public"), PRIVATE("internal");
|
PUBLIC("public"), PRIVATE("internal");
|
||||||
|
|
||||||
|
@ -130,7 +132,7 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
|
@ -139,7 +141,7 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
||||||
builder.append("]");
|
builder.append("]");
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -350,9 +352,9 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
||||||
if (item.getProfileID() == null)
|
if (item.getProfileID() == null)
|
||||||
throw new Exception("Bad request, the profileID is null");
|
throw new Exception("Bad request, the profileID is null");
|
||||||
|
|
||||||
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
String gcubeScope = SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
||||||
GeoportalCommon gc = new GeoportalCommon();
|
GeoportalCommon gc = new GeoportalCommon();
|
||||||
return gc.getPublicLinksFor(item, true);
|
return gc.getPublicLinksFor(gcubeScope, item, true);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOG.error("Error on getPublicLinksFor for: " + item, e);
|
LOG.error("Error on getPublicLinksFor for: " + item, e);
|
||||||
|
@ -490,24 +492,27 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
||||||
// TODO constant
|
// TODO constant
|
||||||
coll.setIndexes(new ArrayList());
|
coll.setIndexes(new ArrayList());
|
||||||
|
|
||||||
LOG.debug("Checking if " + u.getId() + " is GIS Indexed. Index flag needed is '" + setIndexFlag+"'");
|
LOG.debug("Checking if " + u.getId() + " is GIS Indexed. Index flag needed is '"
|
||||||
|
+ setIndexFlag + "'");
|
||||||
IndexLayerDV toAdd = getLayerIndex(ucdConfig, setIndexFlag);
|
IndexLayerDV toAdd = getLayerIndex(ucdConfig, setIndexFlag);
|
||||||
if(toAdd!=null) {
|
if (toAdd != null) {
|
||||||
coll.getIndexes().add(toAdd);
|
coll.getIndexes().add(toAdd);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Using the public centroid layer as default
|
// Using the public centroid layer as default
|
||||||
if (coll.getIndexes().isEmpty()) {
|
if (coll.getIndexes().isEmpty()) {
|
||||||
LOG.info("No available GIS Index for collection " + coll.getUcd().getName() +" with flag "+setIndexFlag.getId());
|
LOG.info("No available GIS Index for collection " + coll.getUcd().getName()
|
||||||
|
+ " with flag " + setIndexFlag.getId());
|
||||||
setIndexFlag = CENTROID_LAYER_INDEX_FLAG.PUBLIC;
|
setIndexFlag = CENTROID_LAYER_INDEX_FLAG.PUBLIC;
|
||||||
LOG.info("Prevent fallback - getting the GIS index with flag '"+setIndexFlag.getId() + "' available");
|
LOG.info("Prevent fallback - getting the GIS index with flag '" + setIndexFlag.getId()
|
||||||
|
+ "' available");
|
||||||
toAdd = getLayerIndex(ucdConfig, setIndexFlag);
|
toAdd = getLayerIndex(ucdConfig, setIndexFlag);
|
||||||
if(toAdd!=null) {
|
if (toAdd != null) {
|
||||||
coll.getIndexes().add(toAdd);
|
coll.getIndexes().add(toAdd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!coll.getIndexes().isEmpty())
|
if (!coll.getIndexes().isEmpty())
|
||||||
config.getAvailableCollections().put(coll.getUcd().getId(), coll);
|
config.getAvailableCollections().put(coll.getUcd().getId(), coll);
|
||||||
|
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
|
@ -526,16 +531,15 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
||||||
|
|
||||||
}.execute().getResult();
|
}.execute().getResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private IndexLayerDV getLayerIndex(Configuration ucdConfig, CENTROID_LAYER_INDEX_FLAG flag) {
|
private IndexLayerDV getLayerIndex(Configuration ucdConfig, CENTROID_LAYER_INDEX_FLAG flag) {
|
||||||
|
|
||||||
for (Index index : ucdConfig.getIndexes()) {
|
for (Index index : ucdConfig.getIndexes()) {
|
||||||
try {
|
try {
|
||||||
IndexLayerDV toAdd = ConvertToDataValueObjectModel.convert(index);
|
IndexLayerDV toAdd = ConvertToDataValueObjectModel.convert(index);
|
||||||
LOG.trace("Discovered index: "+toAdd);
|
LOG.trace("Discovered index: " + toAdd);
|
||||||
if (toAdd.getFlag().compareToIgnoreCase(flag.getId())==0) {
|
if (toAdd.getFlag().compareToIgnoreCase(flag.getId()) == 0) {
|
||||||
LOG.debug("Layer index found for flag: "+flag + ", returning");
|
LOG.debug("Layer index found for flag: " + flag + ", returning");
|
||||||
return toAdd;
|
return toAdd;
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -544,7 +548,7 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
||||||
LOG.error("Unable to check index ", t);
|
LOG.error("Unable to check index ", t);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -700,7 +704,7 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
||||||
filter.setProjection(projectionForIDs);
|
filter.setProjection(projectionForIDs);
|
||||||
|
|
||||||
ResultSetPaginatedDataIDs searchedDataIDs = new ResultSetPaginatedDataIDs();
|
ResultSetPaginatedDataIDs searchedDataIDs = new ResultSetPaginatedDataIDs();
|
||||||
|
|
||||||
Integer totalProjectForProfile = SessionUtil.getTotalDocumentForProfileID(getThreadLocalRequest(),
|
Integer totalProjectForProfile = SessionUtil.getTotalDocumentForProfileID(getThreadLocalRequest(),
|
||||||
theProfileID);
|
theProfileID);
|
||||||
|
|
||||||
|
@ -818,8 +822,8 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
||||||
LOG.info("Access policy for discovering the layers is: " + accessPolicy);
|
LOG.info("Access policy for discovering the layers is: " + accessPolicy);
|
||||||
|
|
||||||
String filesetParentJSONPath = null;
|
String filesetParentJSONPath = null;
|
||||||
|
|
||||||
//(see ticket #24390)
|
// (see ticket #24390)
|
||||||
if (accessPolicy.equals(ACCESS_POLICY.OPEN)) {
|
if (accessPolicy.equals(ACCESS_POLICY.OPEN)) {
|
||||||
// Filtering for ACCESS_POLICY.OPEN from the fileset when the username is not in
|
// Filtering for ACCESS_POLICY.OPEN from the fileset when the username is not in
|
||||||
// session. IAM
|
// session. IAM
|
||||||
|
@ -944,10 +948,10 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
||||||
theProjectDV.setProfileName(ucd.getName());
|
theProjectDV.setProfileName(ucd.getName());
|
||||||
|
|
||||||
TemporalReferenceDV temporalReference = temporalReferenceForProject(theProject);
|
TemporalReferenceDV temporalReference = temporalReferenceForProject(theProject);
|
||||||
|
|
||||||
if (temporalReference == null)
|
if (temporalReference == null)
|
||||||
temporalReference = new TemporalReferenceDV();
|
temporalReference = new TemporalReferenceDV();
|
||||||
|
|
||||||
theProjectDV.setTemporalReference(temporalReference);
|
theProjectDV.setTemporalReference(temporalReference);
|
||||||
|
|
||||||
ProjectView projectView = Geoportal_JSON_Mapper.loadProjectView(theProjectDV, scope, userName);
|
ProjectView projectView = Geoportal_JSON_Mapper.loadProjectView(theProjectDV, scope, userName);
|
||||||
|
@ -1319,7 +1323,7 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
||||||
break;
|
break;
|
||||||
|
|
||||||
Entry<String, Object> entry = entrySetsIt.next();
|
Entry<String, Object> entry = entrySetsIt.next();
|
||||||
documentAsMap.put(entry.getKey(), entry.getValue()!=null?entry.getValue().toString():null);
|
documentAsMap.put(entry.getKey(), entry.getValue() != null ? entry.getValue().toString() : null);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1656,7 +1660,7 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
||||||
}
|
}
|
||||||
|
|
||||||
theResponseString = response.toString();
|
theResponseString = response.toString();
|
||||||
//LOG.trace(theResponseString);
|
// LOG.trace(theResponseString);
|
||||||
|
|
||||||
if (LOG.isDebugEnabled()) {
|
if (LOG.isDebugEnabled()) {
|
||||||
LOG.debug("getWFSResponse is empty? " + theResponseString.isEmpty());
|
LOG.debug("getWFSResponse is empty? " + theResponseString.isEmpty());
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,66 +0,0 @@
|
||||||
//package org.gcube.portlets.user.geoportaldataviewer.server.mongoservice;
|
|
||||||
//
|
|
||||||
//import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.statefulMongoConcessioni;
|
|
||||||
//
|
|
||||||
//import org.gcube.application.geoportal.client.legacy.ConcessioniManagerI;
|
|
||||||
//import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
|
||||||
//import org.slf4j.Logger;
|
|
||||||
//import org.slf4j.LoggerFactory;
|
|
||||||
//
|
|
||||||
//
|
|
||||||
///**
|
|
||||||
// * The Class ConcessioniMongoService.
|
|
||||||
// *
|
|
||||||
// * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
|
||||||
// *
|
|
||||||
// * Sep 23, 2021
|
|
||||||
// */
|
|
||||||
//public class ConcessioniMongoService {
|
|
||||||
//
|
|
||||||
// private static final Logger LOG = LoggerFactory.getLogger(ConcessioniMongoService.class);
|
|
||||||
//
|
|
||||||
// /**
|
|
||||||
// * Instantiates a new concessioni mongo service.
|
|
||||||
// */
|
|
||||||
// protected ConcessioniMongoService() {
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// /**
|
|
||||||
// * Gets the item by id.
|
|
||||||
// *
|
|
||||||
// * @param mongoItemId the mongo item id
|
|
||||||
// * @return the item by id
|
|
||||||
// * @throws Exception the exception
|
|
||||||
// */
|
|
||||||
// protected Concessione getItemById(String mongoItemId) throws Exception {
|
|
||||||
// LOG.info("called getItemById: " + mongoItemId);
|
|
||||||
// ConcessioniManagerI concessioniManager = statefulMongoConcessioni().build();
|
|
||||||
// // Returning item by Id
|
|
||||||
// return concessioniManager.getById(mongoItemId);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// /**
|
|
||||||
// * To concessione.
|
|
||||||
// *
|
|
||||||
// * @param jsonString the json string
|
|
||||||
// * @return the concessione
|
|
||||||
// */
|
|
||||||
// protected Concessione toConcessione(String jsonString) {
|
|
||||||
// LOG.info("toConcessione called");
|
|
||||||
// try {
|
|
||||||
// return org.gcube.application.geoportal.client.utils.Serialization.read(jsonString, Concessione.class);
|
|
||||||
// } catch (Exception e) {
|
|
||||||
// LOG.warn("Error on serializing: ", e);
|
|
||||||
// return null;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// /*
|
|
||||||
// * For testing public Concessione iamClientGetItemBy(HttpServletRequest request,
|
|
||||||
// * String mongoItemId, String clientId, String secret) throws Exception { String
|
|
||||||
// * scope = SessionUtil.getCurrentContext(request, true); return
|
|
||||||
// * iamClientGetItemBy(scope, mongoItemId, clientId, secret); }
|
|
||||||
// */
|
|
||||||
//
|
|
||||||
//}
|
|
|
@ -1,93 +0,0 @@
|
||||||
package org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.accesspolicy;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The Class GeoNACheckAccessPolicy.
|
|
||||||
*
|
|
||||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
|
||||||
*
|
|
||||||
* Sep 9, 2021
|
|
||||||
*/
|
|
||||||
public class GeoNACheckAccessPolicy {
|
|
||||||
|
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(GeoNACheckAccessPolicy.class);
|
|
||||||
/**
|
|
||||||
* The Enum ACCESS_POLICY.
|
|
||||||
*
|
|
||||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
|
||||||
*
|
|
||||||
* Sep 8, 2021
|
|
||||||
*/
|
|
||||||
public static enum ACCESS_POLICY {
|
|
||||||
OPEN, RESTICTED
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if is open access.
|
|
||||||
*
|
|
||||||
* @param policy the policy
|
|
||||||
* @return true, if is open access
|
|
||||||
*/
|
|
||||||
private static boolean isOpenAccess(String policy) {
|
|
||||||
if (policy == null || policy.equalsIgnoreCase(ACCESS_POLICY.OPEN.name())) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if is restricted access.
|
|
||||||
*
|
|
||||||
* @param policy the policy
|
|
||||||
* @return true, if is restricted access
|
|
||||||
*/
|
|
||||||
private static boolean isRestrictedAccess(String policy) {
|
|
||||||
if (policy == null || policy.equalsIgnoreCase(ACCESS_POLICY.RESTICTED.name())) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if is accessible accoding to access policies
|
|
||||||
*
|
|
||||||
* @param policy the policy
|
|
||||||
* @param myLogin the my login
|
|
||||||
* @return true, if is accessible
|
|
||||||
*/
|
|
||||||
public static boolean isAccessible(String policy, String myLogin) {
|
|
||||||
|
|
||||||
boolean bool = isOpenAccess(policy);
|
|
||||||
|
|
||||||
if (bool) {
|
|
||||||
// is open access
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//From here managing is NOT OPEN access
|
|
||||||
|
|
||||||
if (myLogin == null || myLogin.isEmpty()) {
|
|
||||||
// here is not open and the user is not authenticated
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Here the login is not null, so checking if the access to item is RESTICTED
|
|
||||||
bool = isRestrictedAccess(policy);
|
|
||||||
|
|
||||||
if (bool) {
|
|
||||||
// is restricted access
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Here the user is authenticated, but the policy is not managed, so returning
|
|
||||||
// true
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -26,7 +26,6 @@ public class GeoNaSpatialQueryResult implements Serializable {
|
||||||
// Map with couple (mongoId concessione, list of uploaded GNAImages for the
|
// Map with couple (mongoId concessione, list of uploaded GNAImages for the
|
||||||
// concessione)
|
// concessione)
|
||||||
private Map<String, List<PayloadDV>> mapImages = null;
|
private Map<String, List<PayloadDV>> mapImages = null;
|
||||||
// private ProjectDV projectDV;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instantiates a new geo na data object.
|
* Instantiates a new geo na data object.
|
||||||
|
@ -35,15 +34,6 @@ public class GeoNaSpatialQueryResult implements Serializable {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// public void setProjectDV(ProjectDV projectDV) {
|
|
||||||
// this.projectDV = projectDV;
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public ProjectDV getProjectDV() {
|
|
||||||
// return projectDV;
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the features.
|
* Gets the features.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,131 +0,0 @@
|
||||||
package org.gcube.portlets.user.geoportaldataviewer.shared;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject.FilesetDV;
|
|
||||||
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject.PayloadDV;
|
|
||||||
import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.CategoryWrapper;
|
|
||||||
import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.MetaDataProfileBean;
|
|
||||||
import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.MetadataFieldWrapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The Class MetaDataProfileBeanExt.
|
|
||||||
*
|
|
||||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
|
||||||
*
|
|
||||||
* Nov 23, 2022
|
|
||||||
*/
|
|
||||||
public class MetaDataProfileBeanExt extends MetaDataProfileBean implements Cloneable {
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private static final long serialVersionUID = 2518128223147908835L;
|
|
||||||
private List<FilesetDV> listFileset = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Instantiates a new meta data profile bean ext.
|
|
||||||
*/
|
|
||||||
public MetaDataProfileBeanExt() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Instantiates a new meta data profile bean ext.
|
|
||||||
*
|
|
||||||
* @param type the type
|
|
||||||
* @param title the title
|
|
||||||
* @param metadataFields the metadata fields
|
|
||||||
* @param categories the categories
|
|
||||||
*/
|
|
||||||
public MetaDataProfileBeanExt(String type, String title, List<MetadataFieldWrapper> metadataFields,
|
|
||||||
List<CategoryWrapper> categories) {
|
|
||||||
super(type, title, metadataFields, categories);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the list fileset.
|
|
||||||
*
|
|
||||||
* @return the list fileset
|
|
||||||
*/
|
|
||||||
public List<FilesetDV> getListFileset() {
|
|
||||||
if (listFileset == null)
|
|
||||||
listFileset = new ArrayList<FilesetDV>();
|
|
||||||
return listFileset;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the list fileset.
|
|
||||||
*
|
|
||||||
* @param listFileset the new list fileset
|
|
||||||
*/
|
|
||||||
public void setListFileset(List<FilesetDV> listFileset) {
|
|
||||||
this.listFileset = listFileset;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected MetaDataProfileBeanExt clone() throws CloneNotSupportedException {
|
|
||||||
|
|
||||||
MetaDataProfileBeanExt clonedMDPBE = new MetaDataProfileBeanExt();
|
|
||||||
clonedMDPBE.setTitle(this.getTitle());
|
|
||||||
clonedMDPBE.setType(this.getType());
|
|
||||||
ArrayList<FilesetDV> newListFileset = new ArrayList<FilesetDV>();
|
|
||||||
for (FilesetDV filesetDV : this.getListFileset()) {
|
|
||||||
FilesetDV newFileset = new FilesetDV();
|
|
||||||
for (PayloadDV payloadDV : filesetDV.getListPayload()) {
|
|
||||||
PayloadDV newPayloadDV = new PayloadDV();
|
|
||||||
newPayloadDV.setLink(payloadDV.getLink());
|
|
||||||
newPayloadDV.setMimetype(payloadDV.getMimetype());
|
|
||||||
newPayloadDV.setName(payloadDV.getName());
|
|
||||||
newPayloadDV.setStorageID(payloadDV.getStorageID());
|
|
||||||
newFileset.addPayloadDV(newPayloadDV);
|
|
||||||
}
|
|
||||||
|
|
||||||
newListFileset.add(newFileset);
|
|
||||||
}
|
|
||||||
clonedMDPBE.setListFileset(newListFileset);
|
|
||||||
|
|
||||||
ArrayList<MetadataFieldWrapper> newListMetadataFieldWrapper = new ArrayList<MetadataFieldWrapper>();
|
|
||||||
|
|
||||||
for (MetadataFieldWrapper mfw : this.getMetadataFields()) {
|
|
||||||
MetadataFieldWrapper newMfw = new MetadataFieldWrapper();
|
|
||||||
newMfw.setAsGroup(mfw.getAsGroup());
|
|
||||||
newMfw.setAsTag(mfw.getAsTag());
|
|
||||||
newMfw.setCurrentValue(mfw.getCurrentValue());
|
|
||||||
newMfw.setDefaultValue(mfw.getDefaultValue());
|
|
||||||
newMfw.setFieldId(mfw.getFieldId());
|
|
||||||
newMfw.setFieldName(mfw.getFieldName());
|
|
||||||
newMfw.setFieldNameFromCategory(mfw.getFieldNameFromCategory());
|
|
||||||
newMfw.setMandatory(mfw.getMandatory());
|
|
||||||
newMfw.setMaxOccurs(mfw.getMaxOccurs());
|
|
||||||
newMfw.setMultiSelection(mfw.isMultiSelection());
|
|
||||||
newMfw.setNote(mfw.getNote());
|
|
||||||
newMfw.setOwnerCategory(mfw.getOwnerCategory());
|
|
||||||
newMfw.setType(mfw.getType());
|
|
||||||
newMfw.setValidator(mfw.getValidator());
|
|
||||||
newMfw.setVocabulary(mfw.getVocabulary());
|
|
||||||
|
|
||||||
newListMetadataFieldWrapper.add(newMfw);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
clonedMDPBE.setMetadataFields(newListMetadataFieldWrapper);
|
|
||||||
|
|
||||||
return clonedMDPBE;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
StringBuilder builder = new StringBuilder();
|
|
||||||
builder.append("MetaDataProfileBeanExt [getType()=");
|
|
||||||
builder.append(getType());
|
|
||||||
builder.append(", getTitle()=");
|
|
||||||
builder.append(getTitle());
|
|
||||||
builder.append(", getMetadataFields()=");
|
|
||||||
builder.append(getMetadataFields());
|
|
||||||
builder.append("]");
|
|
||||||
return builder.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
package org.gcube.portlets.user.geoportaldataviewer.shared;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.gcube.application.geoportalcommon.shared.geoportal.project.ProjectDV;
|
|
||||||
|
|
||||||
public class ProjectEdit implements Serializable {
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private static final long serialVersionUID = 2885327516680245601L;
|
|
||||||
|
|
||||||
private ProjectDV theProjectDV;
|
|
||||||
|
|
||||||
private List<MetaDataProfileBeanExt> theProfileBeans;
|
|
||||||
|
|
||||||
public ProjectEdit() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public ProjectDV getTheProjectDV() {
|
|
||||||
return theProjectDV;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<MetaDataProfileBeanExt> getTheProfileBeans() {
|
|
||||||
return theProfileBeans;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTheProjectDV(ProjectDV theProjectDV) {
|
|
||||||
this.theProjectDV = theProjectDV;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTheProfileBeans(List<MetaDataProfileBeanExt> theProfileBeans) {
|
|
||||||
this.theProfileBeans = theProfileBeans;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
StringBuilder builder = new StringBuilder();
|
|
||||||
builder.append("ProjectEdit [theProjectDV=");
|
|
||||||
builder.append(theProjectDV);
|
|
||||||
builder.append(", theProfileBeans=");
|
|
||||||
builder.append(theProfileBeans);
|
|
||||||
builder.append("]");
|
|
||||||
return builder.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -36,13 +36,11 @@ import org.gcube.application.geoportalcommon.shared.geoportal.materialization.in
|
||||||
import org.gcube.application.geoportalcommon.shared.geoportal.project.ProjectDV;
|
import org.gcube.application.geoportalcommon.shared.geoportal.project.ProjectDV;
|
||||||
import org.gcube.application.geoportalcommon.shared.geoportal.project.TemporalReferenceDV;
|
import org.gcube.application.geoportalcommon.shared.geoportal.project.TemporalReferenceDV;
|
||||||
import org.gcube.application.geoportalcommon.shared.geoportal.view.ProjectView;
|
import org.gcube.application.geoportalcommon.shared.geoportal.view.ProjectView;
|
||||||
|
import org.gcube.application.geoportaldatamapper.Geoportal_JSON_Mapper;
|
||||||
|
import org.gcube.application.geoportaldatamapper.shared.ProjectEdit;
|
||||||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||||
import org.gcube.common.scope.api.ScopeProvider;
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.server.Geoportal_JSON_Mapper;
|
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.shared.ProjectEdit;
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class GeoportalViewer_Tests.
|
* The Class GeoportalViewer_Tests.
|
||||||
|
|
Loading…
Reference in New Issue