From 9370cfa0c544017ae0dcbfe872772071e1e6ae77 Mon Sep 17 00:00:00 2001 From: "fabio.sinibaldi" Date: Fri, 30 Jun 2017 16:06:00 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/spatial-data/sdi-interface@150683 82a268e6-3cf1-43bd-a215-b396298e98cf --- .classpath | 36 ++++++++++ .project | 23 +++++++ .settings/org.eclipse.core.resources.prefs | 6 ++ .settings/org.eclipse.jdt.core.prefs | 5 ++ .settings/org.eclipse.m2e.core.prefs | 4 ++ distro/LICENSE | 1 + distro/README | 65 +++++++++++++++++++ distro/changelog.xml | 5 ++ distro/descriptor.xml | 30 +++++++++ distro/profile.xml | 29 +++++++++ pom.xml | 56 ++++++++++++++++ .../data/sdi/interfaces/Templates.java | 15 +++++ .../data/sdi/model/ServiceConstants.java | 38 +++++++++++ .../metadata/MetadataPublishOptions.java | 28 ++++++++ .../sdi/model/metadata/MetadataReport.java | 7 ++ .../model/metadata/TemplateDescriptor.java | 5 ++ .../model/metadata/TemplateInvocation.java | 19 ++++++ .../metadata/TemplateInvocationBuilder.java | 19 ++++++ .../ThreddsOnlineTemplateInvocation.java | 29 +++++++++ 19 files changed, 420 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 distro/LICENSE create mode 100644 distro/README create mode 100644 distro/changelog.xml create mode 100644 distro/descriptor.xml create mode 100644 distro/profile.xml create mode 100644 pom.xml create mode 100644 src/main/java/org/gcube/spatial/data/sdi/interfaces/Templates.java create mode 100644 src/main/java/org/gcube/spatial/data/sdi/model/ServiceConstants.java create mode 100644 src/main/java/org/gcube/spatial/data/sdi/model/metadata/MetadataPublishOptions.java create mode 100644 src/main/java/org/gcube/spatial/data/sdi/model/metadata/MetadataReport.java create mode 100644 src/main/java/org/gcube/spatial/data/sdi/model/metadata/TemplateDescriptor.java create mode 100644 src/main/java/org/gcube/spatial/data/sdi/model/metadata/TemplateInvocation.java create mode 100644 src/main/java/org/gcube/spatial/data/sdi/model/metadata/TemplateInvocationBuilder.java create mode 100644 src/main/java/org/gcube/spatial/data/sdi/model/metadata/ThreddsOnlineTemplateInvocation.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..fae1a2b --- /dev/null +++ b/.classpath @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..50a4e9d --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + sdi-interface + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..29abf99 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding//src/test/resources=UTF-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..714351a --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/distro/LICENSE b/distro/LICENSE new file mode 100644 index 0000000..2d9616a --- /dev/null +++ b/distro/LICENSE @@ -0,0 +1 @@ +${gcube.license} \ No newline at end of file diff --git a/distro/README b/distro/README new file mode 100644 index 0000000..3a83ad0 --- /dev/null +++ b/distro/README @@ -0,0 +1,65 @@ +The gCube System - ${name} +-------------------------------------------------- + +${description} + + +${gcube.description} + +${gcube.funding} + + +Version +-------------------------------------------------- + +${version} (${buildDate}) + +Please see the file named "changelog.xml" in this directory for the release notes. + + + +Authors +-------------------------------------------------- + +* Fabio Sinibaldi (fabio.sinibaldi-AT-isti.cnr.it) Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" - CNR, Pisa (Italy). + +Maintainers +----------- + +* Fabio Sinibaldi (fabio.sinibaldi-AT-isti.cnr.it) Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" - CNR, Pisa (Italy). + + +Download information +-------------------------------------------------- + +Source code is available from SVN: + ${scm.url} + +Binaries can be downloaded from the gCube website: + ${gcube.website} + +Installation +-------------------------------------------------- + +Installation documentation is available on-line in the gCube Wiki: + ${gcube.wikiRoot}/Tabular_Data_Manager + +Documentation +-------------------------------------------------- + +Documentation is available on-line in the gCube Wiki: + ${gcube.wikiRoot}/SDI_Interface + ${gcube.wikiRoot}/SDI_Interface + + +Support +-------------------------------------------------- + +Bugs and support requests can be reported in the gCube issue tracking tool: + ${gcube.issueTracking} + + +Licensing +-------------------------------------------------- + +This software is licensed under the terms you may find in the file named "LICENSE" in this directory. \ No newline at end of file diff --git a/distro/changelog.xml b/distro/changelog.xml new file mode 100644 index 0000000..1a2e87d --- /dev/null +++ b/distro/changelog.xml @@ -0,0 +1,5 @@ + + + First release of the component + + \ No newline at end of file diff --git a/distro/descriptor.xml b/distro/descriptor.xml new file mode 100644 index 0000000..dc46ade --- /dev/null +++ b/distro/descriptor.xml @@ -0,0 +1,30 @@ + + servicearchive + + tar.gz + + / + + + ${distroDirectory} + / + true + + README + LICENSE + changelog.xml + + 755 + true + + + + + target/${build.finalName}.${project.packaging} + /${artifactId} + + + \ No newline at end of file diff --git a/distro/profile.xml b/distro/profile.xml new file mode 100644 index 0000000..425a9ea --- /dev/null +++ b/distro/profile.xml @@ -0,0 +1,29 @@ + + + + Service + + ${description} + SpatialData + ${artifactId} + 1.0.0 + + + ${description} + ${artifactId} + ${version} + + ${groupId} + ${artifactId} + ${version} + + library + + ${build.finalName}.jar + + + + + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..1e164e1 --- /dev/null +++ b/pom.xml @@ -0,0 +1,56 @@ + + 4.0.0 + + org.gcube.tools + maven-parent + LATEST + + org.gcube.spatial.data + sdi-interface + 1.0.0-SNAPSHOT + SDI Interface + SDI Service interface and model + + + + + org.gcube.distribution + gcube-bom + LATEST + pom + import + + + + + + + + + junit + junit + 4.10 + test + + + + org.eclipse.persistence + org.eclipse.persistence.moxy + 2.6.0 + test + + + + + org.projectlombok + lombok + 1.14.8 + + + org.slf4j + slf4j-api + + + + + \ No newline at end of file diff --git a/src/main/java/org/gcube/spatial/data/sdi/interfaces/Templates.java b/src/main/java/org/gcube/spatial/data/sdi/interfaces/Templates.java new file mode 100644 index 0000000..e6a6d79 --- /dev/null +++ b/src/main/java/org/gcube/spatial/data/sdi/interfaces/Templates.java @@ -0,0 +1,15 @@ +package org.gcube.spatial.data.sdi.interfaces; + +import java.io.File; +import java.util.Set; + +import org.gcube.spatial.data.sdi.model.metadata.MetadataPublishOptions; +import org.gcube.spatial.data.sdi.model.metadata.MetadataReport; +import org.gcube.spatial.data.sdi.model.metadata.TemplateDescriptor; + +public interface Templates { + + public Set getAvailableTemplates(); + public MetadataReport pushMetadata(File toPublish); + public MetadataReport pushMetadata(File toPublish,MetadataPublishOptions options); +} diff --git a/src/main/java/org/gcube/spatial/data/sdi/model/ServiceConstants.java b/src/main/java/org/gcube/spatial/data/sdi/model/ServiceConstants.java new file mode 100644 index 0000000..8899139 --- /dev/null +++ b/src/main/java/org/gcube/spatial/data/sdi/model/ServiceConstants.java @@ -0,0 +1,38 @@ +package org.gcube.spatial.data.sdi.model; + +public class ServiceConstants { + + public static final String APPLICATION="SDI-Service"; + public static final String INTERFACE="SDI"; + + public static final class Metadata{ + public static final String INTERFACE="Metadata"; + public static final String LIST_METHOD="list"; + public static final String VALIDATE_PARAMETER="validate"; + public static final String PUBLIC_PARAMETER="public"; + public static final String UPLOADED_FILE_PARAMETER="theMeta"; + public static final String METADATA_ENRICHMENTS_PARAMETER="metadataEnrichments"; + // Defaults + + public static final Boolean DEFAULT_VALIDATE=true; + public static final Boolean DEFAULT_PUBLIC=false; + public static final String DEFAULT_CATEGORY="Dataset"; + public static final String DEFAULT_STYLESHEET="_none_"; + + } + + + public static final class GeoNetwork{ + public static final String INTERFACE="GeoNetwork"; + public static final String CONFIGURATION_PATH="configuration"; + public static final String GROUPS_PATH="groups"; + + } + + public static final class GeoServer{ + public static final String INTERFACE="GeoServer"; + public static final String HOST_PARAM="host"; + } + + +} diff --git a/src/main/java/org/gcube/spatial/data/sdi/model/metadata/MetadataPublishOptions.java b/src/main/java/org/gcube/spatial/data/sdi/model/metadata/MetadataPublishOptions.java new file mode 100644 index 0000000..304ae57 --- /dev/null +++ b/src/main/java/org/gcube/spatial/data/sdi/model/metadata/MetadataPublishOptions.java @@ -0,0 +1,28 @@ +package org.gcube.spatial.data.sdi.model.metadata; + +import java.util.HashSet; +import java.util.Set; + +import org.gcube.spatial.data.sdi.model.ServiceConstants; +import org.gcube.spatial.data.sdi.model.ServiceConstants.Metadata; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@ToString +public class MetadataPublishOptions { + + private boolean validate=ServiceConstants.Metadata.DEFAULT_VALIDATE; + private boolean makePublic=ServiceConstants.Metadata.DEFAULT_PUBLIC; + + private String geonetworkCategory=ServiceConstants.Metadata.DEFAULT_CATEGORY; + private String geonetworkStyleSheet=ServiceConstants.Metadata.DEFAULT_STYLESHEET; + private Set templateInvocations=new HashSet<>(); +} diff --git a/src/main/java/org/gcube/spatial/data/sdi/model/metadata/MetadataReport.java b/src/main/java/org/gcube/spatial/data/sdi/model/metadata/MetadataReport.java new file mode 100644 index 0000000..5992ddc --- /dev/null +++ b/src/main/java/org/gcube/spatial/data/sdi/model/metadata/MetadataReport.java @@ -0,0 +1,7 @@ +package org.gcube.spatial.data.sdi.model.metadata; + +public class MetadataReport { + + + +} diff --git a/src/main/java/org/gcube/spatial/data/sdi/model/metadata/TemplateDescriptor.java b/src/main/java/org/gcube/spatial/data/sdi/model/metadata/TemplateDescriptor.java new file mode 100644 index 0000000..358a13b --- /dev/null +++ b/src/main/java/org/gcube/spatial/data/sdi/model/metadata/TemplateDescriptor.java @@ -0,0 +1,5 @@ +package org.gcube.spatial.data.sdi.model.metadata; + +public class TemplateDescriptor { + +} diff --git a/src/main/java/org/gcube/spatial/data/sdi/model/metadata/TemplateInvocation.java b/src/main/java/org/gcube/spatial/data/sdi/model/metadata/TemplateInvocation.java new file mode 100644 index 0000000..7dd4385 --- /dev/null +++ b/src/main/java/org/gcube/spatial/data/sdi/model/metadata/TemplateInvocation.java @@ -0,0 +1,19 @@ +package org.gcube.spatial.data.sdi.model.metadata; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlSeeAlso; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode +@XmlRootElement +@XmlAccessorType(XmlAccessType.NONE) +@XmlSeeAlso({ThreddsOnlineTemplateInvocation.class}) +public abstract class TemplateInvocation { + + private String toInvokeTemplateID; +} diff --git a/src/main/java/org/gcube/spatial/data/sdi/model/metadata/TemplateInvocationBuilder.java b/src/main/java/org/gcube/spatial/data/sdi/model/metadata/TemplateInvocationBuilder.java new file mode 100644 index 0000000..b85ca2e --- /dev/null +++ b/src/main/java/org/gcube/spatial/data/sdi/model/metadata/TemplateInvocationBuilder.java @@ -0,0 +1,19 @@ +package org.gcube.spatial.data.sdi.model.metadata; + +import java.util.HashSet; +import java.util.Set; + +public class TemplateInvocationBuilder { + + + private Set invocations=new HashSet(); + + + public TemplateInvocationBuilder threddsOnlineResources(String hostname, String filename, String catalog, String gisViewerLink){ + invocations.add(new ThreddsOnlineTemplateInvocation(hostname,filename,catalog,gisViewerLink)); + return this; + } + + +} + diff --git a/src/main/java/org/gcube/spatial/data/sdi/model/metadata/ThreddsOnlineTemplateInvocation.java b/src/main/java/org/gcube/spatial/data/sdi/model/metadata/ThreddsOnlineTemplateInvocation.java new file mode 100644 index 0000000..880b526 --- /dev/null +++ b/src/main/java/org/gcube/spatial/data/sdi/model/metadata/ThreddsOnlineTemplateInvocation.java @@ -0,0 +1,29 @@ +package org.gcube.spatial.data.sdi.model.metadata; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@XmlRootElement +@XmlAccessorType(XmlAccessType.NONE) +public class ThreddsOnlineTemplateInvocation extends TemplateInvocation{ + + @XmlElement + private String hostname; + @XmlElement + private String filename; + @XmlElement + private String catalog; + @XmlElement + private String gisViewerLink; +}