Testing RPC call

This commit is contained in:
Francesco Mangiacrapa 2019-12-09 11:56:04 +01:00
parent a229f29e44
commit 7515bb7d2a
6 changed files with 140 additions and 20 deletions

21
pom.xml
View File

@ -1,10 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>maven-parent</artifactId>
<groupId>org.gcube.tools</groupId>
@ -64,13 +63,23 @@
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<version>${gwtVersion}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.gwtbootstrap</groupId>
<artifactId>gwt-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>org.gcube.data.publishing</groupId>
<artifactId>ckan2zenodo-library</artifactId>
<version>[0.0.1, 1.0.0-SNAPSHOT)</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.13</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>

View File

@ -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<String>() {
@Override
public void onSuccess(String result) {
Window.alert(result);
}
@Override
public void onFailure(Throwable caught) {
Window.alert("Error: "+caught);
}
});
}
}

View File

@ -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);
}

View File

@ -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<String> callback);
}

View File

@ -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("&", "&amp;").replaceAll("<", "&lt;").replaceAll(
">", "&gt;");
@Override
public String publishOnZenodo(CatalogueItem item) {
return "RPC works";
}
}

View File

@ -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();
}
}