diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..9822435 --- /dev/null +++ b/.classpath @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..3c75535 --- /dev/null +++ b/.project @@ -0,0 +1,42 @@ + + + gcubedatacatalogue-metadata-discovery + + + + + + org.eclipse.wst.jsdt.core.javascriptValidator + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + + diff --git a/.settings/.jsdtscope b/.settings/.jsdtscope new file mode 100644 index 0000000..b72a6a4 --- /dev/null +++ b/.settings/.jsdtscope @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/.settings/com.google.appengine.eclipse.core.prefs b/.settings/com.google.appengine.eclipse.core.prefs new file mode 100644 index 0000000..82c36af --- /dev/null +++ b/.settings/com.google.appengine.eclipse.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +filesCopiedToWebInfLib= 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..443e085 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.7 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/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component new file mode 100644 index 0000000..2a4c682 --- /dev/null +++ b/.settings/org.eclipse.wst.common.component @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..0dd1fe7 --- /dev/null +++ b/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.container b/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 0000000..3bd5d0a --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.name b/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 0000000..05bd71b --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/.settings/org.eclipse.wst.validation.prefs b/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 0000000..04cad8c --- /dev/null +++ b/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,2 @@ +disabled=06target +eclipse.preferences.version=1 diff --git a/CkanMetadatas.xml b/CkanMetadatas.xml new file mode 100644 index 0000000..3ee6f00 --- /dev/null +++ b/CkanMetadatas.xml @@ -0,0 +1,33 @@ + + + + Name + true + false + default value + shown as suggestions in the insert/update metadata form of CKAN + + field1 + field2 + field3 + + + a regular expression for validating values + + + + Accessibility + true + false + virtual/public + shown as suggestions in the insert metadata form of CKAN + + virtual/public + virtual/private + transactional + + + a regular expression for validating values + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..6e187dd --- /dev/null +++ b/pom.xml @@ -0,0 +1,219 @@ + + + + + maven-parent + org.gcube.tools + 1.0.0 + + + + 4.0.0 + org.gcube.data-catalogue + gcubedatacatalogue-metadata-discovery + jar + 0.1.0-SNAPSHOT + The gCube data catalogue metadata discovery library + The gCube data catalogue metadata discovery library + + https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/${project.artifactId} + + + + + Francesco Mangiacrapa + francesco.mangiacrapa@isti.cnr.it + CNR Pisa, Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" + + architect + developer + + + + + + + + + org.gcube.distribution + maven-bom + LATEST + pom + import + + + + + + ${project.basedir}/distro + ${project.build.directory}/${project.build.finalName} + distro + UTF-8 + UTF-8 + + 1.7 + 1.7 + + + + + + com.sun.xml.bind + jaxb-core + 2.2.11 + compile + + + + com.sun.xml.bind + jaxb-impl + 2.2.11 + compile + + + + + log4j + log4j + compile + + + org.slf4j + slf4j-log4j12 + compile + + + org.slf4j + slf4j-api + compile + + + + + junit + junit + 4.8.1 + test + + + + + + + ${webappDirectory}/WEB-INF/classes + + + src/main/java + + **/*.* + + + + + + + maven-compiler-plugin + + ${maven.compiler.source} + ${maven.compiler.target} + + + + + org.apache.maven.plugins + maven-jar-plugin + 2.2 + + + + test-jar + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.16 + + true + + + + org.apache.maven.plugins + maven-resources-plugin + 2.5 + + + copy-profile + install + + copy-resources + + + target + + + ${distroDirectory} + true + + profile.xml + + + + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 2.2 + + + ${distroDirectory}/descriptor.xml + + + + fully.qualified.MainClass + + + + + + servicearchive + install + + single + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/gcube/datacatalogue/metadatadiscovery/DataCalogueDiscovery.java b/src/main/java/org/gcube/datacatalogue/metadatadiscovery/DataCalogueDiscovery.java new file mode 100644 index 0000000..20a1576 --- /dev/null +++ b/src/main/java/org/gcube/datacatalogue/metadatadiscovery/DataCalogueDiscovery.java @@ -0,0 +1,10 @@ +package org.gcube.datacatalogue.metadatadiscovery; + + + +/** + * Entry point classes define onModuleLoad(). + */ +public class DataCalogueDiscovery { + +} diff --git a/src/main/java/org/gcube/datacatalogue/metadatadiscovery/MainJaxb.java b/src/main/java/org/gcube/datacatalogue/metadatadiscovery/MainJaxb.java new file mode 100644 index 0000000..b0933ae --- /dev/null +++ b/src/main/java/org/gcube/datacatalogue/metadatadiscovery/MainJaxb.java @@ -0,0 +1,104 @@ +/** + * + */ +package org.gcube.datacatalogue.metadatadiscovery; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import javax.xml.bind.Unmarshaller; + + +/** + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it + * May 27, 2016 + */ +public class MainJaxb { + + static MetadataField ckanMetadata; + static MetadataFormat metadatas; + static String tmpFileXML = "." + File.separator + "CkanMetadatas.xml"; + + public static void main(String[] args) { + + metadatas = new MetadataFormat(); + + ckanMetadata = new MetadataField(); + ckanMetadata.setFieldName("Name"); + ckanMetadata.setMandatory(true); + ckanMetadata.setDefaulValue("default value"); + List vocabulary = new ArrayList(); + vocabulary.add("field1"); + vocabulary.add("field2"); + vocabulary.add("field3"); + MetadataVocabulary cvc = new MetadataVocabulary(vocabulary); + ckanMetadata.setVocabulary(cvc); + ckanMetadata.setNote("shown as suggestions in the insert/update metadata form of CKAN"); + MetadataValidator validator = new MetadataValidator("a regular expression for validating values"); + ckanMetadata.setValidator(validator); + metadatas.addMetadata(ckanMetadata); + + ckanMetadata = new MetadataField(); + ckanMetadata.setFieldName("Accessibility"); + ckanMetadata.setMandatory(true); + ckanMetadata.setDefaulValue("virtual/public"); + List vocabulary2 = new ArrayList(); + vocabulary2.add("virtual/public"); + vocabulary2.add("virtual/private"); + vocabulary2.add("transactional"); + MetadataVocabulary cvc2 = new MetadataVocabulary(vocabulary2); + ckanMetadata.setVocabulary(cvc2); + ckanMetadata.setNote("shown as suggestions in the insert metadata form of CKAN"); + MetadataValidator validator2 = new MetadataValidator("a regular expression for validating values"); + ckanMetadata.setValidator(validator2); + + metadatas.addMetadata(ckanMetadata); + + try { + + marshalingExample(); + unMarshalingExample(); + } + catch (JAXBException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + + private static void marshalingExample() throws JAXBException + { + JAXBContext jaxbContext = JAXBContext.newInstance(MetadataFormat.class); + Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); + + jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + + //Marshal the employees list in console +// jaxbMarshaller.marshal(employees, System.out); + + //Marshal the employees list in file + jaxbMarshaller.marshal(metadatas, new File(tmpFileXML)); + } + + + private static void unMarshalingExample() throws JAXBException + { + JAXBContext jaxbContext = JAXBContext.newInstance(MetadataFormat.class); + Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); + + //We had written this file in marshalling example + MetadataFormat mtds = (MetadataFormat) jaxbUnmarshaller.unmarshal(new File(tmpFileXML)); + + for(MetadataField mtd : mtds.getMetadataFields()) + { + System.out.println(mtd); + } + } +} + + diff --git a/src/main/java/org/gcube/datacatalogue/metadatadiscovery/MetadataField.java b/src/main/java/org/gcube/datacatalogue/metadatadiscovery/MetadataField.java new file mode 100644 index 0000000..62fb0e3 --- /dev/null +++ b/src/main/java/org/gcube/datacatalogue/metadatadiscovery/MetadataField.java @@ -0,0 +1,217 @@ +/** + * + */ +package org.gcube.datacatalogue.metadatadiscovery; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + + +/** + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it + * May 27, 2016 + */ +@XmlRootElement(name="metadatafield") +@XmlAccessorType(XmlAccessType.FIELD) +public class MetadataField { + + private String fieldName; + private Boolean mandatory = false; + private Boolean isBoolean = false; + private String defaulValue; + private String note; + + //It's the list of eligible values; + @XmlElement(name = "vocabulary") + private MetadataVocabulary vocabulary; + + @XmlElement(name = "validator") + private MetadataValidator validator; + + /** + * + */ + public MetadataField() { + } + + + /** + * @param fieldName + * @param mandatory + * @param isBoolean + * @param defaulValue + * @param note + * @param vocabulary + * @param validator + */ + public MetadataField( + String fieldName, Boolean mandatory, Boolean isBoolean, + String defaulValue, String note, MetadataVocabulary vocabulary, + MetadataValidator validator) { + + this.fieldName = fieldName; + this.mandatory = mandatory; + this.isBoolean = isBoolean; + this.defaulValue = defaulValue; + this.note = note; + this.vocabulary = vocabulary; + this.validator = validator; + } + + + /** + * @return the fieldName + */ + public String getFieldName() { + + return fieldName; + } + + + /** + * @return the mandatory + */ + public Boolean getMandatory() { + + return mandatory; + } + + + /** + * @return the isBoolean + */ + public Boolean isBoolean() { + + return isBoolean; + } + + + /** + * @return the defaulValue + */ + public String getDefaulValue() { + + return defaulValue; + } + + + /** + * @return the note + */ + public String getNote() { + + return note; + } + + + /** + * @return the vocabulary + */ + public MetadataVocabulary getVocabulary() { + + return vocabulary; + } + + + /** + * @return the validator + */ + public MetadataValidator getValidator() { + + return validator; + } + + + /** + * @param fieldName the fieldName to set + */ + public void setFieldName(String fieldName) { + + this.fieldName = fieldName; + } + + + /** + * @param mandatory the mandatory to set + */ + public void setMandatory(Boolean mandatory) { + + this.mandatory = mandatory; + } + + + /** + * @param isBoolean the isBoolean to set + */ + public void setIsBoolean(Boolean isBoolean) { + + this.isBoolean = isBoolean; + } + + + /** + * @param defaulValue the defaulValue to set + */ + public void setDefaulValue(String defaulValue) { + + this.defaulValue = defaulValue; + } + + + /** + * @param note the note to set + */ + public void setNote(String note) { + + this.note = note; + } + + + /** + * @param vocabulary the vocabulary to set + */ + public void setVocabulary(MetadataVocabulary vocabulary) { + + this.vocabulary = vocabulary; + } + + + /** + * @param validator the validator to set + */ + public void setValidator(MetadataValidator validator) { + + this.validator = validator; + } + + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + + StringBuilder builder = new StringBuilder(); + builder.append("CkanMetadata [fieldName="); + builder.append(fieldName); + builder.append(", mandatory="); + builder.append(mandatory); + builder.append(", isBoolean="); + builder.append(isBoolean); + builder.append(", defaulValue="); + builder.append(defaulValue); + builder.append(", note="); + builder.append(note); + builder.append(", vocabulary="); + builder.append(vocabulary); + builder.append(", validator="); + builder.append(validator); + builder.append("]"); + return builder.toString(); + } + + +} diff --git a/src/main/java/org/gcube/datacatalogue/metadatadiscovery/MetadataFormat.java b/src/main/java/org/gcube/datacatalogue/metadatadiscovery/MetadataFormat.java new file mode 100644 index 0000000..fec1e9f --- /dev/null +++ b/src/main/java/org/gcube/datacatalogue/metadatadiscovery/MetadataFormat.java @@ -0,0 +1,84 @@ +/** + * + */ +package org.gcube.datacatalogue.metadatadiscovery; + +import java.util.ArrayList; +import java.util.List; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + + +/** + * The Class MetadataFormat. + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it + * May 27, 2016 + */ +@XmlRootElement(name="metadataformat") +@XmlAccessorType(XmlAccessType.FIELD) +public class MetadataFormat { + + @XmlElement(name = "metadatafield") + private List metadataFields; + + + /** + * @return the metadataFields + */ + public List getMetadataFields() { + + return metadataFields; + } + + + /** + * @param metadataFields the metadataFields to set + */ + public void setMetadataFields(List metadataFields) { + + this.metadataFields = metadataFields; + } + + /** + * Sets the metadatas. + * + * @param metadatas the metadatas to set + */ + public void setMetadatas(List metadatas) { + + this.metadataFields = metadatas; + } + + /** + * Adds the metadata. + * + * @param metadata the metadata + */ + public void addMetadata(MetadataField metadata){ + if(this.metadataFields==null) + this.metadataFields = new ArrayList(); + + this.metadataFields.add(metadata); + } + + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + + StringBuilder builder = new StringBuilder(); + builder.append("MetadataFormat [metadataFields="); + builder.append(metadataFields); + builder.append("]"); + return builder.toString(); + } + + + +} diff --git a/src/main/java/org/gcube/datacatalogue/metadatadiscovery/MetadataValidator.java b/src/main/java/org/gcube/datacatalogue/metadatadiscovery/MetadataValidator.java new file mode 100644 index 0000000..28f32cf --- /dev/null +++ b/src/main/java/org/gcube/datacatalogue/metadatadiscovery/MetadataValidator.java @@ -0,0 +1,74 @@ +/** + * + */ +package org.gcube.datacatalogue.metadatadiscovery; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlRootElement; + + +/** + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it + * May 27, 2016 + */ +@XmlRootElement(name = "metadatavalidator") +@XmlAccessorType (XmlAccessType.FIELD) +public class MetadataValidator { + + private String regularExpression; + + + /** + * + */ + public MetadataValidator() { + + super(); + } + + + /** + * @param regularExpression + */ + public MetadataValidator(String regularExpression) { + + super(); + this.regularExpression = regularExpression; + } + + + /** + * @return the regularExpression + */ + public String getRegularExpression() { + + return regularExpression; + } + + + /** + * @param regularExpression the regularExpression to set + */ + public void setRegularExpression(String regularExpression) { + + this.regularExpression = regularExpression; + } + + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + + StringBuilder builder = new StringBuilder(); + builder.append("MetadataValidator [regularExpression="); + builder.append(regularExpression); + builder.append("]"); + return builder.toString(); + } + + +} diff --git a/src/main/java/org/gcube/datacatalogue/metadatadiscovery/MetadataVocabulary.java b/src/main/java/org/gcube/datacatalogue/metadatadiscovery/MetadataVocabulary.java new file mode 100644 index 0000000..f390330 --- /dev/null +++ b/src/main/java/org/gcube/datacatalogue/metadatadiscovery/MetadataVocabulary.java @@ -0,0 +1,83 @@ +/** + * + */ +package org.gcube.datacatalogue.metadatadiscovery; + +import java.util.List; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlRootElement; + + +/** + * The Class MetadataVocabulary. + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it + * May 27, 2016 + */ +@XmlRootElement(name = "metadatavocabulary") +@XmlAccessorType (XmlAccessType.FIELD) +public class MetadataVocabulary { + + private List vocabularyField; + + /** + * Instantiates a new metadata vocabulary. + */ + public MetadataVocabulary() { + + super(); + } + + + /** + * Instantiates a new metadata vocabulary. + * + * @param vocabularyFields the vocabulary fields + */ + public MetadataVocabulary(List vocabularyFields) { + + super(); + this.vocabularyField = vocabularyFields; + } + + + + /** + * Gets the vocabulary fields. + * + * @return the vocabularyField + */ + public List getVocabularyFields() { + + return vocabularyField; + } + + + + /** + * Sets the vocabulary field. + * + * @param vocabularyField the vocabularyField to set + */ + public void setVocabularyField(List vocabularyField) { + + this.vocabularyField = vocabularyField; + } + + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + + StringBuilder builder = new StringBuilder(); + builder.append("MetadataVocabulary [vocabularyField="); + builder.append(vocabularyField); + builder.append("]"); + return builder.toString(); + } + +} diff --git a/src/main/resources/org/gcube/datacatalogue/metadatadiscovery/DataCalogueDiscovery.gwt.xml b/src/main/resources/org/gcube/datacatalogue/metadatadiscovery/DataCalogueDiscovery.gwt.xml new file mode 100644 index 0000000..a1a92b0 --- /dev/null +++ b/src/main/resources/org/gcube/datacatalogue/metadatadiscovery/DataCalogueDiscovery.gwt.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/org/gcube/datacatalogue/metadatadiscovery/client/Messages_fr.properties b/src/main/resources/org/gcube/datacatalogue/metadatadiscovery/client/Messages_fr.properties new file mode 100644 index 0000000..b4a7627 --- /dev/null +++ b/src/main/resources/org/gcube/datacatalogue/metadatadiscovery/client/Messages_fr.properties @@ -0,0 +1,2 @@ +sendButton = Envoyer +nameField = Entrez votre nom \ No newline at end of file diff --git a/src/main/webapp/DataCalogueDiscovery.css b/src/main/webapp/DataCalogueDiscovery.css new file mode 100644 index 0000000..7aca7ac --- /dev/null +++ b/src/main/webapp/DataCalogueDiscovery.css @@ -0,0 +1,34 @@ +/** Add css rules here for your application. */ + + +/** Example rules used by the template application (remove for your app) */ +h1 { + font-size: 2em; + font-weight: bold; + color: #777777; + margin: 40px 0px 70px; + text-align: center; +} + +.sendButton { + display: block; + font-size: 16pt; +} + +/** Most GWT widgets already have a style name defined */ +.gwt-DialogBox { + width: 400px; +} + +.dialogVPanel { + margin: 5px; +} + +.serverResponseLabelError { + color: red; +} + +/** Set ids using widget.getElement().setId("idOfElement") */ +#closeButton { + margin: 15px 6px 6px; +} diff --git a/src/main/webapp/DataCalogueDiscovery.html b/src/main/webapp/DataCalogueDiscovery.html new file mode 100644 index 0000000..7c20cdd --- /dev/null +++ b/src/main/webapp/DataCalogueDiscovery.html @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + Web Application Starter Project + + + + + + + + + + + + + + + + + + + + + + +

Web Application Starter Project

+ + + + + + + + + + + + +
Please enter your name:
+ + diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..3ff107e --- /dev/null +++ b/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,24 @@ + + + + + + + + greetServlet + org.gcube.datacatalogue.metadatadiscovery.server.GreetingServiceImpl + + + + greetServlet + /DataCalogueDiscovery/greet + + + + + DataCalogueDiscovery.html + + +