ref 11720: DataMiner - Update to StorageHUB
https://support.d4science.org/issues/11720 Updated to StorageHub git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/data-miner-manager@171792 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
3458a318c5
commit
b07212e356
|
@ -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/data-miner-manager-1.8.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
|
<classpathentry kind="src" output="target/data-miner-manager-1.9.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/data-miner-manager-1.8.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
|
<classpathentry excluding="**" kind="src" output="target/data-miner-manager-1.9.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>
|
||||||
|
@ -34,5 +34,5 @@
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||||
<classpathentry kind="output" path="target/data-miner-manager-1.8.0-SNAPSHOT/WEB-INF/classes"/>
|
<classpathentry kind="output" path="target/data-miner-manager-1.9.0-SNAPSHOT/WEB-INF/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -1,52 +1,49 @@
|
||||||
<ReleaseNotes>
|
<ReleaseNotes>
|
||||||
<Changeset component="${groupId}.${artifactId}.1-8-0"
|
<Changeset component="${groupId}.${artifactId}.1-9-0" date="2018-10-01">
|
||||||
date="2018-07-01">
|
<Change>Updated download item to support StorageHub[ticket #11720]
|
||||||
<Change>Updated to new WorkspaceExplorer widget that support
|
</Change>
|
||||||
StorageHUB[ticket #11721]</Change>
|
|
||||||
</Changeset>
|
</Changeset>
|
||||||
<Changeset component="${groupId}.${artifactId}.1-7-0"
|
<Changeset component="${groupId}.${artifactId}.1-8-0" date="2018-07-01">
|
||||||
date="2018-06-01">
|
<Change>Updated to new WorkspaceExplorer widget that support
|
||||||
|
StorageHUB[ticket #11721]
|
||||||
|
</Change>
|
||||||
|
</Changeset>
|
||||||
|
<Changeset component="${groupId}.${artifactId}.1-7-0" date="2018-06-01">
|
||||||
<Change>Integrated DataMiner CL for simplify integration with new
|
<Change>Integrated DataMiner CL for simplify integration with new
|
||||||
StorageHub[ticket #11720]
|
StorageHub[ticket #11720]
|
||||||
</Change>
|
</Change>
|
||||||
<Change>Added refresh button in operators panel[ticket #11741]
|
<Change>Added refresh button in operators panel[ticket #11741]
|
||||||
</Change>
|
</Change>
|
||||||
<Change>Added hyperlink for log that contains http reference[ticket
|
<Change>Added hyperlink for log that contains http reference[ticket
|
||||||
#11529]</Change>
|
#11529]
|
||||||
|
</Change>
|
||||||
</Changeset>
|
</Changeset>
|
||||||
<Changeset component="${groupId}.${artifactId}.1-6-0"
|
<Changeset component="${groupId}.${artifactId}.1-6-0" date="2016-11-09">
|
||||||
date="2016-11-09">
|
|
||||||
<Change>Added NetCDF files support</Change>
|
<Change>Added NetCDF files support</Change>
|
||||||
<Change>Added [TEXTAREA] string support</Change>
|
<Change>Added [TEXTAREA] string support</Change>
|
||||||
</Changeset>
|
</Changeset>
|
||||||
<Changeset component="${groupId}.${artifactId}.1-5-0"
|
<Changeset component="${groupId}.${artifactId}.1-5-0" date="2016-06-12">
|
||||||
date="2016-06-12">
|
|
||||||
<Change>Support Java 8 compatibility [ticket #8471]</Change>
|
<Change>Support Java 8 compatibility [ticket #8471]</Change>
|
||||||
</Changeset>
|
</Changeset>
|
||||||
<Changeset component="${groupId}.${artifactId}.1-4-0"
|
<Changeset component="${groupId}.${artifactId}.1-4-0" date="2016-02-15">
|
||||||
date="2016-02-15">
|
|
||||||
<Change>Fixed load balancing [ticket #7576]</Change>
|
<Change>Fixed load balancing [ticket #7576]</Change>
|
||||||
</Changeset>
|
</Changeset>
|
||||||
<Changeset component="${groupId}.${artifactId}.1-3-0"
|
<Changeset component="${groupId}.${artifactId}.1-3-0" date="2016-02-15">
|
||||||
date="2016-02-15">
|
|
||||||
<Change>Updated PortalContext [ticket #6278]</Change>
|
<Change>Updated PortalContext [ticket #6278]</Change>
|
||||||
<Change>Added encoded parameters in equivalent http request [ticket
|
<Change>Added encoded parameters in equivalent http request [ticket
|
||||||
#7167]
|
#7167]
|
||||||
</Change>
|
</Change>
|
||||||
</Changeset>
|
</Changeset>
|
||||||
<Changeset component="${groupId}.${artifactId}.1-2-0"
|
<Changeset component="${groupId}.${artifactId}.1-2-0" date="2016-12-01">
|
||||||
date="2016-12-01">
|
|
||||||
<Change>Updated Output support</Change>
|
<Change>Updated Output support</Change>
|
||||||
<Change>Added PortalContext</Change>
|
<Change>Added PortalContext</Change>
|
||||||
</Changeset>
|
</Changeset>
|
||||||
<Changeset component="${groupId}.${artifactId}.1-1-0"
|
<Changeset component="${groupId}.${artifactId}.1-1-0" date="2016-10-01">
|
||||||
date="2016-10-01">
|
|
||||||
<Change>Updated to Auth 2.0</Change>
|
<Change>Updated to Auth 2.0</Change>
|
||||||
<Change>Added Spatial data support [Ticket #4172]</Change>
|
<Change>Added Spatial data support [Ticket #4172]</Change>
|
||||||
<Change>Added Temporal data support [Ticket #4172]</Change>
|
<Change>Added Temporal data support [Ticket #4172]</Change>
|
||||||
</Changeset>
|
</Changeset>
|
||||||
<Changeset component="${groupId}.${artifactId}.1-0-0"
|
<Changeset component="${groupId}.${artifactId}.1-0-0" date="2016-07-01">
|
||||||
date="2016-07-01">
|
|
||||||
<Change>First release</Change>
|
<Change>First release</Change>
|
||||||
</Changeset>
|
</Changeset>
|
||||||
</ReleaseNotes>
|
</ReleaseNotes>
|
2
pom.xml
2
pom.xml
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
<groupId>org.gcube.portlets.user</groupId>
|
<groupId>org.gcube.portlets.user</groupId>
|
||||||
<artifactId>data-miner-manager</artifactId>
|
<artifactId>data-miner-manager</artifactId>
|
||||||
<version>1.8.0-SNAPSHOT</version>
|
<version>1.9.0-SNAPSHOT</version>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
|
|
||||||
<name>data-miner-manager</name>
|
<name>data-miner-manager</name>
|
||||||
|
|
|
@ -5,6 +5,7 @@ import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.dataminermanagercl.shared.workspace.ItemDescription;
|
||||||
import org.gcube.portal.clientcontext.client.GCubeClientContext;
|
import org.gcube.portal.clientcontext.client.GCubeClientContext;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.DataMinerManager;
|
import org.gcube.portlets.user.dataminermanager.client.DataMinerManager;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.common.EventBusProvider;
|
import org.gcube.portlets.user.dataminermanager.client.common.EventBusProvider;
|
||||||
|
@ -14,14 +15,10 @@ import org.gcube.portlets.user.dataminermanager.client.events.DataMinerWorkAreaE
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.DeleteItemRequestEvent;
|
import org.gcube.portlets.user.dataminermanager.client.events.DeleteItemRequestEvent;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.RefreshDataMinerWorkAreaEvent;
|
import org.gcube.portlets.user.dataminermanager.client.events.RefreshDataMinerWorkAreaEvent;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.ResubmitComputationExecutionRequestEvent;
|
import org.gcube.portlets.user.dataminermanager.client.events.ResubmitComputationExecutionRequestEvent;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.SessionExpiredEvent;
|
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.UIStateEvent;
|
import org.gcube.portlets.user.dataminermanager.client.events.UIStateEvent;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.rpc.DataMinerPortletServiceAsync;
|
|
||||||
import org.gcube.portlets.user.dataminermanager.client.type.DataMinerWorkAreaElementType;
|
import org.gcube.portlets.user.dataminermanager.client.type.DataMinerWorkAreaElementType;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.util.UtilsGXT3;
|
import org.gcube.portlets.user.dataminermanager.client.util.UtilsGXT3;
|
||||||
import org.gcube.portlets.user.dataminermanager.shared.Constants;
|
import org.gcube.portlets.user.dataminermanager.shared.Constants;
|
||||||
import org.gcube.portlets.user.dataminermanager.shared.exception.SessionExpiredServiceException;
|
|
||||||
import org.gcube.data.analysis.dataminermanagercl.shared.workspace.ItemDescription;
|
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener;
|
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener;
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
|
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload;
|
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload;
|
||||||
|
@ -35,8 +32,8 @@ import com.allen_sauer.gwt.log.client.Log;
|
||||||
import com.google.gwt.core.client.GWT;
|
import com.google.gwt.core.client.GWT;
|
||||||
import com.google.gwt.event.logical.shared.ResizeEvent;
|
import com.google.gwt.event.logical.shared.ResizeEvent;
|
||||||
import com.google.gwt.event.logical.shared.ResizeHandler;
|
import com.google.gwt.event.logical.shared.ResizeHandler;
|
||||||
|
import com.google.gwt.http.client.URL;
|
||||||
import com.google.gwt.user.client.Window;
|
import com.google.gwt.user.client.Window;
|
||||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
|
||||||
import com.sencha.gxt.cell.core.client.ButtonCell.ButtonScale;
|
import com.sencha.gxt.cell.core.client.ButtonCell.ButtonScale;
|
||||||
import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign;
|
import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign;
|
||||||
import com.sencha.gxt.core.client.util.Margins;
|
import com.sencha.gxt.core.client.util.Margins;
|
||||||
|
@ -59,7 +56,8 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
|
|
||||||
private Item selectedItem;
|
private Item selectedItem;
|
||||||
private MultipleDNDUpload dnd;
|
private MultipleDNDUpload dnd;
|
||||||
//private WorkspaceResourcesExplorerPanelPaginated wsResourcesExplorerPanel;
|
// private WorkspaceResourcesExplorerPanelPaginated
|
||||||
|
// wsResourcesExplorerPanel;
|
||||||
private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel;
|
private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel;
|
||||||
private TextButton btnShow;
|
private TextButton btnShow;
|
||||||
private TextButton btnDownload;
|
private TextButton btnDownload;
|
||||||
|
@ -492,35 +490,47 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
+ Constants.CURR_GROUP_ID + "=" + GCubeClientContext.getCurrentContextId());
|
+ Constants.CURR_GROUP_ID + "=" + GCubeClientContext.getCurrentContextId());
|
||||||
|
|
||||||
Log.debug("Retrieved link: " + actionUrl);
|
Log.debug("Retrieved link: " + actionUrl);
|
||||||
Window.open(actionUrl.toString(), selectedItem.getName(), "");
|
Window.open(URL.encode(actionUrl.toString()), selectedItem.getName(), "");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
final ItemDescription itemDescription = new ItemDescription(selectedItem.getId(),
|
final ItemDescription itemDescription = new ItemDescription(selectedItem.getId(),
|
||||||
selectedItem.getName(), selectedItem.getOwner(), selectedItem.getPath(),
|
selectedItem.getName(), selectedItem.getOwner(), selectedItem.getPath(),
|
||||||
selectedItem.getType().name());
|
selectedItem.getType().name());
|
||||||
|
Log.debug("ItemDescription: " + itemDescription);
|
||||||
|
StringBuilder url = new StringBuilder();
|
||||||
|
url.append(GWT.getModuleBaseURL());
|
||||||
|
url.append(Constants.DOWNLOAD_FILE_SERVLET + "/" + itemDescription.getName() + "?itemId="
|
||||||
|
+ itemDescription.getId() + "&" + Constants.CURR_GROUP_ID + "="
|
||||||
|
+ GCubeClientContext.getCurrentContextId());
|
||||||
|
|
||||||
DataMinerPortletServiceAsync.INSTANCE.getPublicLink(itemDescription, new AsyncCallback<String>() {
|
Window.open(URL.encode(url.toString()), "_blank", "");
|
||||||
|
|
||||||
@Override
|
/*
|
||||||
public void onFailure(Throwable caught) {
|
* final ItemDescription itemDescription = new
|
||||||
if (caught instanceof SessionExpiredServiceException) {
|
* ItemDescription(selectedItem.getId(), selectedItem.getName(),
|
||||||
EventBusProvider.INSTANCE.fireEvent(new SessionExpiredEvent());
|
* selectedItem.getOwner(), selectedItem.getPath(),
|
||||||
} else {
|
* selectedItem.getType().name());
|
||||||
Log.error("Error open file: " + caught.getLocalizedMessage());
|
*
|
||||||
UtilsGXT3.alert("Error", caught.getLocalizedMessage());
|
* DataMinerPortletServiceAsync.INSTANCE.getPublicLink(
|
||||||
}
|
* itemDescription, new AsyncCallback<String>() {
|
||||||
caught.printStackTrace();
|
*
|
||||||
|
* @Override public void onFailure(Throwable caught) { if
|
||||||
}
|
* (caught instanceof SessionExpiredServiceException) {
|
||||||
|
* EventBusProvider.INSTANCE.fireEvent(new
|
||||||
@Override
|
* SessionExpiredEvent()); } else {
|
||||||
public void onSuccess(String link) {
|
* Log.error("Error open file: " +
|
||||||
Log.debug("Retrieved link: " + link);
|
* caught.getLocalizedMessage()); UtilsGXT3.alert("Error",
|
||||||
Window.open(link, itemDescription.getName(), "");
|
* caught.getLocalizedMessage()); } caught.printStackTrace();
|
||||||
}
|
*
|
||||||
|
* }
|
||||||
});
|
*
|
||||||
|
* @Override public void onSuccess(String link) {
|
||||||
|
* Log.debug("Retrieved link: " + link); Window.open(link,
|
||||||
|
* itemDescription.getName(), ""); }
|
||||||
|
*
|
||||||
|
* });
|
||||||
|
*
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
UtilsGXT3.info("Attention", "Select a file!");
|
UtilsGXT3.info("Attention", "Select a file!");
|
||||||
|
|
|
@ -12,14 +12,11 @@ import org.gcube.portlets.user.dataminermanager.client.common.EventBusProvider;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.DataMinerWorkAreaEvent;
|
import org.gcube.portlets.user.dataminermanager.client.events.DataMinerWorkAreaEvent;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.DeleteItemRequestEvent;
|
import org.gcube.portlets.user.dataminermanager.client.events.DeleteItemRequestEvent;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.RefreshDataMinerWorkAreaEvent;
|
import org.gcube.portlets.user.dataminermanager.client.events.RefreshDataMinerWorkAreaEvent;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.SessionExpiredEvent;
|
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.SyncRefreshUploadDataSpaceEvent;
|
import org.gcube.portlets.user.dataminermanager.client.events.SyncRefreshUploadDataSpaceEvent;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.UIStateEvent;
|
import org.gcube.portlets.user.dataminermanager.client.events.UIStateEvent;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.rpc.DataMinerPortletServiceAsync;
|
|
||||||
import org.gcube.portlets.user.dataminermanager.client.type.DataMinerWorkAreaElementType;
|
import org.gcube.portlets.user.dataminermanager.client.type.DataMinerWorkAreaElementType;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.util.UtilsGXT3;
|
import org.gcube.portlets.user.dataminermanager.client.util.UtilsGXT3;
|
||||||
import org.gcube.portlets.user.dataminermanager.shared.Constants;
|
import org.gcube.portlets.user.dataminermanager.shared.Constants;
|
||||||
import org.gcube.portlets.user.dataminermanager.shared.exception.SessionExpiredServiceException;
|
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener;
|
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener;
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
|
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload;
|
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload;
|
||||||
|
@ -33,8 +30,8 @@ import com.allen_sauer.gwt.log.client.Log;
|
||||||
import com.google.gwt.core.client.GWT;
|
import com.google.gwt.core.client.GWT;
|
||||||
import com.google.gwt.event.logical.shared.ResizeEvent;
|
import com.google.gwt.event.logical.shared.ResizeEvent;
|
||||||
import com.google.gwt.event.logical.shared.ResizeHandler;
|
import com.google.gwt.event.logical.shared.ResizeHandler;
|
||||||
|
import com.google.gwt.http.client.URL;
|
||||||
import com.google.gwt.user.client.Window;
|
import com.google.gwt.user.client.Window;
|
||||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
|
||||||
import com.sencha.gxt.cell.core.client.ButtonCell.ButtonScale;
|
import com.sencha.gxt.cell.core.client.ButtonCell.ButtonScale;
|
||||||
import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign;
|
import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign;
|
||||||
import com.sencha.gxt.core.client.util.Margins;
|
import com.sencha.gxt.core.client.util.Margins;
|
||||||
|
@ -283,10 +280,10 @@ public class InputDataSetsPanel extends FramedPanel {
|
||||||
public void onUploadCompleted(String parentId, String itemId) {
|
public void onUploadCompleted(String parentId, String itemId) {
|
||||||
Log.debug("InputDataSetsPanel Upload completed: [parentID: " + parentId + ", itemId: " + itemId
|
Log.debug("InputDataSetsPanel Upload completed: [parentID: " + parentId + ", itemId: " + itemId
|
||||||
+ "]");
|
+ "]");
|
||||||
SyncRefreshUploadDataSpaceEvent ev=new SyncRefreshUploadDataSpaceEvent();
|
SyncRefreshUploadDataSpaceEvent ev = new SyncRefreshUploadDataSpaceEvent();
|
||||||
EventBusProvider.INSTANCE.fireEvent(ev);
|
EventBusProvider.INSTANCE.fireEvent(ev);
|
||||||
//wsResourcesExplorerPanel.refreshRootFolderView();
|
// wsResourcesExplorerPanel.refreshRootFolderView();
|
||||||
//forceLayout();
|
// forceLayout();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -306,10 +303,10 @@ public class InputDataSetsPanel extends FramedPanel {
|
||||||
public void onOverwriteCompleted(String parentId, String itemId) {
|
public void onOverwriteCompleted(String parentId, String itemId) {
|
||||||
Log.debug("InputDataSetsPanel Upload Override Completed: [parentID: " + parentId + ", itemId: "
|
Log.debug("InputDataSetsPanel Upload Override Completed: [parentID: " + parentId + ", itemId: "
|
||||||
+ itemId + "]");
|
+ itemId + "]");
|
||||||
SyncRefreshUploadDataSpaceEvent ev=new SyncRefreshUploadDataSpaceEvent();
|
SyncRefreshUploadDataSpaceEvent ev = new SyncRefreshUploadDataSpaceEvent();
|
||||||
EventBusProvider.INSTANCE.fireEvent(ev);
|
EventBusProvider.INSTANCE.fireEvent(ev);
|
||||||
//wsResourcesExplorerPanel.refreshRootFolderView();
|
// wsResourcesExplorerPanel.refreshRootFolderView();
|
||||||
//forceLayout();
|
// forceLayout();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -443,33 +440,44 @@ public class InputDataSetsPanel extends FramedPanel {
|
||||||
+ Constants.CURR_GROUP_ID + "=" + GCubeClientContext.getCurrentContextId());
|
+ Constants.CURR_GROUP_ID + "=" + GCubeClientContext.getCurrentContextId());
|
||||||
|
|
||||||
Log.debug("Retrieved link: " + actionUrl);
|
Log.debug("Retrieved link: " + actionUrl);
|
||||||
Window.open(actionUrl.toString(), selectedItem.getName(), "");
|
Window.open(URL.encode(actionUrl.toString()), selectedItem.getName(), "");
|
||||||
} else {
|
} else {
|
||||||
final ItemDescription itemDescription = new ItemDescription(selectedItem.getId(),
|
final ItemDescription itemDescription = new ItemDescription(selectedItem.getId(),
|
||||||
selectedItem.getName(), selectedItem.getOwner(), selectedItem.getPath(),
|
selectedItem.getName(), selectedItem.getOwner(), selectedItem.getPath(),
|
||||||
selectedItem.getType().name());
|
selectedItem.getType().name());
|
||||||
|
Log.debug("ItemDescription: " + itemDescription);
|
||||||
|
StringBuilder url = new StringBuilder();
|
||||||
|
url.append(GWT.getModuleBaseURL());
|
||||||
|
url.append(Constants.DOWNLOAD_FILE_SERVLET + "/" + itemDescription.getName() + "?itemId="
|
||||||
|
+ itemDescription.getId() + "&" + Constants.CURR_GROUP_ID + "=" + GCubeClientContext.getCurrentContextId());
|
||||||
|
|
||||||
DataMinerPortletServiceAsync.INSTANCE.getPublicLink(itemDescription, new AsyncCallback<String>() {
|
Window.open(URL.encode(url.toString()), "_blank", "");
|
||||||
|
|
||||||
@Override
|
/*
|
||||||
public void onFailure(Throwable caught) {
|
* final ItemDescription itemDescription = new
|
||||||
if (caught instanceof SessionExpiredServiceException) {
|
* ItemDescription(selectedItem.getId(), selectedItem.getName(),
|
||||||
EventBusProvider.INSTANCE.fireEvent(new SessionExpiredEvent());
|
* selectedItem.getOwner(), selectedItem.getPath(),
|
||||||
} else {
|
* selectedItem.getType().name());
|
||||||
Log.error("Error open file: " + caught.getLocalizedMessage(), caught);
|
*
|
||||||
UtilsGXT3.alert("Error", caught.getLocalizedMessage());
|
* DataMinerPortletServiceAsync.INSTANCE.getPublicLink(
|
||||||
}
|
* itemDescription, new AsyncCallback<String>() {
|
||||||
caught.printStackTrace();
|
*
|
||||||
|
* @Override public void onFailure(Throwable caught) { if
|
||||||
}
|
* (caught instanceof SessionExpiredServiceException) {
|
||||||
|
* EventBusProvider.INSTANCE.fireEvent(new
|
||||||
@Override
|
* SessionExpiredEvent()); } else {
|
||||||
public void onSuccess(String link) {
|
* Log.error("Error open file: " + caught.getLocalizedMessage(),
|
||||||
Log.debug("Retrieved link: " + link);
|
* caught); UtilsGXT3.alert("Error",
|
||||||
Window.open(link, itemDescription.getName(), "");
|
* caught.getLocalizedMessage()); } caught.printStackTrace();
|
||||||
}
|
*
|
||||||
|
* }
|
||||||
});
|
*
|
||||||
|
* @Override public void onSuccess(String link) {
|
||||||
|
* Log.debug("Retrieved link: " + link); Window.open(link,
|
||||||
|
* itemDescription.getName(), ""); }
|
||||||
|
*
|
||||||
|
* });
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
UtilsGXT3.info("Attention", "Select a file!");
|
UtilsGXT3.info("Attention", "Select a file!");
|
||||||
|
|
|
@ -12,14 +12,11 @@ import org.gcube.portlets.user.dataminermanager.client.common.EventBusProvider;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.DataMinerWorkAreaEvent;
|
import org.gcube.portlets.user.dataminermanager.client.events.DataMinerWorkAreaEvent;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.DeleteItemRequestEvent;
|
import org.gcube.portlets.user.dataminermanager.client.events.DeleteItemRequestEvent;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.RefreshDataMinerWorkAreaEvent;
|
import org.gcube.portlets.user.dataminermanager.client.events.RefreshDataMinerWorkAreaEvent;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.SessionExpiredEvent;
|
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.SyncRefreshUploadDataSpaceEvent;
|
import org.gcube.portlets.user.dataminermanager.client.events.SyncRefreshUploadDataSpaceEvent;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.events.UIStateEvent;
|
import org.gcube.portlets.user.dataminermanager.client.events.UIStateEvent;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.rpc.DataMinerPortletServiceAsync;
|
|
||||||
import org.gcube.portlets.user.dataminermanager.client.type.DataMinerWorkAreaElementType;
|
import org.gcube.portlets.user.dataminermanager.client.type.DataMinerWorkAreaElementType;
|
||||||
import org.gcube.portlets.user.dataminermanager.client.util.UtilsGXT3;
|
import org.gcube.portlets.user.dataminermanager.client.util.UtilsGXT3;
|
||||||
import org.gcube.portlets.user.dataminermanager.shared.Constants;
|
import org.gcube.portlets.user.dataminermanager.shared.Constants;
|
||||||
import org.gcube.portlets.user.dataminermanager.shared.exception.SessionExpiredServiceException;
|
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener;
|
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener;
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
|
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload;
|
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload;
|
||||||
|
@ -33,8 +30,8 @@ import com.allen_sauer.gwt.log.client.Log;
|
||||||
import com.google.gwt.core.client.GWT;
|
import com.google.gwt.core.client.GWT;
|
||||||
import com.google.gwt.event.logical.shared.ResizeEvent;
|
import com.google.gwt.event.logical.shared.ResizeEvent;
|
||||||
import com.google.gwt.event.logical.shared.ResizeHandler;
|
import com.google.gwt.event.logical.shared.ResizeHandler;
|
||||||
|
import com.google.gwt.http.client.URL;
|
||||||
import com.google.gwt.user.client.Window;
|
import com.google.gwt.user.client.Window;
|
||||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
|
||||||
import com.sencha.gxt.cell.core.client.ButtonCell.ButtonScale;
|
import com.sencha.gxt.cell.core.client.ButtonCell.ButtonScale;
|
||||||
import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign;
|
import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign;
|
||||||
import com.sencha.gxt.core.client.util.Margins;
|
import com.sencha.gxt.core.client.util.Margins;
|
||||||
|
@ -201,13 +198,11 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void manageSyncRefreshUploadDataSpaceEvents() {
|
private void manageSyncRefreshUploadDataSpaceEvents() {
|
||||||
Log.debug("OutputDataSetsPanel received SyncRefreshUploadDataSpaceEvents: ");
|
Log.debug("OutputDataSetsPanel received SyncRefreshUploadDataSpaceEvents: ");
|
||||||
refreshWSResourceExplorerPanel();
|
refreshWSResourceExplorerPanel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void create(DataMinerWorkAreaEvent event) {
|
private void create(DataMinerWorkAreaEvent event) {
|
||||||
Log.debug("Create OutputDataSetsPanel");
|
Log.debug("Create OutputDataSetsPanel");
|
||||||
|
@ -276,24 +271,26 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
|
|
||||||
// DND
|
// DND
|
||||||
dnd = new MultipleDNDUpload();
|
dnd = new MultipleDNDUpload();
|
||||||
|
|
||||||
dnd.setParameters(event.getDataMinerWorkArea().getOutputDataSets().getFolder().getId(), UPLOAD_TYPE.File);
|
dnd.setParameters(event.getDataMinerWorkArea().getOutputDataSets().getFolder().getId(), UPLOAD_TYPE.File);
|
||||||
dnd.addUniqueContainer(wsResourcesExplorerPanel);
|
dnd.addUniqueContainer(wsResourcesExplorerPanel);
|
||||||
WorskpaceUploadNotificationListener workspaceUploaderListenerOutputDataSetsPanel = new WorskpaceUploadNotificationListener() {
|
WorskpaceUploadNotificationListener workspaceUploaderListenerOutputDataSetsPanel = new WorskpaceUploadNotificationListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUploadCompleted(String parentId, String itemId) {
|
public void onUploadCompleted(String parentId, String itemId) {
|
||||||
Log.debug("OutputDataSetsPanel Upload completed: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
Log.debug("OutputDataSetsPanel Upload completed: [parentID: " + parentId + ", itemId: " + itemId
|
||||||
SyncRefreshUploadDataSpaceEvent ev=new SyncRefreshUploadDataSpaceEvent();
|
+ "]");
|
||||||
|
SyncRefreshUploadDataSpaceEvent ev = new SyncRefreshUploadDataSpaceEvent();
|
||||||
EventBusProvider.INSTANCE.fireEvent(ev);
|
EventBusProvider.INSTANCE.fireEvent(ev);
|
||||||
//wsResourcesExplorerPanel.refreshRootFolderView();
|
// wsResourcesExplorerPanel.refreshRootFolderView();
|
||||||
//forceLayout();
|
// forceLayout();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUploadAborted(String parentId, String itemId) {
|
public void onUploadAborted(String parentId, String itemId) {
|
||||||
Log.debug("OutputDataSetsPanel Upload Aborted: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
Log.debug(
|
||||||
|
"OutputDataSetsPanel Upload Aborted: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -304,11 +301,12 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onOverwriteCompleted(String parentId, String itemId) {
|
public void onOverwriteCompleted(String parentId, String itemId) {
|
||||||
Log.debug("OutputDataSetsPanel Upload Override Completed: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
Log.debug("OutputDataSetsPanel Upload Override Completed: [parentID: " + parentId + ", itemId: "
|
||||||
SyncRefreshUploadDataSpaceEvent ev=new SyncRefreshUploadDataSpaceEvent();
|
+ itemId + "]");
|
||||||
|
SyncRefreshUploadDataSpaceEvent ev = new SyncRefreshUploadDataSpaceEvent();
|
||||||
EventBusProvider.INSTANCE.fireEvent(ev);
|
EventBusProvider.INSTANCE.fireEvent(ev);
|
||||||
//wsResourcesExplorerPanel.refreshRootFolderView();
|
// wsResourcesExplorerPanel.refreshRootFolderView();
|
||||||
//forceLayout();
|
// forceLayout();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -442,33 +440,46 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
+ Constants.CURR_GROUP_ID + "=" + GCubeClientContext.getCurrentContextId());
|
+ Constants.CURR_GROUP_ID + "=" + GCubeClientContext.getCurrentContextId());
|
||||||
|
|
||||||
Log.debug("Retrieved link: " + actionUrl);
|
Log.debug("Retrieved link: " + actionUrl);
|
||||||
Window.open(actionUrl.toString(), selectedItem.getName(), "");
|
Window.open(URL.encode(actionUrl.toString()), selectedItem.getName(), "");
|
||||||
} else {
|
} else {
|
||||||
final ItemDescription itemDescription = new ItemDescription(selectedItem.getId(),
|
final ItemDescription itemDescription = new ItemDescription(selectedItem.getId(),
|
||||||
selectedItem.getName(), selectedItem.getOwner(), selectedItem.getPath(),
|
selectedItem.getName(), selectedItem.getOwner(), selectedItem.getPath(),
|
||||||
selectedItem.getType().name());
|
selectedItem.getType().name());
|
||||||
|
Log.debug("ItemDescription: " + itemDescription);
|
||||||
|
|
||||||
DataMinerPortletServiceAsync.INSTANCE.getPublicLink(itemDescription, new AsyncCallback<String>() {
|
StringBuilder url = new StringBuilder();
|
||||||
|
url.append(GWT.getModuleBaseURL());
|
||||||
|
url.append(Constants.DOWNLOAD_FILE_SERVLET + "/" + itemDescription.getName() + "?itemId="
|
||||||
|
+ itemDescription.getId() + "&" + Constants.CURR_GROUP_ID + "="
|
||||||
|
+ GCubeClientContext.getCurrentContextId());
|
||||||
|
|
||||||
@Override
|
Window.open(URL.encode(url.toString()), "_blank", "");
|
||||||
public void onFailure(Throwable caught) {
|
|
||||||
if (caught instanceof SessionExpiredServiceException) {
|
|
||||||
EventBusProvider.INSTANCE.fireEvent(new SessionExpiredEvent());
|
|
||||||
} else {
|
|
||||||
Log.error("Error open file: " + caught.getLocalizedMessage(), caught);
|
|
||||||
UtilsGXT3.alert("Error", caught.getLocalizedMessage());
|
|
||||||
}
|
|
||||||
caught.printStackTrace();
|
|
||||||
|
|
||||||
}
|
/*
|
||||||
|
* final ItemDescription itemDescription = new
|
||||||
@Override
|
* ItemDescription(selectedItem.getId(), selectedItem.getName(),
|
||||||
public void onSuccess(String link) {
|
* selectedItem.getOwner(), selectedItem.getPath(),
|
||||||
Log.debug("Retrieved link: " + link);
|
* selectedItem.getType().name());
|
||||||
Window.open(link, itemDescription.getName(), "");
|
*
|
||||||
}
|
* DataMinerPortletServiceAsync.INSTANCE.getPublicLink(
|
||||||
|
* itemDescription, new AsyncCallback<String>() {
|
||||||
});
|
*
|
||||||
|
* @Override public void onFailure(Throwable caught) { if
|
||||||
|
* (caught instanceof SessionExpiredServiceException) {
|
||||||
|
* EventBusProvider.INSTANCE.fireEvent(new
|
||||||
|
* SessionExpiredEvent()); } else {
|
||||||
|
* Log.error("Error open file: " + caught.getLocalizedMessage(),
|
||||||
|
* caught); UtilsGXT3.alert("Error",
|
||||||
|
* caught.getLocalizedMessage()); } caught.printStackTrace();
|
||||||
|
*
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* @Override public void onSuccess(String link) {
|
||||||
|
* Log.debug("Retrieved link: " + link); Window.open(link,
|
||||||
|
* itemDescription.getName(), ""); }
|
||||||
|
*
|
||||||
|
* });
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
UtilsGXT3.info("Attention", "Select a file!");
|
UtilsGXT3.info("Attention", "Select a file!");
|
||||||
|
|
|
@ -0,0 +1,123 @@
|
||||||
|
package org.gcube.portlets.user.dataminermanager.server;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.nio.channels.Channels;
|
||||||
|
import java.nio.channels.ReadableByteChannel;
|
||||||
|
import java.nio.channels.WritableByteChannel;
|
||||||
|
|
||||||
|
import javax.servlet.ServletException;
|
||||||
|
import javax.servlet.http.HttpServlet;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.dataminermanagercl.server.util.ServiceCredentials;
|
||||||
|
import org.gcube.data.analysis.dataminermanagercl.shared.workspace.ItemDescription;
|
||||||
|
import org.gcube.portlets.user.dataminermanager.server.storage.StorageUtil;
|
||||||
|
import org.gcube.portlets.user.dataminermanager.shared.Constants;
|
||||||
|
import org.gcube.portlets.user.dataminermanager.shared.exception.ServiceException;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Download Servlet
|
||||||
|
*
|
||||||
|
* @author Giancarlo Panichi
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class DownloadFileServlet extends HttpServlet {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 5389118370656932343L;
|
||||||
|
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(DownloadFileServlet.class);
|
||||||
|
|
||||||
|
public DownloadFileServlet() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
|
||||||
|
* response)
|
||||||
|
*/
|
||||||
|
protected void doGet(HttpServletRequest request, HttpServletResponse response)
|
||||||
|
throws ServletException, IOException {
|
||||||
|
createResponse(request, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
|
||||||
|
* response)
|
||||||
|
*/
|
||||||
|
protected void doPost(HttpServletRequest request, HttpServletResponse response)
|
||||||
|
throws ServletException, IOException {
|
||||||
|
createResponse(request, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createResponse(HttpServletRequest req, HttpServletResponse resp)
|
||||||
|
throws ServletException, IOException {
|
||||||
|
|
||||||
|
try {
|
||||||
|
logger.debug("DownloadFileServlet()");
|
||||||
|
|
||||||
|
HttpSession session = req.getSession();
|
||||||
|
|
||||||
|
if (session == null) {
|
||||||
|
logger.error("Error getting the download session, no session valid found: " + session);
|
||||||
|
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
|
||||||
|
"ERROR-Error getting the user session, no session found" + session);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
logger.debug("DownloadFileServlet session id: " + session.getId());
|
||||||
|
String scopeGroupId = req.getHeader(Constants.CURR_GROUP_ID);
|
||||||
|
if (scopeGroupId == null || scopeGroupId.isEmpty()) {
|
||||||
|
scopeGroupId = req.getParameter(Constants.CURR_GROUP_ID);
|
||||||
|
if (scopeGroupId == null || scopeGroupId.isEmpty()) {
|
||||||
|
logger.error(
|
||||||
|
"CURR_GROUP_ID is null, it is a mandatory parameter in custom servlet: " + scopeGroupId);
|
||||||
|
throw new ServletException(
|
||||||
|
"CURR_GROUP_ID is null, it is a mandatory parameter in custom servlet: " + scopeGroupId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String itemId = req.getParameter("itemId");
|
||||||
|
logger.info("DownloadFileServlet(): [scopeGroupId=" + scopeGroupId + ",ItemId=" + itemId + "]");
|
||||||
|
ServiceCredentials serviceCredentials = SessionUtil.getServiceCredentials(req, scopeGroupId);
|
||||||
|
StorageUtil filesStorage = new StorageUtil();
|
||||||
|
ItemDescription itemDescription = filesStorage.getFileInfoOnWorkspace(serviceCredentials.getUserName(),
|
||||||
|
itemId);
|
||||||
|
logger.debug("Item retrieved: " + itemDescription);
|
||||||
|
InputStream inputStream = filesStorage.getFileOnWorkspace(serviceCredentials.getUserName(), itemId);
|
||||||
|
|
||||||
|
resp.setHeader("Content-Disposition:", "attachment;filename=\"" + itemDescription.getName() + "\"");
|
||||||
|
resp.setHeader("Content-Type", "application/force-download");
|
||||||
|
resp.setHeader("Content-Length", String.valueOf(itemDescription.getLenght()));
|
||||||
|
|
||||||
|
stream(inputStream, resp.getOutputStream());
|
||||||
|
} catch (ServiceException e) {
|
||||||
|
logger.error("DownloadFileServlet():"+e.getLocalizedMessage(), e);
|
||||||
|
throw new ServletException(e.getLocalizedMessage(), e);
|
||||||
|
} catch (Throwable e) {
|
||||||
|
logger.error("DownloadFileServlet(): " + e.getLocalizedMessage(), e);
|
||||||
|
throw new ServletException("Download:" + e.getLocalizedMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private long stream(InputStream input, OutputStream output) throws IOException {
|
||||||
|
try (ReadableByteChannel inputChannel = Channels.newChannel(input);
|
||||||
|
WritableByteChannel outputChannel = Channels.newChannel(output);) {
|
||||||
|
ByteBuffer buffer = ByteBuffer.allocateDirect(10240);
|
||||||
|
long size = 0;
|
||||||
|
|
||||||
|
while (inputChannel.read(buffer) != -1) {
|
||||||
|
buffer.flip();
|
||||||
|
size += outputChannel.write(buffer);
|
||||||
|
buffer.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -64,7 +64,7 @@ public class DownloadFolderServlet extends HttpServlet {
|
||||||
private void createResponse(HttpServletRequest request,
|
private void createResponse(HttpServletRequest request,
|
||||||
HttpServletResponse response) throws ServletException, IOException {
|
HttpServletResponse response) throws ServletException, IOException {
|
||||||
try {
|
try {
|
||||||
logger.debug("DownloadFolderServlet");
|
logger.debug("DownloadFolderServlet()");
|
||||||
|
|
||||||
HttpSession session = request.getSession();
|
HttpSession session = request.getSession();
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,10 @@ import org.gcube.common.storagehub.client.dsl.ListResolver;
|
||||||
import org.gcube.common.storagehub.client.dsl.OpenResolver;
|
import org.gcube.common.storagehub.client.dsl.OpenResolver;
|
||||||
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
|
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
|
||||||
import org.gcube.common.storagehub.model.Metadata;
|
import org.gcube.common.storagehub.model.Metadata;
|
||||||
|
import org.gcube.common.storagehub.model.items.AbstractFileItem;
|
||||||
import org.gcube.common.storagehub.model.items.FolderItem;
|
import org.gcube.common.storagehub.model.items.FolderItem;
|
||||||
import org.gcube.common.storagehub.model.items.Item;
|
import org.gcube.common.storagehub.model.items.Item;
|
||||||
|
import org.gcube.data.analysis.dataminermanagercl.shared.workspace.ItemDescription;
|
||||||
import org.gcube.portlets.user.dataminermanager.shared.exception.ServiceException;
|
import org.gcube.portlets.user.dataminermanager.shared.exception.ServiceException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -69,7 +71,7 @@ public class StorageUtil {
|
||||||
* @throws ServiceException
|
* @throws ServiceException
|
||||||
* service exception
|
* service exception
|
||||||
*/
|
*/
|
||||||
public InputStream getInputStreamForItemOnWorkspace(String user, String itemId) throws ServiceException {
|
public InputStream getFileOnWorkspace(String user, String itemId) throws ServiceException {
|
||||||
try {
|
try {
|
||||||
logger.debug("getInputStreamForItemOnWorkspace: [user=" + user + ", itemId=" + itemId + "]");
|
logger.debug("getInputStreamForItemOnWorkspace: [user=" + user + ", itemId=" + itemId + "]");
|
||||||
StorageHubClient shc = new StorageHubClient();
|
StorageHubClient shc = new StorageHubClient();
|
||||||
|
@ -82,6 +84,37 @@ public class StorageUtil {
|
||||||
throw new ServiceException(e.getLocalizedMessage(), e);
|
throw new ServiceException(e.getLocalizedMessage(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param user
|
||||||
|
* User
|
||||||
|
* @param itemId
|
||||||
|
* Item id
|
||||||
|
* @return Item description
|
||||||
|
* @throws ServiceException
|
||||||
|
* Exception
|
||||||
|
*/
|
||||||
|
public ItemDescription getFileInfoOnWorkspace(String user, String itemId)
|
||||||
|
throws ServiceException {
|
||||||
|
try {
|
||||||
|
logger.info("Retrieve file info on workspace: [user=" + user + ", itemId=" + itemId + "]");
|
||||||
|
StorageHubClient shc = new StorageHubClient();
|
||||||
|
OpenResolver openResolver = shc.open(itemId);
|
||||||
|
|
||||||
|
FileContainer fileContainer = openResolver.asFile();
|
||||||
|
AbstractFileItem item = fileContainer.get();
|
||||||
|
ItemDescription itemDescription = new ItemDescription(item.getId(), item.getName(), item.getOwner(),
|
||||||
|
item.getPath(), item.getClass().getSimpleName());
|
||||||
|
itemDescription.setMimeType(item.getContent().getMimeType());
|
||||||
|
itemDescription.setLenght(String.valueOf(item.getContent().getSize()));
|
||||||
|
return itemDescription;
|
||||||
|
|
||||||
|
} catch (Throwable e) {
|
||||||
|
logger.error("Retrieve file info on workspace: " + e.getLocalizedMessage(), e);
|
||||||
|
throw new ServiceException(e.getLocalizedMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
@ -37,7 +37,7 @@ public class TableReader {
|
||||||
|
|
||||||
public TableItemSimple getTableItemSimple() throws ServiceException {
|
public TableItemSimple getTableItemSimple() throws ServiceException {
|
||||||
StorageUtil storageUtil=new StorageUtil();
|
StorageUtil storageUtil=new StorageUtil();
|
||||||
InputStream is = storageUtil.getInputStreamForItemOnWorkspace(
|
InputStream is = storageUtil.getFileOnWorkspace(
|
||||||
serviceCredentials.getUserName(), item.getId());
|
serviceCredentials.getUserName(), item.getId());
|
||||||
Reader fileReader = new InputStreamReader(is);
|
Reader fileReader = new InputStreamReader(is);
|
||||||
CSVReader csvReader = new CSVReader(fileReader);
|
CSVReader csvReader = new CSVReader(fileReader);
|
||||||
|
|
|
@ -15,23 +15,21 @@ public class Constants {
|
||||||
public static final String DATA_MINER_LANG_COOKIE = "DataMinerLangCookie";
|
public static final String DATA_MINER_LANG_COOKIE = "DataMinerLangCookie";
|
||||||
public static final String DATA_MINER_LANG = "DataMinerLang";
|
public static final String DATA_MINER_LANG = "DataMinerLang";
|
||||||
public static final String DATA_MINER_OPERATOR_ID = "OperatorId";
|
public static final String DATA_MINER_OPERATOR_ID = "OperatorId";
|
||||||
|
|
||||||
public static final String DEFAULT_USER = "giancarlo.panichi";
|
public static final String DEFAULT_USER = "giancarlo.panichi";
|
||||||
public final static String DEFAULT_SCOPE = "/gcube/devNext/NextNext";
|
public final static String DEFAULT_SCOPE = "/gcube/devNext/NextNext";
|
||||||
public final static String DEFAULT_TOKEN = "";
|
public final static String DEFAULT_TOKEN = "";
|
||||||
|
|
||||||
public static final String DEFAULT_ROLE = "OrganizationMember";
|
public static final String DEFAULT_ROLE = "OrganizationMember";
|
||||||
|
|
||||||
public static final String SClientMap = "DataMinerClientMap";
|
public static final String SClientMap = "DataMinerClientMap";
|
||||||
public static final String DATA_MINER_SERVICE_NAME = "DataMiner";
|
public static final String DATA_MINER_SERVICE_NAME = "DataMiner";
|
||||||
public static final String DATAMINER_SERVICE_CATEGORY = "DataAnalysis";
|
public static final String DATAMINER_SERVICE_CATEGORY = "DataAnalysis";
|
||||||
|
|
||||||
|
|
||||||
public static final String TD_DATASOURCE_FACTORY_ID = "DataMinerManager";
|
public static final String TD_DATASOURCE_FACTORY_ID = "DataMinerManager";
|
||||||
|
|
||||||
public static final int TIME_UPDATE_COMPUTATION_STATUS_PANEL = 5 * 1000;// 7*1000;
|
public static final int TIME_UPDATE_COMPUTATION_STATUS_PANEL = 5 * 1000;// 7*1000;
|
||||||
|
|
||||||
|
|
||||||
// WPS Data Miner
|
// WPS Data Miner
|
||||||
public static final String WPSServiceURL = "http://dataminer-d-d4s.d4science.org:80/wps/";
|
public static final String WPSServiceURL = "http://dataminer-d-d4s.d4science.org:80/wps/";
|
||||||
public static final String WPSWebProcessingService = "WebProcessingService";
|
public static final String WPSWebProcessingService = "WebProcessingService";
|
||||||
|
@ -39,17 +37,17 @@ public class Constants {
|
||||||
public static final String WPSToken = "";
|
public static final String WPSToken = "";
|
||||||
public static final String WPSUser = "giancarlo.panichi";
|
public static final String WPSUser = "giancarlo.panichi";
|
||||||
public static final String WPSLanguage = "en-US";
|
public static final String WPSLanguage = "en-US";
|
||||||
|
|
||||||
|
/* public static final String WPSUser = "gianpaolo.coro"; */
|
||||||
|
|
||||||
|
// Session
|
||||||
|
public static final String CURR_GROUP_ID = "CURR_GROUP_ID";
|
||||||
|
|
||||||
/*public static final String WPSUser = "gianpaolo.coro";*/
|
// Download
|
||||||
|
public static final String DOWNLOAD_FILE_SERVLET = "DownloadFileServlet";
|
||||||
|
|
||||||
//DownloadFolderServlet
|
public static final String DOWNLOAD_FOLDER_SERVLET = "DownloadFolderServlet";
|
||||||
public static final String DOWNLOAD_FOLDER_SERVLET= "DownloadFolderServlet";
|
|
||||||
public static final String DOWNLOAD_FOLDER_SERVLET_ITEM_ID_PARAMETER = "itemId";
|
public static final String DOWNLOAD_FOLDER_SERVLET_ITEM_ID_PARAMETER = "itemId";
|
||||||
public static final String DOWNLOAD_FOLDER_SERVLET_FOLDER_NAME_PARAMETER = "folderName";
|
public static final String DOWNLOAD_FOLDER_SERVLET_FOLDER_NAME_PARAMETER = "folderName";
|
||||||
|
|
||||||
//Session
|
|
||||||
public static final String CURR_GROUP_ID="CURR_GROUP_ID";
|
|
||||||
public static final String CURR_USER_ID = "CURR_USER_ID";
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,10 +12,17 @@
|
||||||
<servlet-name>jUnitHostImpl</servlet-name>
|
<servlet-name>jUnitHostImpl</servlet-name>
|
||||||
<servlet-class>com.google.gwt.junit.server.JUnitHostImpl</servlet-class>
|
<servlet-class>com.google.gwt.junit.server.JUnitHostImpl</servlet-class>
|
||||||
</servlet>
|
</servlet>
|
||||||
|
|
||||||
|
<!-- Download -->
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>DownloadFileServlet</servlet-name>
|
||||||
|
<servlet-class>org.gcube.portlets.user.dataminermanager.server.DownloadFileServlet</servlet-class>
|
||||||
|
</servlet>
|
||||||
<servlet>
|
<servlet>
|
||||||
<servlet-name>DownloadFolderServlet</servlet-name>
|
<servlet-name>DownloadFolderServlet</servlet-name>
|
||||||
<servlet-class>org.gcube.portlets.user.dataminermanager.server.DownloadFolderServlet</servlet-class>
|
<servlet-class>org.gcube.portlets.user.dataminermanager.server.DownloadFolderServlet</servlet-class>
|
||||||
</servlet>
|
</servlet>
|
||||||
|
|
||||||
<servlet>
|
<servlet>
|
||||||
<servlet-name>workspaceExplorer</servlet-name>
|
<servlet-name>workspaceExplorer</servlet-name>
|
||||||
<servlet-class>org.gcube.portlets.widgets.wsexplorer.server.WorkspaceExplorerServiceImpl</servlet-class>
|
<servlet-class>org.gcube.portlets.widgets.wsexplorer.server.WorkspaceExplorerServiceImpl</servlet-class>
|
||||||
|
@ -42,10 +49,17 @@
|
||||||
<servlet-name>jUnitHostImpl</servlet-name>
|
<servlet-name>jUnitHostImpl</servlet-name>
|
||||||
<url-pattern>/dataminermanager/junithost/*</url-pattern>
|
<url-pattern>/dataminermanager/junithost/*</url-pattern>
|
||||||
</servlet-mapping>
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<!-- Download -->
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>DownloadFileServlet</servlet-name>
|
||||||
|
<url-pattern>/dataminermanager/DownloadFileServlet/*</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
<servlet-mapping>
|
<servlet-mapping>
|
||||||
<servlet-name>DownloadFolderServlet</servlet-name>
|
<servlet-name>DownloadFolderServlet</servlet-name>
|
||||||
<url-pattern>/dataminermanager/DownloadFolderServlet</url-pattern>
|
<url-pattern>/dataminermanager/DownloadFolderServlet</url-pattern>
|
||||||
</servlet-mapping>
|
</servlet-mapping>
|
||||||
|
|
||||||
<servlet-mapping>
|
<servlet-mapping>
|
||||||
<servlet-name>workspaceExplorer</servlet-name>
|
<servlet-name>workspaceExplorer</servlet-name>
|
||||||
<url-pattern>/dataminermanager/WorkspaceExplorerService</url-pattern>
|
<url-pattern>/dataminermanager/WorkspaceExplorerService</url-pattern>
|
||||||
|
|
Loading…
Reference in New Issue