diff --git a/pom.xml b/pom.xml index 73e09fb..a484be3 100644 --- a/pom.xml +++ b/pom.xml @@ -1,10 +1,9 @@ - + - 4.0.0 + 4.0.0 maven-parent org.gcube.tools @@ -64,13 +63,23 @@ com.google.gwt gwt-user - ${gwtVersion} provided com.github.gwtbootstrap gwt-bootstrap + + org.gcube.data.publishing + ckan2zenodo-library + [0.0.1, 1.0.0-SNAPSHOT) + + + ch.qos.logback + logback-classic + 1.0.13 + test + junit junit diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZendoPublisherWidget.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZendoPublisherWidget.java new file mode 100644 index 0000000..90a0855 --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZendoPublisherWidget.java @@ -0,0 +1,36 @@ +package org.gcube.portlets.widgets.ckan2zenodopublisher.client; + +import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.CatalogueItem; + +import com.google.gwt.user.client.Window; +import com.google.gwt.user.client.rpc.AsyncCallback; + +public class CkanToZendoPublisherWidget { + + private final CkanToZenodoPublisherServiceAsync ckanToZenodoService = CkanToZenodoPublisherServiceAsync.Util.getInstance(); + + CkanToZendoPublisherWidget(){ + + } + + + public void publishOnZenodo(CatalogueItem item) { + + ckanToZenodoService.publishOnZenodo(item, new AsyncCallback() { + + @Override + public void onSuccess(String result) { + + Window.alert(result); + + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Error: "+caught); + } + + }); + } + +} diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZenodoPublisherService.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZenodoPublisherService.java index 4c50b72..d28b1aa 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZenodoPublisherService.java +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZenodoPublisherService.java @@ -1,5 +1,7 @@ package org.gcube.portlets.widgets.ckan2zenodopublisher.client; +import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.CatalogueItem; + import com.google.gwt.user.client.rpc.RemoteService; import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; @@ -9,4 +11,6 @@ import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; @RemoteServiceRelativePath("ckantozenodo") public interface CkanToZenodoPublisherService extends RemoteService { String greetServer(String name) throws IllegalArgumentException; + + String publishOnZenodo(CatalogueItem item); } diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZenodoPublisherServiceAsync.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZenodoPublisherServiceAsync.java index f0ddbe7..9d68d87 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZenodoPublisherServiceAsync.java +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZenodoPublisherServiceAsync.java @@ -1,5 +1,7 @@ package org.gcube.portlets.widgets.ckan2zenodopublisher.client; +import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.CatalogueItem; + import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; @@ -34,4 +36,9 @@ public interface CkanToZenodoPublisherServiceAsync // Utility class should not be instantiated } } + + + void publishOnZenodo(CatalogueItem item, AsyncCallback callback); + + } diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/server/CkanToZenodoPublisherServiceImpl.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/server/CkanToZenodoPublisherServiceImpl.java index cd8abb7..0bb73fe 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/server/CkanToZenodoPublisherServiceImpl.java +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/server/CkanToZenodoPublisherServiceImpl.java @@ -1,6 +1,7 @@ package org.gcube.portlets.widgets.ckan2zenodopublisher.server; import org.gcube.portlets.widgets.ckan2zenodopublisher.client.CkanToZenodoPublisherService; +import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.CatalogueItem; import com.google.gwt.user.server.rpc.RemoteServiceServlet; @@ -16,19 +17,11 @@ public class CkanToZenodoPublisherServiceImpl extends RemoteServiceServlet imple return "Hello"; } - - /** - * Escape an html string. Escaping data received from the client helps to - * prevent cross-site script vulnerabilities. - * - * @param html the html string to escape - * @return the escaped string - */ - private String escapeHtml(String html) { - if (html == null) { - return null; - } - return html.replaceAll("&", "&").replaceAll("<", "<").replaceAll( - ">", ">"); + + @Override + public String publishOnZenodo(CatalogueItem item) { + + return "RPC works"; + } } diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/shared/CatalogueItem.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/shared/CatalogueItem.java new file mode 100644 index 0000000..04c9d3c --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/shared/CatalogueItem.java @@ -0,0 +1,71 @@ +package org.gcube.portlets.widgets.ckan2zenodopublisher.shared; + +import java.io.Serializable; + + +/** + * The Class CatalogueItem. + * + * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) + * + * Dec 9, 2019 + */ +public class CatalogueItem implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = 1L; + + + String itemName; + String itemURL; + ITEM_TYPE itemType; + + static enum ITEM_TYPE{DATASET, RESOURCE} + + + public CatalogueItem(String itemName, String itemURL, ITEM_TYPE itemType) { + this.itemName = itemName; + this.itemURL = itemURL; + this.itemType = itemType; + } + + public String getItemName() { + return itemName; + } + + public void setItemName(String itemName) { + this.itemName = itemName; + } + + public String getItemURL() { + return itemURL; + } + + public void setItemURL(String itemURL) { + this.itemURL = itemURL; + } + + public ITEM_TYPE getItemType() { + return itemType; + } + + public void setItemType(ITEM_TYPE itemType) { + this.itemType = itemType; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("CatalogueItem [itemName="); + builder.append(itemName); + builder.append(", itemURL="); + builder.append(itemURL); + builder.append(", itemType="); + builder.append(itemType); + builder.append("]"); + return builder.toString(); + } + +}