diff --git a/pom.xml b/pom.xml
index ea8e053..ed02bb2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -276,9 +276,14 @@
home-library-model
provided
-
-
-
+
+
+
+ org.gcube.portlets.user
+ uri-resolver-manager
+ [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)
+
+
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/StatAlgoImporterController.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/StatAlgoImporterController.java
index b5f7738..976c9af 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/StatAlgoImporterController.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/StatAlgoImporterController.java
@@ -3,8 +3,8 @@ package org.gcube.portlets.user.statisticalalgorithmsimporter.client;
import java.util.Date;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.DeleteItemEvent;
-import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.InputSaveEvent;
-import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.InputSaveReadyEvent;
+import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.InputReadyEvent;
+import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.InputRequestEvent;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.MainCodeSetEvent;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.SessionExpiredEvent;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.StatAlgoImporterRibbonEvent;
@@ -42,7 +42,15 @@ public class StatAlgoImporterController {
@SuppressWarnings("unused")
private BorderLayoutContainer mainPanel;
private ProjectManager pm;
+
+ private enum InputRequestType {
+ Save,
+ SoftwareCreate;
+ }
+ private InputRequestType inputRequestType;
+
+
public StatAlgoImporterController() {
eventBus = new SimpleEventBus();
pm = new ProjectManager(eventBus);
@@ -199,13 +207,13 @@ public class StatAlgoImporterController {
});
- eventBus.addHandler(InputSaveReadyEvent.TYPE,
- new InputSaveReadyEvent.InputSaveReadyEventHandler() {
+ eventBus.addHandler(InputReadyEvent.TYPE,
+ new InputReadyEvent.InputReadyEventHandler() {
@Override
- public void onInputSaveReady(InputSaveReadyEvent event) {
- Log.debug("Catch InputSaveReadyEvent");
- doInputSaveReadyCommand(event);
+ public void onInputReady(InputReadyEvent event) {
+ Log.debug("Catch InputReadyEvent");
+ doInputReadyCommand(event);
}
});
@@ -235,6 +243,7 @@ public class StatAlgoImporterController {
showAddResourceDialog();
break;
case SOFTWARE_CREATE:
+ softwareCreateRequest();
break;
case HELP:
break;
@@ -244,17 +253,36 @@ public class StatAlgoImporterController {
}
}
- protected void doInputSaveReadyCommand(InputSaveReadyEvent event) {
- pm.saveProject(event.getInputData());
-
+ private void doInputReadyCommand(InputReadyEvent event) {
+ switch(inputRequestType){
+ case Save:
+ pm.saveProject(event.getInputData());
+ break;
+ case SoftwareCreate:
+ pm.createSofware(event.getInputData());
+ break;
+ default:
+ break;
+
+ }
+
}
-
+
private void projectSaveRequest() {
- InputSaveEvent inputSaveEvent = new InputSaveEvent();
- eventBus.fireEvent(inputSaveEvent);
- Log.debug("ProjectSaveRequest: " + inputSaveEvent);
+ inputRequestType=InputRequestType.Save;
+ InputRequestEvent inputRequestEvent = new InputRequestEvent();
+ eventBus.fireEvent(inputRequestEvent);
+ Log.debug("ProjectSaveRequest: " + inputRequestEvent);
+ }
+
+ private void softwareCreateRequest() {
+ inputRequestType=InputRequestType.SoftwareCreate;
+ InputRequestEvent inputRequestEvent = new InputRequestEvent();
+ eventBus.fireEvent(inputRequestEvent);
+ Log.debug("SoftwareCreateRequest: " + inputRequestEvent);
}
+
private void showCreateProjectDialog() {
pm.createProject();
@@ -269,7 +297,9 @@ public class StatAlgoImporterController {
private void showAddResourceDialog() {
pm.addResource();
}
-
+
+
+
private void doMainCodeSetCommand(MainCodeSetEvent event) {
ItemDescription itemDescription = event.getItemDescription();
if (itemDescription != null && itemDescription.getId() != null) {
@@ -286,6 +316,9 @@ public class StatAlgoImporterController {
}
+
+
+
@SuppressWarnings("unused")
private void showCodeUploadDialog() {
CodeUploadDialog codeUploadDialog = new CodeUploadDialog(eventBus);
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/InputReadyEvent.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/InputReadyEvent.java
new file mode 100644
index 0000000..e5ba731
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/InputReadyEvent.java
@@ -0,0 +1,66 @@
+package org.gcube.portlets.user.statisticalalgorithmsimporter.client.event;
+
+import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.InputData;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+/**
+ * Input Save Ready Event
+ *
+ *
+ * @author "Giancarlo Panichi" g.panichi@isti.cnr.it
+ *
+ */
+public class InputReadyEvent extends
+ GwtEvent {
+
+ public static Type TYPE = new Type();
+ private InputData inputData;
+
+ public interface InputReadyEventHandler extends EventHandler {
+ void onInputReady(InputReadyEvent event);
+ }
+
+ public interface HasInputReadyEventHandler extends HasHandlers {
+ public HandlerRegistration addInputReadyEventHandler(
+ InputReadyEventHandler handler);
+ }
+
+ public InputReadyEvent(InputData inputData) {
+ this.inputData = inputData;
+ }
+
+ @Override
+ protected void dispatch(InputReadyEventHandler handler) {
+ handler.onInputReady(this);
+ }
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ public static Type getType() {
+ return TYPE;
+ }
+
+ public static void fire(HasHandlers source,
+ InputReadyEvent inputSaveReadyEvent) {
+ source.fireEvent(inputSaveReadyEvent);
+ }
+
+ public InputData getInputData() {
+ return inputData;
+ }
+
+ @Override
+ public String toString() {
+ return "InputReadyEvent [inputData=" + inputData + "]";
+ }
+
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/InputRequestEvent.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/InputRequestEvent.java
new file mode 100644
index 0000000..bb56cef
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/InputRequestEvent.java
@@ -0,0 +1,59 @@
+package org.gcube.portlets.user.statisticalalgorithmsimporter.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+/**
+ * Input Save Event
+ *
+ *
+ * @author "Giancarlo Panichi" g.panichi@isti.cnr.it
+ *
+ */
+public class InputRequestEvent extends
+ GwtEvent {
+
+ public static Type TYPE = new Type();
+
+ public interface InputRequestEventHandler extends EventHandler {
+ void onInputRequest(InputRequestEvent event);
+ }
+
+ public interface HasInputRequestEventHandler extends HasHandlers {
+ public HandlerRegistration addInputRequestEventHandler(
+ InputRequestEventHandler handler);
+ }
+
+ public InputRequestEvent() {
+
+ }
+
+ @Override
+ protected void dispatch(InputRequestEventHandler handler) {
+ handler.onInputRequest(this);
+ }
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ public static Type getType() {
+ return TYPE;
+ }
+
+ public static void fire(HasHandlers source, InputRequestEvent inputSaveEvent) {
+ source.fireEvent(inputSaveEvent);
+ }
+
+ @Override
+ public String toString() {
+ return "InputRequestEvent []";
+ }
+
+
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/InputSaveEvent.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/InputSaveEvent.java
deleted file mode 100644
index 6e7ad17..0000000
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/InputSaveEvent.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package org.gcube.portlets.user.statisticalalgorithmsimporter.client.event;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-
-/**
- * Input Save Event
- *
- *
- * @author "Giancarlo Panichi" g.panichi@isti.cnr.it
- *
- */
-public class InputSaveEvent extends
- GwtEvent {
-
- public static Type TYPE = new Type();
-
- public interface InputSaveEventHandler extends EventHandler {
- void onInputSave(InputSaveEvent event);
- }
-
- public interface HasInputSaveEventHandler extends HasHandlers {
- public HandlerRegistration addInputSaveEventHandler(
- InputSaveEventHandler handler);
- }
-
- public InputSaveEvent() {
-
- }
-
- @Override
- protected void dispatch(InputSaveEventHandler handler) {
- handler.onInputSave(this);
- }
-
- @Override
- public Type getAssociatedType() {
- return TYPE;
- }
-
- public static Type getType() {
- return TYPE;
- }
-
- public static void fire(HasHandlers source, InputSaveEvent inputSaveEvent) {
- source.fireEvent(inputSaveEvent);
- }
-
- @Override
- public String toString() {
- return "InputSaveEvent []";
- }
-
-
-
-}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/InputSaveReadyEvent.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/InputSaveReadyEvent.java
deleted file mode 100644
index 025ac42..0000000
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/event/InputSaveReadyEvent.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package org.gcube.portlets.user.statisticalalgorithmsimporter.client.event;
-
-import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.InputData;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-
-/**
- * Input Save Ready Event
- *
- *
- * @author "Giancarlo Panichi" g.panichi@isti.cnr.it
- *
- */
-public class InputSaveReadyEvent extends
- GwtEvent {
-
- public static Type TYPE = new Type();
- private InputData inputData;
-
- public interface InputSaveReadyEventHandler extends EventHandler {
- void onInputSaveReady(InputSaveReadyEvent event);
- }
-
- public interface HasInputSaveReadyEventHandler extends HasHandlers {
- public HandlerRegistration addInputSaveReadyEventHandler(
- InputSaveReadyEventHandler handler);
- }
-
- public InputSaveReadyEvent(InputData inputData) {
- this.inputData = inputData;
- }
-
- @Override
- protected void dispatch(InputSaveReadyEventHandler handler) {
- handler.onInputSaveReady(this);
- }
-
- @Override
- public Type getAssociatedType() {
- return TYPE;
- }
-
- public static Type getType() {
- return TYPE;
- }
-
- public static void fire(HasHandlers source,
- InputSaveReadyEvent inputSaveReadyEvent) {
- source.fireEvent(inputSaveReadyEvent);
- }
-
- public InputData getInputData() {
- return inputData;
- }
-
- @Override
- public String toString() {
- return "InputSaveReadyEvent [inputData=" + inputData + "]";
- }
-
-
-}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/maindata/MainDataPanel.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/maindata/MainDataPanel.java
index 7e025db..06fdec4 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/maindata/MainDataPanel.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/maindata/MainDataPanel.java
@@ -58,17 +58,22 @@ public class MainDataPanel extends SimpleContainer {
return;
}
switch (event.getProjectStatusEventType()) {
+ case ADD_RESOURCE:
+ break;
+ case DELETE_RESOURCE:
+ break;
+ case MAIN_CODE_SET:
+ codeEditPanel.codeUpdate(event.getProject());
+ break;
case OPEN:
addCodeEditPanel(event.getProject());
break;
- case UPDATE:
- codeEditPanel.codeUpdate(event.getProject());
- break;
- case ADD_RESOURCE:
- case DELETE_RESOURCE:
- case MAIN_CODE_SET:
case SAVE:
- break;
+ break;
+ case START:
+ break;
+ case UPDATE:
+ break;
default:
break;
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/project/ProjectManager.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/project/ProjectManager.java
index e01624d..a621271 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/project/ProjectManager.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/project/ProjectManager.java
@@ -54,7 +54,7 @@ public class ProjectManager {
public void onSelectedItem(Item item) {
if (item.getType() == ItemType.FOLDER) {
- openProjectOnServer(item);
+ createProjectOnServer(item);
} else {
UtilsGXT3.info("Attention",
@@ -315,37 +315,73 @@ public class ProjectManager {
});
}
- public void setMainCode(final ItemDescription itemDescription) {
- if(project!=null&& project.getMainCode()!=null&& project.getMainCode().getItemDescription()!=null){
- final ConfirmMessageBox mb = new ConfirmMessageBox("Attention",
- "All previous configurations will be lost. Would you like to change main code?");
- mb.addDialogHideHandler(new DialogHideHandler() {
+ public void createSofware(InputData inputData) {
+ Log.debug("Create Software: " + inputData);
- @Override
- public void onDialogHide(DialogHideEvent event) {
- switch (event.getHideButton()) {
- case NO:
- break;
- case YES:
- setMainCodeOnServer(itemDescription);
- break;
- default:
- break;
+ StatAlgoImporterServiceAsync.INSTANCE.createSoftware(inputData,
+ new AsyncCallback() {
+
+ @Override
+ public void onSuccess(Void result) {
+ fireProjectStatusSoftwareCreatedEvent();
+ UtilsGXT3.info("Create Software", "Software Created!");
+
}
- }
- });
- mb.setWidth(300);
- mb.show();
-
-
+ @Override
+ public void onFailure(Throwable caught) {
+ if (caught instanceof StatAlgoImporterSessionExpiredException) {
+ eventBus.fireEvent(new SessionExpiredEvent(
+ SessionExpiredType.EXPIREDONSERVER));
+ } else {
+ Log.error("Error in create software: "
+ + caught.getLocalizedMessage());
+ UtilsGXT3.alert("Error",
+ caught.getLocalizedMessage());
+ }
+ caught.printStackTrace();
+
+ }
+ });
+
+ }
+
+ public void setMainCode(final ItemDescription itemDescription) {
+ if (project != null) {
+ if (project.getMainCode() != null
+ && project.getMainCode().getItemDescription() != null) {
+ final ConfirmMessageBox mb = new ConfirmMessageBox("Attention",
+ "All previous configurations will be lost. Would you like to change main code?");
+ mb.addDialogHideHandler(new DialogHideHandler() {
+
+ @Override
+ public void onDialogHide(DialogHideEvent event) {
+ switch (event.getHideButton()) {
+ case NO:
+ break;
+ case YES:
+ setMainCodeOnServer(itemDescription);
+ break;
+ default:
+ break;
+ }
+
+ }
+ });
+ mb.setWidth(300);
+ mb.show();
+ } else {
+ setMainCodeOnServer(itemDescription);
+ }
+
+ } else {
+
}
-
-
- }
-
- private void setMainCodeOnServer(final ItemDescription itemDescription){
-
+
+ }
+
+ private void setMainCodeOnServer(final ItemDescription itemDescription) {
+
Log.debug("Set Main Code: " + itemDescription);
StatAlgoImporterServiceAsync.INSTANCE.setMainCode(itemDescription,
new AsyncCallback() {
@@ -428,7 +464,6 @@ public class ProjectManager {
}
protected void fireProjectStatusDeleteEvent() {
- // TODO Auto-generated method stub
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(
ProjectStatusEventType.DELETE_RESOURCE, project);
eventBus.fireEvent(projectStatusEvent);
@@ -441,7 +476,7 @@ public class ProjectManager {
eventBus.fireEvent(projectStatusEvent);
Log.debug("ProjectStatusEvent fired! " + projectStatusEvent);
}
-
+
protected void fireProjectStatusMainCodeSetEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(
ProjectStatusEventType.MAIN_CODE_SET, project);
@@ -449,6 +484,13 @@ public class ProjectManager {
Log.debug("ProjectStatusEvent fired! " + projectStatusEvent);
}
+ protected void fireProjectStatusSoftwareCreatedEvent() {
+ ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(
+ ProjectStatusEventType.SOFTWARE_CREATED, project);
+ eventBus.fireEvent(projectStatusEvent);
+ Log.debug("ProjectStatusEvent fired! " + projectStatusEvent);
+ }
+
protected void fireProjectStatusStartEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterService.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterService.java
index 27e1a13..ec2ca2b 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterService.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterService.java
@@ -64,6 +64,6 @@ public interface StatAlgoImporterService extends RemoteService {
public void saveCode(String code) throws StatAlgoImporterServiceException;
- public void createAlgorithm() throws StatAlgoImporterServiceException;
+ public void createSoftware(InputData inputData) throws StatAlgoImporterServiceException;
}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterServiceAsync.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterServiceAsync.java
index a3a4c2a..a60cbe1 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterServiceAsync.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/rpc/StatAlgoImporterServiceAsync.java
@@ -55,6 +55,6 @@ public interface StatAlgoImporterServiceAsync {
void saveCode(String code, AsyncCallback asyncCallback);
- void createAlgorithm(AsyncCallback callback);
+ void createSoftware(InputData inputData, AsyncCallback callback);
}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/explorer/ExplorerProjectPanel.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/explorer/ExplorerProjectPanel.java
index d4fd32f..2195533 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/explorer/ExplorerProjectPanel.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/explorer/ExplorerProjectPanel.java
@@ -116,6 +116,8 @@ public class ExplorerProjectPanel extends ContentPanel {
break;
case MAIN_CODE_SET:
break;
+ case SOFTWARE_CREATED:
+ reloadWSResourceExplorerPanel();
default:
break;
}
@@ -242,7 +244,7 @@ public class ExplorerProjectPanel extends ContentPanel {
@Override
public void onSelect(SelectEvent event) {
- reloadWSResourceExplorerPanel(event);
+ reloadWSResourceExplorerPanel();
}
@@ -270,7 +272,7 @@ public class ExplorerProjectPanel extends ContentPanel {
}
}
- protected void reloadWSResourceExplorerPanel(SelectEvent event) {
+ protected void reloadWSResourceExplorerPanel() {
if(wsResourcesExplorerPanel!=null){
wsResourcesExplorerPanel.refreshRootFolderView();
}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariableMessages.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariableMessages.java
index 066146b..421098c 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariableMessages.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariableMessages.java
@@ -20,5 +20,9 @@ public interface InputVariableMessages extends Messages {
@DefaultMessage("Interpreter")
String interpreterInfo();
+ @DefaultMessage("Info")
+ String projectInfo();
+
+
}
\ No newline at end of file
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariablePanel.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariablePanel.java
index 9fbfa09..7e4f342 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariablePanel.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariablePanel.java
@@ -1,6 +1,6 @@
package org.gcube.portlets.user.statisticalalgorithmsimporter.client.tools.input;
-import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.InputSaveEvent;
+import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.InputRequestEvent;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.NewSelectedRowsVariableEvent;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.ProjectStatusEvent;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.SelectedRowsVariables;
@@ -67,13 +67,13 @@ public class InputVariablePanel extends ContentPanel {
}
});
- eventBus.addHandler(InputSaveEvent.TYPE,
- new InputSaveEvent.InputSaveEventHandler() {
+ eventBus.addHandler(InputRequestEvent.TYPE,
+ new InputRequestEvent.InputRequestEventHandler() {
@Override
- public void onInputSave(InputSaveEvent event) {
- Log.debug("Catch InputSaveEvent");
- manageInputSaveEvents(event);
+ public void onInputRequest(InputRequestEvent event) {
+ Log.debug("Catch InputRequestEvent");
+ manageInputRequestEvents(event);
}
});
@@ -102,9 +102,8 @@ public class InputVariablePanel extends ContentPanel {
}
- protected void manageInputSaveEvents(InputSaveEvent event) {
- inputVariableTabPanel.saveInput();
-
+ protected void manageInputRequestEvents(InputRequestEvent event) {
+ inputVariableTabPanel.requestInput();
}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariableTabPanel.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariableTabPanel.java
index 329610c..9624ea3 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariableTabPanel.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/InputVariableTabPanel.java
@@ -1,6 +1,6 @@
package org.gcube.portlets.user.statisticalalgorithmsimporter.client.tools.input;
-import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.InputSaveReadyEvent;
+import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.InputReadyEvent;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.SelectedRowsVariables;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.InputData;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project;
@@ -25,6 +25,7 @@ public class InputVariableTabPanel extends TabPanel {
private EnvironmentVariablesPanel enviromentVariablesPanel;
private SelectedRowsPanel selectedRowsPanel;
private InterpreterInfoPanel interpreterInfoPanel;
+ private ProjectInfoPanel projectInfoPanel;
public InputVariableTabPanel(EventBus eventBus,
InputVariablePanel toolBoxPanel) {
@@ -50,6 +51,7 @@ public class InputVariableTabPanel extends TabPanel {
addEnvironmentVariablesPanel(project);
addSelectedRowsPanel(project);
addInterpreterInfoPanel(project);
+ addProjectInfoPanel(project);
setActiveWidget(getWidget(0));
}
@@ -92,7 +94,7 @@ public class InputVariableTabPanel extends TabPanel {
enviromentVariablesPanel.update(project);
selectedRowsPanel.update(project);
interpreterInfoPanel.update(project);
-
+ projectInfoPanel.update(project);
forceLayout();
} catch (Throwable e) {
Log.error("Error in InputVariableTabPanel: "
@@ -101,27 +103,33 @@ public class InputVariableTabPanel extends TabPanel {
}
}
- public void saveInput() {
- InputData inputVariables = new InputData();
+ public void requestInput() {
+ InputData inputData = new InputData();
if (enviromentVariablesPanel != null) {
- inputVariables.setListEnvironmentVariables(enviromentVariablesPanel
+ inputData.setListEnvironmentVariables(enviromentVariablesPanel
.getEnvironmentVariables());
}
if (selectedRowsPanel != null) {
- inputVariables.setListSelectedRows(selectedRowsPanel
+ inputData.setListSelectedRows(selectedRowsPanel
.getSelectedRows());
}
if (interpreterInfoPanel != null) {
- inputVariables.setInterpreterInfo(interpreterInfoPanel
+ inputData.setInterpreterInfo(interpreterInfoPanel
.getInterpreterInfo());
}
+
+ if (projectInfoPanel != null) {
+ inputData.setProjectInfo(projectInfoPanel
+ .getProjectInfo());
+ }
+
- InputSaveReadyEvent inputSaveReadyEvent = new InputSaveReadyEvent(
- inputVariables);
- eventBus.fireEvent(inputSaveReadyEvent);
- Log.debug("Fired InputSaveReadyEvent");
+ InputReadyEvent inputReadyEvent = new InputReadyEvent(
+ inputData);
+ eventBus.fireEvent(inputReadyEvent);
+ Log.debug("Fired InputReadyEvent");
}
@@ -155,6 +163,17 @@ public class InputVariableTabPanel extends TabPanel {
add(interpreterInfoPanel, interpreterInfoPanelItemConf);
}
+
+ private void addProjectInfoPanel(Project project) {
+ TabItemConfig projectInfoPanelItemConf = new TabItemConfig(
+ msgs.projectInfo(), false);
+
+ projectInfoPanel = new ProjectInfoPanel(project, eventBus);
+ projectInfoPanel.setHeaderVisible(false);
+ add(projectInfoPanel, projectInfoPanelItemConf);
+
+ }
+
public void addSelectedRowsVariable(
SelectedRowsVariables selectedRowsVariable) {
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/ProjectInfoPanel.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/ProjectInfoPanel.java
new file mode 100644
index 0000000..59ff968
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/tools/input/ProjectInfoPanel.java
@@ -0,0 +1,141 @@
+package org.gcube.portlets.user.statisticalalgorithmsimporter.client.tools.input;
+
+import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project;
+import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectInfo;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.google.gwt.event.shared.EventBus;
+import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode;
+import com.sencha.gxt.core.client.util.Margins;
+import com.sencha.gxt.widget.core.client.ContentPanel;
+import com.sencha.gxt.widget.core.client.container.MarginData;
+import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
+import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
+import com.sencha.gxt.widget.core.client.form.FieldLabel;
+import com.sencha.gxt.widget.core.client.form.TextField;
+
+/**
+ *
+ * @author giancarlo email: g.panichi@isti.cnr.it
+ *
+ */
+public class ProjectInfoPanel extends ContentPanel {
+
+ @SuppressWarnings("unused")
+ private EventBus eventBus;
+ private TextField projectName;
+ private TextField projectDescription;
+ private TextField projectClassName;
+
+ public ProjectInfoPanel(Project project, EventBus eventBus) {
+ super();
+ Log.debug("ProjectInfoPanel");
+ this.eventBus = eventBus;
+
+ // msgs = GWT.create(ServiceCategoryMessages.class);
+ try {
+ init();
+ create(project);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void init() {
+ setHeaderVisible(false);
+ setResize(true);
+ setBodyBorder(false);
+ setBorders(false);
+ forceLayoutOnResize = true;
+ }
+
+ private void create(Project project) {
+
+ projectName = new TextField();
+ projectName.setAllowBlank(false);
+ projectName.setEmptyText("Enter name...");
+ FieldLabel projectNameLabel = new FieldLabel(projectName, "Name");
+
+ projectDescription = new TextField();
+ projectDescription.setAllowBlank(false);
+ projectDescription.setEmptyText("Enter description...");
+ FieldLabel projectDescriptionLabel = new FieldLabel(projectDescription,
+ "Description");
+
+ projectClassName = new TextField();
+ projectClassName.setAllowBlank(false);
+ projectClassName.setEmptyText("Enter class name...");
+ FieldLabel projectClassNameLabel = new FieldLabel(projectClassName,
+ "Class Name");
+
+ if (project != null && project.getInputData()!=null && project.getInputData().getProjectInfo() != null) {
+
+ if (project.getInputData().getProjectInfo().getName() != null) {
+ projectName.setValue(project.getInputData().getProjectInfo().getName());
+ }
+ if (project.getInputData().getProjectInfo().getDescription() != null) {
+ projectDescription.setValue(project.getInputData().getProjectInfo()
+ .getDescription());
+ }
+ if (project.getInputData().getProjectInfo().getClassName() != null) {
+ projectClassName.setValue(project.getInputData().getProjectInfo()
+ .getClassName());
+ }
+
+ }
+
+ VerticalLayoutContainer vlc = new VerticalLayoutContainer();
+ vlc.setAdjustForScroll(false);
+ vlc.setScrollMode(ScrollMode.NONE);
+
+ vlc.add(projectNameLabel, new VerticalLayoutData(1, -1, new Margins(5,
+ 0, 5, 0)));
+ vlc.add(projectDescriptionLabel, new VerticalLayoutData(1, -1,
+ new Margins(5, 0, 5, 0)));
+ vlc.add(projectClassNameLabel, new VerticalLayoutData(1, -1,
+ new Margins(5, 0, 5, 0)));
+
+ add(vlc, new MarginData(new Margins(0)));
+
+ }
+
+ public void update(Project project) {
+ Log.debug("Update Project Info: " + project);
+ if (project != null && project.getInputData()!=null && project.getInputData().getProjectInfo() != null) {
+
+ if (project.getInputData().getProjectInfo().getName() != null) {
+ projectName.setValue(project.getInputData().getProjectInfo().getName());
+ } else {
+ projectName.clear();
+ }
+ if (project.getInputData().getProjectInfo().getDescription() != null) {
+ projectDescription.setValue(project.getInputData().getProjectInfo()
+ .getDescription());
+ } else {
+ projectDescription.clear();
+ }
+ if (project.getInputData().getProjectInfo().getClassName() != null) {
+ projectClassName.setValue(project.getInputData().getProjectInfo()
+ .getClassName());
+ } else {
+ projectClassName.clear();
+ }
+
+ } else {
+ projectName.clear();
+ projectDescription.clear();
+ projectClassName.clear();
+ }
+
+ }
+
+ public ProjectInfo getProjectInfo() {
+ String name = projectName.getCurrentValue();
+ String description = projectDescription.getCurrentValue();
+ String className = projectClassName.getCurrentValue();
+
+ return new ProjectInfo(name, description, className);
+
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/type/ProjectStatusEventType.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/type/ProjectStatusEventType.java
index 9cc6526..57eba1b 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/type/ProjectStatusEventType.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/client/type/ProjectStatusEventType.java
@@ -13,6 +13,8 @@ public enum ProjectStatusEventType {
UPDATE,
ADD_RESOURCE,
DELETE_RESOURCE,
+ SOFTWARE_CREATED,
SAVE;
+
}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/StatAlgoImporterServiceImpl.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/StatAlgoImporterServiceImpl.java
index eac468a..87d79dd 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/StatAlgoImporterServiceImpl.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/StatAlgoImporterServiceImpl.java
@@ -355,14 +355,16 @@ public class StatAlgoImporterServiceImpl extends RemoteServiceServlet implements
@Override
- public void createAlgorithm() throws StatAlgoImporterServiceException {
+ public void createSoftware(InputData inputData) throws StatAlgoImporterServiceException {
try {
HttpSession session = this.getThreadLocalRequest().getSession();
ASLSession aslSession = SessionUtil.getAslSession(session);
- logger.debug("createAlgorithm()");
+ logger.debug("createSoftware(): "+inputData);
Project project = SessionUtil.getProjectSession(session);
if (project != null) {
- ProjectBuilder projectBuilder=new ProjectBuilder(project, aslSession);
+ project.setInputData(inputData);
+ SessionUtil.setProjectSession(session,project);
+ ProjectBuilder projectBuilder=new ProjectBuilder(project, aslSession, session);
projectBuilder.build();
} else {
throw new StatAlgoImporterServiceException("No project open!");
@@ -373,7 +375,7 @@ public class StatAlgoImporterServiceImpl extends RemoteServiceServlet implements
e.printStackTrace();
throw e;
} catch (Throwable e) {
- logger.error("createAlgorithm(): " + e.getLocalizedMessage(), e);
+ logger.error("createSoftware(): " + e.getLocalizedMessage(), e);
e.printStackTrace();
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/generator/AlgorithmGenerator.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/generator/AlgorithmGenerator.java
index 4c44ce6..3812f85 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/generator/AlgorithmGenerator.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/generator/AlgorithmGenerator.java
@@ -5,6 +5,7 @@ import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -43,8 +44,8 @@ public class AlgorithmGenerator {
public Path createAlgorithm() throws StatAlgoImporterServiceException {
try {
- Path tempFile = Files.createTempFile(project.getClassName(),
- EXTENTION_JAVA);
+ Path tempFile = Files.createTempFile(project.getInputData()
+ .getProjectInfo().getClassName(), EXTENTION_JAVA);
List lines = createJavaCode();
Files.write(tempFile, lines, Charset.defaultCharset(),
@@ -65,7 +66,9 @@ public class AlgorithmGenerator {
String mainScriptRelativePath = retrieveMainScriptRelativePath();
String packageUrl = retrievePackageUrl();
- List code = Arrays
+ ArrayList code = new ArrayList();
+
+ code.addAll(Arrays
.asList("package org.gcube.dataanalysis.executor.rscripts;",
"",
"import java.io.File;",
@@ -75,24 +78,26 @@ public class AlgorithmGenerator {
"import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;",
"import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.PrimitiveTypes;",
"import org.gcube.dataanalysis.executor.rscripts.generic.GenericRScript;",
- "", "public class " + project.getClassName()
+ "", "public class "
+ + project.getInputData().getProjectInfo()
+ .getClassName()
+ " extends GenericRScript {", "",
" public static enum operators {",
" EQUAL, NOT_EQUAL, CONTAINS, BEGINS_WITH, ENDS_WITH",
- " };",
-
- " @Override", " public String getDescription() {",
- " return \"" + project.getDescription() + "\";", " }",
- "", " protected void initVariables(){",
+ " };", "", " @Override",
+ " public String getDescription() {", " return \""
+ + project.getInputData().getProjectInfo()
+ .getDescription() + "\";", " }", "",
+ " protected void initVariables(){",
" mainScriptName=\"" + mainScriptRelativePath + "\";",
" packageURL=\"" + packageUrl + "\";",
- " environmentalvariables = new ArrayList();");
+ " environmentalvariables = new ArrayList();"));
for (EnvironmentVariables envVariable : project.getInputData()
.getListEnvironmentVariables()) {
code.add(" environmentalvariables.add(\"" + envVariable.getName()
- + "\")");
+ + "\");");
}
for (SelectedRowsVariables selVariable : project.getInputData()
@@ -100,11 +105,11 @@ public class AlgorithmGenerator {
switch (selVariable.getIoType()) {
case INPUT:
code.add(" inputvariables.add(\"" + selVariable.getName()
- + "\")");
+ + "\");");
break;
case OUTPUT:
code.add(" outputvariables.add(\"" + selVariable.getName()
- + "\")");
+ + "\");");
break;
default:
break;
@@ -113,11 +118,13 @@ public class AlgorithmGenerator {
}
code.add(" }");
+ code.add("");
code.add(" @Override");
code.add(" protected void setInputParameters() {");
createInputParameters(code);
code.add(" }");
+ code.add("");
code.add(" @Override");
code.add(" public StatisticalType getOutput() {");
createOutputParameters(code);
@@ -128,7 +135,7 @@ public class AlgorithmGenerator {
return code;
}
- private void createInputParameters(List code) {
+ private void createInputParameters(ArrayList code) {
for (SelectedRowsVariables selVariable : project.getInputData()
.getListSelectedRows()) {
@@ -200,7 +207,7 @@ public class AlgorithmGenerator {
* STRING, NUMBER, ENUMERATED, CONSTANT, RANDOM, FILE, MAP, BOOLEAN, IMAGES
*/
- private void createOutputParameters(List code) {
+ private void createOutputParameters(ArrayList code) {
for (SelectedRowsVariables selVariable : project.getInputData()
.getListSelectedRows()) {
if (selVariable.getIoType().compareTo(IOType.OUTPUT) == 0) {
@@ -268,11 +275,24 @@ public class AlgorithmGenerator {
.getPath();
String mainCodePath = project.getMainCode().getItemDescription()
.getPath();
- return mainCodePath.substring(projectPath.length());
+
+ String relativePath = project.getProjectFolder().getItemDescription()
+ .getName()
+ + mainCodePath.substring(projectPath.length());
+ return relativePath;
+
}
private String retrievePackageUrl() {
- return project.getProjectTarget().getPackageUrl().getPublicLink();
+ String packageUrl = "";
+ if (project.getProjectTarget() != null
+ && project.getProjectTarget().getPackageUrl() != null) {
+ if (project.getProjectTarget().getPackageUrl().getPublicLink() != null) {
+ packageUrl = project.getProjectTarget().getPackageUrl()
+ .getPublicLink();
+ }
+ }
+ return packageUrl;
}
}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/generator/IntegrationInfoGenerator.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/generator/IntegrationInfoGenerator.java
new file mode 100644
index 0000000..09817af
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/generator/IntegrationInfoGenerator.java
@@ -0,0 +1,87 @@
+package org.gcube.portlets.user.statisticalalgorithmsimporter.server.generator;
+
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardOpenOption;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
+import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.InterpreterPackageInfo;
+import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author Giancarlo Panichi email: g.panichi@isti.cnr.it
+ *
+ */
+public class IntegrationInfoGenerator {
+ private static final String EXTENTION_JAVA = ".txt";
+ public static final Logger logger = LoggerFactory
+ .getLogger(IntegrationInfoGenerator.class);
+
+ private Project project;
+
+ public IntegrationInfoGenerator(Project project) {
+ super();
+ this.project = project;
+ }
+
+ @Override
+ public String toString() {
+ return "IntegrationInfoGenerator [project=" + project + "]";
+ }
+
+ public Path createIntegrationInfo() throws StatAlgoImporterServiceException {
+
+ try {
+ Path tempFile = Files.createTempFile(project.getInputData()
+ .getProjectInfo().getClassName(), EXTENTION_JAVA);
+
+ List lines = createInfo();
+ Files.write(tempFile, lines, Charset.defaultCharset(),
+ StandardOpenOption.WRITE);
+ logger.debug(tempFile.toString());
+ return tempFile;
+
+ } catch (IOException e) {
+ logger.error(e.getLocalizedMessage());
+ e.printStackTrace();
+ throw new StatAlgoImporterServiceException(e.getLocalizedMessage(),
+ e);
+ }
+
+ }
+
+ private List createInfo() {
+ ArrayList infos = new ArrayList();
+ if (project.getInputData().getInterpreterInfo() != null) {
+ if (project.getInputData().getInterpreterInfo().getVersion() != null) {
+ infos.add("Interpreter Version: "
+ + project.getInputData().getInterpreterInfo()
+ .getVersion());
+ } else {
+ infos.add("Interpreter Version: Any");
+ }
+ infos.add("");
+ if (project.getInputData().getInterpreterInfo()
+ .getInterpreterPackagesInfo() != null
+ && project.getInputData().getInterpreterInfo()
+ .getInterpreterPackagesInfo().size() > 0) {
+ infos.add("Packages:");
+ for (InterpreterPackageInfo info : project.getInputData()
+ .getInterpreterInfo().getInterpreterPackagesInfo()) {
+ infos.add("" + info.getName() + " " + info.getVersion());
+ }
+ }
+
+ }
+
+ return infos;
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/generator/ProjectBuilder.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/generator/ProjectBuilder.java
index cb3f034..8662a3a 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/generator/ProjectBuilder.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/generator/ProjectBuilder.java
@@ -1,14 +1,24 @@
package org.gcube.portlets.user.statisticalalgorithmsimporter.server.generator;
+import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
+import javax.servlet.http.HttpSession;
+
import org.gcube.application.framework.core.session.ASLSession;
+import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
+import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder;
+import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
+import org.gcube.portlets.user.statisticalalgorithmsimporter.server.SessionUtil;
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.storage.FilesStorage;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project;
+import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectTarget;
+import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -22,29 +32,92 @@ public class ProjectBuilder {
private static final String ALGORITHM_MIMETYPE = "text/plain";
private static final String ALGORITHM_DESCRIPTION = "Statistical Algorithm Java Code";
private static final String ALGORITHM_EXTENTION = ".java";
+ private static final String INTEGRATION_INFO_NAME = "IntegrationInfo";
+ private static final String INTEGRATION_INFO_MIMETYPE = "text/plain";
+ private static final String INTEGRATION_INFO_DESCRIPTION = "Integration Info";
+ private static final String INTEGRATION_INFO_EXTENTION = ".txt";
+ private static final String PROJECT_PACKAGE_MIMETYPE = "application/zip";
+ private static final String PROJECT_PACKAGE_DESCRIPTION = "Statical Algorithm Project Package";
+ private static final String PROJECT_PACKAGE_EXTENTION = ".zip";
public static final Logger logger = LoggerFactory
.getLogger(ProjectBuilder.class);
private Project project;
private ASLSession aslSession;
+ private HttpSession session;
+ private ProjectTarget projectTarget;
- public ProjectBuilder(Project project, ASLSession aslSession) {
+ public ProjectBuilder(Project project, ASLSession aslSession,
+ HttpSession session) {
this.project = project;
this.aslSession = aslSession;
+ this.session = session;
+ }
+
+ private void checkInfo() throws StatAlgoImporterServiceException {
+ if (project == null) {
+ throw new StatAlgoImporterServiceException(
+ "Attention No Project Found!");
+ }
+
+ if (project.getProjectFolder() == null) {
+ throw new StatAlgoImporterServiceException(
+ "Attention No Project Folder Found!");
+ }
+
+ if (project.getInputData() == null) {
+ throw new StatAlgoImporterServiceException(
+ "Attention No Input Set!");
+ }
+
+ if (project.getInputData().getProjectInfo() == null) {
+ throw new StatAlgoImporterServiceException(
+ "Attention No Project Information Set!");
+ }
+
+ if (project.getInputData().getProjectInfo().getClassName() == null) {
+ throw new StatAlgoImporterServiceException(
+ "Attention No Project Class Name Set!");
+ }
+
+ if (project.getMainCode() == null) {
+ throw new StatAlgoImporterServiceException(
+ "Attention No Main Code Set");
+ }
+
+ if (project.getInputData() == null) {
+ throw new StatAlgoImporterServiceException(
+ "Attention No Input Data Set!");
+ }
+
}
public void build() throws StatAlgoImporterServiceException {
+ checkInfo();
+ createProjectPackage();
+ createAlgorithm();
+ createIntegrationInfo();
+
+ SessionUtil.setProjectSession(session, project);
+
+ }
+
+ protected void createAlgorithm() throws StatAlgoImporterServiceException {
AlgorithmGenerator algorithmGenerator = new AlgorithmGenerator(project);
Path algorithm = algorithmGenerator.createAlgorithm();
FilesStorage filesStorage = new FilesStorage();
+ WorkspaceItem algorithmItem;
+
try {
- filesStorage.saveItemOnWorkspace(aslSession.getUsername(),
+ algorithmItem = filesStorage.createItemOnWorkspace(
+ aslSession.getUsername(),
Files.newInputStream(algorithm, StandardOpenOption.READ),
- project.getClassName() + ALGORITHM_EXTENTION,
- ALGORITHM_DESCRIPTION, ALGORITHM_MIMETYPE, project
- .getProjectFolder().getItemDescription().getId());
+ project.getInputData().getProjectInfo().getClassName()
+ + ALGORITHM_EXTENTION, ALGORITHM_DESCRIPTION,
+ ALGORITHM_MIMETYPE, project.getProjectTarget()
+ .getTargetFolder().getId());
} catch (IOException e) {
logger.error(e.getLocalizedMessage());
e.printStackTrace();
@@ -52,6 +125,142 @@ public class ProjectBuilder {
e);
}
+ ItemDescription codeSource;
+ try {
+ codeSource = new ItemDescription(algorithmItem.getId(),
+ algorithmItem.getName(), algorithmItem.getOwner()
+ .getPortalLogin(), algorithmItem.getPath(),
+ algorithmItem.getType().name());
+ codeSource.setPublicLink(algorithmItem.getPublicLink(true));
+ } catch (InternalErrorException e) {
+ logger.error(e.getLocalizedMessage());
+ e.printStackTrace();
+ throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
+
+ }
+
+ projectTarget.setCodeSource(codeSource);
+ logger.debug("ProjectTarget: " + projectTarget);
+ project.setProjectTarget(projectTarget);
+
+ }
+
+ private void createProjectPackage() throws StatAlgoImporterServiceException {
+ FilesStorage filesStorage = new FilesStorage();
+ filesStorage.deleteTargetFolder(aslSession.getUsername(), project
+ .getProjectFolder().getItemDescription().getId());
+
+ File projectPackageFile = filesStorage.zipFolder(
+ aslSession.getUsername(), project.getProjectFolder()
+ .getItemDescription().getId());
+
+ WorkspaceFolder targetFolder = filesStorage.createTargetFolder(
+ aslSession.getUsername(), project.getProjectFolder()
+ .getItemDescription().getId());
+ logger.debug("TargetFolder:" + targetFolder);
+
+ ItemDescription tFolder;
+ try {
+ tFolder = new ItemDescription(targetFolder.getId(),
+ targetFolder.getName(), targetFolder.getOwner()
+ .getPortalLogin(), targetFolder.getPath(),
+ targetFolder.getType().name());
+ } catch (InternalErrorException e) {
+ logger.error(e.getLocalizedMessage());
+ e.printStackTrace();
+ throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
+
+ }
+ projectTarget = new ProjectTarget(tFolder);
+
+ InputStream inputStream;
+ try {
+ inputStream = Files.newInputStream(projectPackageFile.toPath(),
+ StandardOpenOption.READ);
+ } catch (IOException e) {
+ logger.error("Error input stream generation: "
+ + e.getLocalizedMessage());
+ e.printStackTrace();
+ throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
+ }
+
+ WorkspaceItem projectPackageItem;
+ try {
+ projectPackageItem = filesStorage.createItemOnWorkspace(
+ aslSession.getUsername(), inputStream, project
+ .getInputData().getProjectInfo().getClassName()
+ + PROJECT_PACKAGE_EXTENTION,
+ PROJECT_PACKAGE_DESCRIPTION, PROJECT_PACKAGE_MIMETYPE,
+ targetFolder.getId());
+ } catch (InternalErrorException e) {
+ logger.error(e.getLocalizedMessage());
+ e.printStackTrace();
+ throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
+
+ }
+
+ logger.debug("ProjectPackageItem:" + projectPackageItem);
+ ItemDescription packageUrl;
+ try {
+ packageUrl = new ItemDescription(projectPackageItem.getId(),
+ projectPackageItem.getName(), projectPackageItem.getOwner()
+ .getPortalLogin(), projectPackageItem.getPath(),
+ projectPackageItem.getType().name());
+ packageUrl.setPublicLink(projectPackageItem.getPublicLink(true));
+ } catch (InternalErrorException e) {
+ logger.error(e.getLocalizedMessage());
+ e.printStackTrace();
+ throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
+
+ }
+
+ projectTarget.setPackageUrl(packageUrl);
+ project.setProjectTarget(projectTarget);
+
+ }
+
+ private void createIntegrationInfo()
+ throws StatAlgoImporterServiceException {
+ IntegrationInfoGenerator integrationInfoGenerator = new IntegrationInfoGenerator(
+ project);
+ Path infoFile = integrationInfoGenerator.createIntegrationInfo();
+
+ FilesStorage filesStorage = new FilesStorage();
+ WorkspaceItem infoItem;
+
+ try {
+ infoItem = filesStorage.createItemOnWorkspace(
+ aslSession.getUsername(),
+ Files.newInputStream(infoFile, StandardOpenOption.READ),
+ INTEGRATION_INFO_NAME
+ + INTEGRATION_INFO_EXTENTION, INTEGRATION_INFO_DESCRIPTION,
+ INTEGRATION_INFO_MIMETYPE, project.getProjectTarget()
+ .getTargetFolder().getId());
+ } catch (IOException e) {
+ logger.error(e.getLocalizedMessage());
+ e.printStackTrace();
+ throw new StatAlgoImporterServiceException(e.getLocalizedMessage(),
+ e);
+ }
+
+ ItemDescription integrationItemDescription;
+ try {
+ integrationItemDescription = new ItemDescription(infoItem.getId(),
+ infoItem.getName(), infoItem.getOwner().getPortalLogin(),
+ infoItem.getPath(), infoItem.getType().name());
+ integrationItemDescription.setPublicLink(infoItem
+ .getPublicLink(true));
+ } catch (InternalErrorException e) {
+ logger.error(e.getLocalizedMessage());
+ e.printStackTrace();
+ throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
+
+ }
+
+ projectTarget.setIntegrationInfo(integrationItemDescription);
+ logger.debug("ProjectTarget: " + projectTarget);
+ project.setProjectTarget(projectTarget);
+
}
}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/storage/FilesStorage.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/storage/FilesStorage.java
index a6720fe..2079575 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/storage/FilesStorage.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/storage/FilesStorage.java
@@ -1,6 +1,8 @@
package org.gcube.portlets.user.statisticalalgorithmsimporter.server.storage;
import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
import java.io.InputStream;
import java.net.URLConnection;
@@ -8,6 +10,7 @@ import org.gcube.common.homelibrary.home.HomeLibrary;
import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException;
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
import org.gcube.common.homelibrary.home.workspace.Workspace;
+import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder;
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
import org.gcube.common.homelibrary.home.workspace.exceptions.InsufficientPrivilegesException;
import org.gcube.common.homelibrary.home.workspace.exceptions.ItemAlreadyExistException;
@@ -15,6 +18,8 @@ import org.gcube.common.homelibrary.home.workspace.exceptions.ItemNotFoundExcept
import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException;
import org.gcube.common.homelibrary.home.workspace.exceptions.WrongDestinationException;
import org.gcube.common.homelibrary.home.workspace.exceptions.WrongItemTypeException;
+import org.gcube.common.homelibrary.home.workspace.folder.items.ExternalFile;
+import org.gcube.common.homelibrary.util.zip.ZipUtil;
import org.gcube.contentmanager.storageclient.model.protocol.smp.SMPUrl;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
import org.slf4j.Logger;
@@ -32,6 +37,7 @@ public class FilesStorage {
private static final String STATISTICAL_ALGORITHM_PROJECT_MIMETYPE = "text/xml";
private static final String STATISTICAL_ALGORITHM_PROJECT_FILE_DESCRIPTION = "Statistical Algorithm Project File";
private static final String STATISTICAL_ALGORITHM_PROJECT_FILE_NAME = "stat_algo.project";
+ private static final String STATISTICAL_ALGORITHM_TARGET_FOLDER_NAME = "Target";
public static final Logger logger = LoggerFactory
.getLogger(FilesStorage.class);
@@ -80,8 +86,66 @@ public class FilesStorage {
}
- public void saveStatisticalAlgorithmProject(String user, InputStream inputStream,
- String folderId) throws StatAlgoImporterServiceException {
+ public void deleteTargetFolder(String user, String folderId)
+ throws StatAlgoImporterServiceException {
+ Workspace ws;
+ try {
+ ws = HomeLibrary.getUserWorkspace(user);
+
+ WorkspaceItem workSpaceItem = ws.getItem(folderId);
+ if (!workSpaceItem.isFolder()) {
+ throw new StatAlgoImporterServiceException(
+ "No valid project folder!");
+ }
+
+ WorkspaceItem target = ws.find(
+ STATISTICAL_ALGORITHM_TARGET_FOLDER_NAME, folderId);
+
+ if (target != null) {
+ ws.removeItems(target.getId());
+ }
+
+ return;
+ } catch (WrongItemTypeException | WorkspaceFolderNotFoundException
+ | InternalErrorException | HomeNotFoundException
+ | ItemNotFoundException | InsufficientPrivilegesException e) {
+ e.printStackTrace();
+ throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
+
+ }
+
+ }
+
+ public WorkspaceFolder createTargetFolder(String user, String folderId)
+ throws StatAlgoImporterServiceException {
+ Workspace ws;
+ try {
+ ws = HomeLibrary.getUserWorkspace(user);
+
+ WorkspaceItem workSpaceItem = ws.getItem(folderId);
+ if (!workSpaceItem.isFolder()) {
+ throw new StatAlgoImporterServiceException(
+ "No valid project folder!");
+ }
+
+ WorkspaceFolder projectTargetFolder = ws.createFolder("Target",
+ "Project Target", folderId);
+
+ return projectTargetFolder;
+ } catch (WorkspaceFolderNotFoundException
+ | InternalErrorException | HomeNotFoundException
+ | ItemNotFoundException | InsufficientPrivilegesException
+ | ItemAlreadyExistException | WrongDestinationException e) {
+ e.printStackTrace();
+ throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
+
+ }
+
+ }
+
+ public void saveStatisticalAlgorithmProject(String user,
+ InputStream inputStream, String folderId)
+ throws StatAlgoImporterServiceException {
Workspace ws;
try {
ws = HomeLibrary.getUserWorkspace(user);
@@ -114,12 +178,10 @@ public class FilesStorage {
}
}
-
-
-
- public void saveItemOnWorkspace(String user, InputStream inputStream, String name,
- String description, String mimeType,
- String folderId) throws StatAlgoImporterServiceException {
+
+ public void saveItemOnWorkspace(String user, InputStream inputStream,
+ String name, String description, String mimeType, String folderId)
+ throws StatAlgoImporterServiceException {
Workspace ws;
try {
ws = HomeLibrary.getUserWorkspace(user);
@@ -130,13 +192,10 @@ public class FilesStorage {
"Destination is not a folder!");
}
- WorkspaceItem projectItem = ws.find(
- name, folderId);
+ WorkspaceItem projectItem = ws.find(name, folderId);
if (projectItem == null) {
- ws.createExternalFile(name,
- description,
- mimeType, inputStream,
+ ws.createExternalFile(name, description, mimeType, inputStream,
folderId);
} else {
ws.updateItem(projectItem.getId(), inputStream);
@@ -154,10 +213,8 @@ public class FilesStorage {
}
- /**
- *
- */
- public InputStream retrieveProjectItemOnWorkspace(String user, String folderId)
+ public WorkspaceItem createItemOnWorkspace(String user, InputStream inputStream,
+ String name, String description, String mimeType, String folderId)
throws StatAlgoImporterServiceException {
Workspace ws;
try {
@@ -166,12 +223,44 @@ public class FilesStorage {
WorkspaceItem workSpaceItem = ws.getItem(folderId);
if (!workSpaceItem.isFolder()) {
throw new StatAlgoImporterServiceException(
- "Folder is not valid item!");
+ "Destination is not a folder!");
}
-
- WorkspaceItem projectItem=ws.find(STATISTICAL_ALGORITHM_PROJECT_FILE_NAME, folderId);
-
- if(projectItem==null){
+
+
+ ExternalFile workspaceItem=ws.createExternalFile(name, description, mimeType, inputStream,
+ folderId);
+
+ return workspaceItem;
+ } catch ( WorkspaceFolderNotFoundException
+ | InternalErrorException | HomeNotFoundException
+ | ItemNotFoundException | InsufficientPrivilegesException
+ | ItemAlreadyExistException | WrongDestinationException e) {
+ e.printStackTrace();
+ throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
+
+ }
+ }
+
+
+ /**
+ *
+ */
+ public InputStream retrieveProjectItemOnWorkspace(String user,
+ String folderId) throws StatAlgoImporterServiceException {
+ Workspace ws;
+ try {
+ ws = HomeLibrary.getUserWorkspace(user);
+
+ WorkspaceItem workSpaceItem = ws.getItem(folderId);
+ if (!workSpaceItem.isFolder()) {
+ throw new StatAlgoImporterServiceException(
+ "Item is not valid folder!");
+ }
+
+ WorkspaceItem projectItem = ws.find(
+ STATISTICAL_ALGORITHM_PROJECT_FILE_NAME, folderId);
+
+ if (projectItem == null) {
throw new StatAlgoImporterServiceException(
"No project found in this folder!");
}
@@ -179,15 +268,13 @@ public class FilesStorage {
return retrieveImputStream(user, projectItem);
} catch (WorkspaceFolderNotFoundException | InternalErrorException
- | HomeNotFoundException | ItemNotFoundException | WrongItemTypeException e) {
+ | HomeNotFoundException | ItemNotFoundException
+ | WrongItemTypeException e) {
e.printStackTrace();
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
}
}
-
-
-
/**
*
*/
@@ -200,7 +287,7 @@ public class FilesStorage {
WorkspaceItem workSpaceItem = ws.getItem(itemId);
if (workSpaceItem.isFolder()) {
throw new StatAlgoImporterServiceException(
- "Folder is not valid item!");
+ "Item is not valid folder!");
}
return retrieveImputStream(user, workSpaceItem);
@@ -247,13 +334,15 @@ public class FilesStorage {
return is;
}
-
-
+
/**
*
- * @param user User
- * @param itemId Item on workspace
- * @param data String to save
+ * @param user
+ * User
+ * @param itemId
+ * Item on workspace
+ * @param data
+ * String to save
* @throws StatAlgoImporterServiceException
*/
public void saveItem(String user, String itemId, String data)
@@ -263,30 +352,58 @@ public class FilesStorage {
ws = HomeLibrary.getUserWorkspace(user);
WorkspaceItem workSpaceItem = ws.getItem(itemId);
- if (workSpaceItem==null) {
+ if (workSpaceItem == null) {
throw new StatAlgoImporterServiceException(
"No item retrieved on workspace!");
} else {
if (workSpaceItem.isFolder()) {
throw new StatAlgoImporterServiceException(
- "Folder is not valid item!");
+ "Item is not valid folder!");
} else {
-
+
}
}
// convert String into InputStream
InputStream is = new ByteArrayInputStream(data.getBytes());
-
+
ws.updateItem(itemId, is);
-
+
return;
-
+
} catch (WorkspaceFolderNotFoundException | InternalErrorException
- | HomeNotFoundException | ItemNotFoundException | InsufficientPrivilegesException | ItemAlreadyExistException | WrongDestinationException e) {
+ | HomeNotFoundException | ItemNotFoundException
+ | InsufficientPrivilegesException | ItemAlreadyExistException
+ | WrongDestinationException e) {
e.printStackTrace();
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
}
}
-
+
+ public File zipFolder(String user, String folderId)
+ throws StatAlgoImporterServiceException {
+ Workspace ws;
+ try {
+ ws = HomeLibrary.getUserWorkspace(user);
+
+ WorkspaceItem workSpaceItem = ws.getItem(folderId);
+ if (!workSpaceItem.isFolder()) {
+ throw new StatAlgoImporterServiceException(
+ "Item is not valid folder!");
+ }
+
+ WorkspaceFolder folder = (WorkspaceFolder) workSpaceItem;
+
+ File fileZip = ZipUtil.zipFolder(folder);
+
+ return fileZip;
+
+ } catch (IOException | InternalErrorException
+ | WorkspaceFolderNotFoundException | HomeNotFoundException
+ | ItemNotFoundException e) {
+ e.printStackTrace();
+ throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
+ }
+
+ }
}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/uriresolver/UriResolverSMIClient.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/uriresolver/UriResolverSMIClient.java
new file mode 100644
index 0000000..e4d8a9a
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/uriresolver/UriResolverSMIClient.java
@@ -0,0 +1,76 @@
+package org.gcube.portlets.user.statisticalalgorithmsimporter.server.uriresolver;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.gcube.application.framework.core.session.ASLSession;
+import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
+import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription;
+import org.gcube.portlets.user.uriresolvermanager.UriResolverManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Client for retrieve link
+ *
+ *
+ * @author giancarlo email: g.panichi@isti.cnr.it
+ *
+ */
+public class UriResolverSMIClient {
+ private static Logger logger = LoggerFactory
+ .getLogger(UriResolverSMIClient.class);
+
+ public UriResolverSMIClient() {
+
+ }
+
+ public String resolve(ItemDescription itemDescription, ASLSession aslSession)
+ throws StatAlgoImporterServiceException {
+ try {
+
+ String link = "";
+
+ logger.debug("Get uri from resolver: " + itemDescription);
+
+ UriResolverManager resolver;
+ Map params = new HashMap();
+ if (itemDescription != null) {
+ resolver = new UriResolverManager();
+ params.put("smp-id", itemDescription.getId());
+ if (itemDescription.getName() == null) {
+ params.put("fileName", "");
+ } else {
+ params.put("fileName", itemDescription.getName());
+ }
+ if (itemDescription.getType() == null) {
+ params.put("contentType", "");
+ } else {
+ params.put("contentType", itemDescription.getType());
+ }
+ logger.debug("Uri Resolver params: " + params);
+ link = resolver.getLink(params, true); // true, link is shorted
+ // otherwise none
+ } else {
+ logger.debug("No valid ItemDescription: "+itemDescription);
+ throw new StatAlgoImporterServiceException (
+ "No valid ItemDescription: "+itemDescription);
+
+ }
+
+ logger.debug("Retrieved Link: " + link);
+ return link;
+
+ } catch (StatAlgoImporterServiceException e) {
+ throw e;
+ } catch (Throwable e) {
+ e.printStackTrace();
+ throw new StatAlgoImporterServiceException(
+ "Error retrieving uri from resolver: "
+ + e.getLocalizedMessage());
+ }
+
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/project/InputData.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/project/InputData.java
index 78e4edd..e95f3f3 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/project/InputData.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/project/InputData.java
@@ -16,21 +16,24 @@ import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.Select
public class InputData implements Serializable {
private static final long serialVersionUID = -2405068429998054485L;
+ private ProjectInfo projectInfo;
+ private InterpreterInfo interpreterInfo;
private ArrayList listEnvironmentVariables;
private ArrayList listSelectedRows;
- private InterpreterInfo interpreterInfo;
-
+
+
public InputData() {
super();
}
public InputData(ArrayList listEnvironmentVariables,
ArrayList listSelectedRows,
- InterpreterInfo interpreterInfo) {
+ InterpreterInfo interpreterInfo, ProjectInfo projectInfo) {
super();
this.listEnvironmentVariables = listEnvironmentVariables;
this.listSelectedRows = listSelectedRows;
this.interpreterInfo = interpreterInfo;
+ this.projectInfo = projectInfo;
}
public ArrayList getListEnvironmentVariables() {
@@ -58,13 +61,23 @@ public class InputData implements Serializable {
public void setInterpreterInfo(InterpreterInfo interpreterInfo) {
this.interpreterInfo = interpreterInfo;
}
+
+ public ProjectInfo getProjectInfo() {
+ return projectInfo;
+ }
+
+ public void setProjectInfo(ProjectInfo projectInfo) {
+ this.projectInfo = projectInfo;
+ }
@Override
public String toString() {
- return "InputData [listEnvironmentVariables="
+ return "InputData [projectInfo=" + projectInfo + ", interpreterInfo="
+ + interpreterInfo + ", listEnvironmentVariables="
+ listEnvironmentVariables + ", listSelectedRows="
- + listSelectedRows + ", interpreterInfo=" + interpreterInfo
- + "]";
+ + listSelectedRows + "]";
}
+
+
}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/project/Project.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/project/Project.java
index 7e452cb..2740212 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/project/Project.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/project/Project.java
@@ -9,12 +9,9 @@ import java.io.Serializable;
*
*/
public class Project implements Serializable {
-
+
private static final long serialVersionUID = -7906477664944910362L;
- private String name;
- private String description;
- private String className;
private ProjectFolder projectFolder;
private MainCode mainCode;
private InputData inputData;
@@ -30,30 +27,6 @@ public class Project implements Serializable {
}
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public String getClassName() {
- return className;
- }
-
- public void setClassName(String className) {
- this.className = className;
- }
-
public MainCode getMainCode() {
return mainCode;
}
@@ -88,15 +61,9 @@ public class Project implements Serializable {
@Override
public String toString() {
- return "Project [name=" + name + ", description=" + description
- + ", className=" + className + ", projectFolder="
- + projectFolder + ", mainCode=" + mainCode + ", inputData="
- + inputData + ", projectTarget=" + projectTarget + "]";
+ return "Project [projectFolder=" + projectFolder + ", mainCode="
+ + mainCode + ", inputData=" + inputData + ", projectTarget="
+ + projectTarget + "]";
}
-
-
-
-
-
}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/project/ProjectInfo.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/project/ProjectInfo.java
new file mode 100644
index 0000000..808d8b9
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/project/ProjectInfo.java
@@ -0,0 +1,59 @@
+package org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project;
+
+import java.io.Serializable;
+
+/**
+ *
+ * @author Giancarlo Panichi email: g.panichi@isti.cnr.it
+ *
+ */
+public class ProjectInfo implements Serializable {
+
+ private static final long serialVersionUID = 7304965177776383842L;
+ private String name;
+ private String description;
+ private String className;
+
+ public ProjectInfo() {
+ super();
+ }
+
+ public ProjectInfo(String name, String description, String className) {
+ super();
+ this.name = name;
+ this.description = description;
+ this.className = className;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
+ @Override
+ public String toString() {
+ return "ProjectInfo [name=" + name + ", description=" + description
+ + ", className=" + className + "]";
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/project/ProjectTarget.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/project/ProjectTarget.java
index 4ae0dca..503f68a 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/project/ProjectTarget.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/project/ProjectTarget.java
@@ -13,14 +13,29 @@ import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.It
public class ProjectTarget implements Serializable {
private static final long serialVersionUID = 480665662744105383L;
+ private ItemDescription targetFolder;
private ItemDescription packageUrl;
private ItemDescription codeSource;
+ private ItemDescription integrationInfo;
private ItemDescription codeJar;
public ProjectTarget() {
super();
}
+ public ProjectTarget(ItemDescription targetFolder) {
+ super();
+ this.targetFolder = targetFolder;
+ }
+
+ public ItemDescription getTargetFolder() {
+ return targetFolder;
+ }
+
+ public void setTargetFolder(ItemDescription targetFolder) {
+ this.targetFolder = targetFolder;
+ }
+
public ItemDescription getPackageUrl() {
return packageUrl;
}
@@ -44,11 +59,26 @@ public class ProjectTarget implements Serializable {
public void setCodeJar(ItemDescription codeJar) {
this.codeJar = codeJar;
}
+
+
+
+ public ItemDescription getIntegrationInfo() {
+ return integrationInfo;
+ }
+
+ public void setIntegrationInfo(ItemDescription integrationInfo) {
+ this.integrationInfo = integrationInfo;
+ }
@Override
public String toString() {
- return "ProjectTarget [packageUrl=" + packageUrl + ", codeSource="
- + codeSource + ", codeJar=" + codeJar + "]";
+ return "ProjectTarget [targetFolder=" + targetFolder + ", packageUrl="
+ + packageUrl + ", codeSource=" + codeSource
+ + ", integrationInfo=" + integrationInfo + ", codeJar="
+ + codeJar + "]";
}
+
+
+
}
diff --git a/src/main/resources/org/gcube/portlets/user/statisticalalgorithmsimporter/statalgoimporter.gwt.xml b/src/main/resources/org/gcube/portlets/user/statisticalalgorithmsimporter/statalgoimporter.gwt.xml
index a39443a..6fd59cb 100644
--- a/src/main/resources/org/gcube/portlets/user/statisticalalgorithmsimporter/statalgoimporter.gwt.xml
+++ b/src/main/resources/org/gcube/portlets/user/statisticalalgorithmsimporter/statalgoimporter.gwt.xml
@@ -51,13 +51,13 @@
name="locale" values="es" /> -->
-
+ />
-
+