Working on Feature #9760: WS-Thredds synch folder integration
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@154676 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
adcf5d9242
commit
992ae01887
|
@ -801,5 +801,12 @@ public interface GWTWorkspaceService extends RemoteService{
|
||||||
String folderToPublishId, String folderMetadataId, String vreScope,
|
String folderToPublishId, String folderMetadataId, String vreScope,
|
||||||
String catalogueName)
|
String catalogueName)
|
||||||
throws Exception;
|
throws Exception;
|
||||||
|
/**
|
||||||
|
* @param transferId
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
TransferOnThreddsReport getStatusOfPublishingOnThreddsCatalogue(String transferId)
|
||||||
|
throws Exception;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -800,5 +800,8 @@ public interface GWTWorkspaceServiceAsync {
|
||||||
String folderToPublishId, String folderMetadataId, String vreScope,
|
String folderToPublishId, String folderMetadataId, String vreScope,
|
||||||
String catalogueName, AsyncCallback<TransferOnThreddsReport> callback);
|
String catalogueName, AsyncCallback<TransferOnThreddsReport> callback);
|
||||||
|
|
||||||
|
void getStatusOfPublishingOnThreddsCatalogue(
|
||||||
|
String transferId, AsyncCallback<TransferOnThreddsReport> callback);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import java.util.List;
|
||||||
|
|
||||||
import org.gcube.portlets.user.workspace.client.AppControllerExplorer;
|
import org.gcube.portlets.user.workspace.client.AppControllerExplorer;
|
||||||
import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
|
import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.RefreshFolderEvent;
|
||||||
import org.gcube.portlets.user.workspace.client.model.FileModel;
|
import org.gcube.portlets.user.workspace.client.model.FileModel;
|
||||||
import org.gcube.portlets.user.workspace.client.model.GcubeVRE;
|
import org.gcube.portlets.user.workspace.client.model.GcubeVRE;
|
||||||
import org.gcube.portlets.user.workspace.shared.TransferOnThreddsReport;
|
import org.gcube.portlets.user.workspace.shared.TransferOnThreddsReport;
|
||||||
|
@ -26,6 +27,7 @@ import com.extjs.gxt.ui.client.event.SelectionListener;
|
||||||
import com.extjs.gxt.ui.client.store.ListStore;
|
import com.extjs.gxt.ui.client.store.ListStore;
|
||||||
import com.extjs.gxt.ui.client.util.Format;
|
import com.extjs.gxt.ui.client.util.Format;
|
||||||
import com.extjs.gxt.ui.client.widget.Dialog;
|
import com.extjs.gxt.ui.client.widget.Dialog;
|
||||||
|
import com.extjs.gxt.ui.client.widget.MessageBox;
|
||||||
import com.extjs.gxt.ui.client.widget.form.ComboBox;
|
import com.extjs.gxt.ui.client.widget.form.ComboBox;
|
||||||
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
|
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
|
||||||
import com.extjs.gxt.ui.client.widget.form.TextField;
|
import com.extjs.gxt.ui.client.widget.form.TextField;
|
||||||
|
@ -34,6 +36,7 @@ import com.extjs.gxt.ui.client.widget.layout.FormLayout;
|
||||||
import com.github.gwtbootstrap.client.ui.Label;
|
import com.github.gwtbootstrap.client.ui.Label;
|
||||||
import com.github.gwtbootstrap.client.ui.constants.LabelType;
|
import com.github.gwtbootstrap.client.ui.constants.LabelType;
|
||||||
import com.google.gwt.core.client.GWT;
|
import com.google.gwt.core.client.GWT;
|
||||||
|
import com.google.gwt.user.client.Timer;
|
||||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
|
|
||||||
|
|
||||||
|
@ -130,6 +133,7 @@ public class DialogPublishOnThredds extends Dialog {
|
||||||
setButtons(Dialog.OKCANCEL);
|
setButtons(Dialog.OKCANCEL);
|
||||||
|
|
||||||
this.getButtonById(Dialog.OK).setText("Publish");
|
this.getButtonById(Dialog.OK).setText("Publish");
|
||||||
|
this.getButtonById(Dialog.CANCEL).setText("Close");
|
||||||
// this.getButtonById(Dialog.CANCEL).setText("Reset");
|
// this.getButtonById(Dialog.CANCEL).setText("Reset");
|
||||||
txtCatalogueName = new TextField<String>();
|
txtCatalogueName = new TextField<String>();
|
||||||
txtCatalogueName.setEmptyText("Type a Name...");
|
txtCatalogueName.setEmptyText("Type a Name...");
|
||||||
|
@ -208,15 +212,15 @@ public class DialogPublishOnThredds extends Dialog {
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Throwable caught) {
|
public void onFailure(Throwable caught) {
|
||||||
|
|
||||||
// TODO Auto-generated method stub
|
new MessageBoxAlert("Error", caught.getMessage(), null);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(TransferOnThreddsReport result) {
|
public void onSuccess(TransferOnThreddsReport result) {
|
||||||
|
GWT.log("Publishing on Thredds return: "+result);
|
||||||
if(result!=null){
|
if(result!=null){
|
||||||
//START TIMER...
|
pollingStart(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -239,6 +243,59 @@ public class DialogPublishOnThredds extends Dialog {
|
||||||
this.show();
|
this.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showResult(TransferOnThreddsReport result){
|
||||||
|
|
||||||
|
|
||||||
|
if(result.isOnError()){
|
||||||
|
MessageBox.info("Error", result.getReportMessage(), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(result.isTransferringReportAvailable()){
|
||||||
|
InfoDisplay.display("Transferring completed", "Refreshing folder content...");
|
||||||
|
FileModel folderTarget = new FileModel(result.getFolderId(), "", true);
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new RefreshFolderEvent(folderTarget, false, false, true));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void pollingStart(final TransferOnThreddsReport result){
|
||||||
|
|
||||||
|
showResult(result);
|
||||||
|
|
||||||
|
final Timer t = new Timer(){
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
|
||||||
|
AppControllerExplorer.rpcWorkspaceService.getStatusOfPublishingOnThreddsCatalogue(result.getTransferId(), new AsyncCallback<TransferOnThreddsReport>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
MessageBox.alert("Error", caught.getMessage(), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(TransferOnThreddsReport result) {
|
||||||
|
GWT.log("Get status of Publishing on Thredds return: "+result);
|
||||||
|
|
||||||
|
showResult(result);
|
||||||
|
if(result.isOnError() || result.isTransferringReportAvailable()){
|
||||||
|
GWT.log("Cancelling timer for Transferring: "+result);
|
||||||
|
cancelTimer();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
public void cancelTimer(){
|
||||||
|
this.cancel();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
t.scheduleRepeating(2000);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if is valid form.
|
* Checks if is valid form.
|
||||||
|
|
|
@ -4207,7 +4207,6 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Publish on thredds catalogue.
|
* Publish on thredds catalogue.
|
||||||
*
|
*
|
||||||
|
@ -4216,6 +4215,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
|
||||||
* @param vreScope the vre scope
|
* @param vreScope the vre scope
|
||||||
* @param catalogueName the catalogue name
|
* @param catalogueName the catalogue name
|
||||||
* @return the transfer on thredds report
|
* @return the transfer on thredds report
|
||||||
|
* @throws Exception the exception
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public TransferOnThreddsReport publishOnThreddsCatalogue(String folderToPublishId, String folderMetadataId, String vreScope, String catalogueName) throws Exception{
|
public TransferOnThreddsReport publishOnThreddsCatalogue(String folderToPublishId, String folderMetadataId, String vreScope, String catalogueName) throws Exception{
|
||||||
|
@ -4230,7 +4230,30 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
|
||||||
return pub.publishFolder(folderToPublishId, folderMetadataId, userToken, catalogueName);
|
return pub.publishFolder(folderToPublishId, folderMetadataId, userToken, catalogueName);
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
workspaceLogger.error("Error occurred server-side when transfer to Thredds: ", e);
|
workspaceLogger.error("Error occurred server-side when transfer to Thredds: ", e);
|
||||||
throw new Exception("Sorry, an error occurred erver-side performing transfer to Thredds, try again later");
|
throw new Exception("Sorry, an error occurred server-side performing transfer to Thredds, try again later");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the publishing on thredds catalogue.
|
||||||
|
*
|
||||||
|
* @param transferId the transfer id
|
||||||
|
* @return the publishing on thredds catalogue
|
||||||
|
* @throws Exception the exception
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TransferOnThreddsReport getStatusOfPublishingOnThreddsCatalogue(String transferId) throws Exception{
|
||||||
|
workspaceLogger.debug("Getting publishing on thredds for transfer id: "+transferId);
|
||||||
|
TransferOnThreddsReport tr = null;
|
||||||
|
try{
|
||||||
|
tr = PublishOnThredds.getStatusOfTransferId(this.getThreadLocalRequest().getSession(), transferId);
|
||||||
|
return tr;
|
||||||
|
}catch(Exception e){
|
||||||
|
workspaceLogger.error("Error occurred server-side when getting the status of transferring on Thredds: ", e);
|
||||||
|
tr.setOnError(true);
|
||||||
|
WsUtil.setTransferPublishingOnThredds(this.getThreadLocalRequest().getSession(), tr);
|
||||||
|
throw new Exception("Sorry, an error occurred server-side getting the status of transferring on Thredds, try again later");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -134,12 +134,12 @@ public class PublishOnThredds {
|
||||||
| InternalErrorException
|
| InternalErrorException
|
||||||
| HomeNotFoundException
|
| HomeNotFoundException
|
||||||
| UserNotFoundException e) {
|
| UserNotFoundException e) {
|
||||||
logger.error("Error on getting workspace for thredds transfering to folder: "+folderId, e);
|
logger.error("Error on getting workspace for thredds transferring to folder: "+folderId, e);
|
||||||
setStatusOnTransferId(transferId, true, "Sorry, an error has occurred during getting workspace for user: "+e.getMessage(),false);
|
setStatusOnTransferId(transferId, true, "Sorry, an error has occurred during getting workspace for user: "+e.getMessage(),false);
|
||||||
}
|
}
|
||||||
catch (FileNotFoundException | InsufficientPrivilegesException | ItemAlreadyExistException | WrongDestinationException e) {
|
catch (FileNotFoundException | InsufficientPrivilegesException | ItemAlreadyExistException | WrongDestinationException e) {
|
||||||
// TODO Auto-generated catch block
|
// TODO Auto-generated catch block
|
||||||
logger.error("Error on writing report for thredds transfering to folder: "+folderId, e);
|
logger.error("Error on writing report for thredds transferring to folder: "+folderId, e);
|
||||||
setStatusOnTransferId(transferId, true, "Sorry, an error has occurred during report creation to transfer resulting: "+e.getMessage(),false);
|
setStatusOnTransferId(transferId, true, "Sorry, an error has occurred during report creation to transfer resulting: "+e.getMessage(),false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,11 +61,11 @@ public class TransferOnThreddsReport implements Serializable, IsSerializable{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the report created on workspace.
|
* Checks if is transferring report available.
|
||||||
*
|
*
|
||||||
* @return the reportCreatedOnWorkspace
|
* @return the boolean
|
||||||
*/
|
*/
|
||||||
public Boolean getReportCreatedOnWorkspace() {
|
public Boolean isTransferringReportAvailable() {
|
||||||
|
|
||||||
return reportCreatedOnWorkspace;
|
return reportCreatedOnWorkspace;
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,7 @@ public class TransferOnThreddsReport implements Serializable, IsSerializable{
|
||||||
*
|
*
|
||||||
* @return the onError
|
* @return the onError
|
||||||
*/
|
*/
|
||||||
public Boolean getOnError() {
|
public Boolean isOnError() {
|
||||||
|
|
||||||
return onError;
|
return onError;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue