You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2011/09/27 22:49:58 UTC

svn commit: r1176614 - in /incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya: ./ appwrapper/ component/gui/ component/registry/

Author: lahiru
Date: Tue Sep 27 20:49:58 2011
New Revision: 1176614

URL: http://svn.apache.org/viewvc?rev=1176614&view=rev
Log:
committing saminda's patch for https://issues.apache.org/jira/browse/AIRAVATA-119, and committing the fix for https://issues.apache.org/jira/browse/AIRAVATA-121.

Modified:
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBaya.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaConfiguration.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaConstants.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionRegistrationWindow.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/gui/JCRRegistryWindow.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/JCRComponentRegistry.java

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBaya.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBaya.java?rev=1176614&r1=1176613&r2=1176614&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBaya.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBaya.java Tue Sep 27 20:49:58 2011
@@ -117,7 +117,7 @@ public class XBaya {
                 } else if ("-workflow".equalsIgnoreCase(arg)) {
                     index++;
                     this.config.setWorkflow(args[index]);
-                } else if ("-xRegistryURL".equalsIgnoreCase(arg)) {
+                } else if ("-RegistryCredentials".equalsIgnoreCase(arg)) {
                     index++;
                     String url = args[index];
                     try {
@@ -201,54 +201,74 @@ public class XBaya {
                         logger.warning(message, e);
                         this.config.addError(new XBayaException(message, e));
                     }
-                } else if ("-myProxyServer".equalsIgnoreCase(arg)) {
+                }  else if ("-registryURL".equalsIgnoreCase(arg)) {
                     index++;
-                    String server = args[index];
-                    if ("null".equalsIgnoreCase(server)) {
-                        // This is a workaround that JNLP doesn't take empty
-                        // string as an argument.
-                        server = null;
-                    }
-                    this.config.setMyProxyServer(server);
-                } else if ("-myProxyPort".equalsIgnoreCase(arg)) {
-                    index++;
-                    String port = args[index];
+                    String registryURL = args[index];
                     try {
-                        this.config.setMyProxyPort(Integer.parseInt(port));
-                    } catch (NumberFormatException e) {
-                        String message = "The myProxyPort must be an integer: " + port;
+                        this.config.setRegistryURL(parseURL(registryURL));
+                    } catch (URISyntaxException e) {
+                        String message = "The message box URL is in wrong format: " + registryURL;
                         logger.warning(message, e);
                         this.config.addError(new XBayaException(message, e));
                     }
-                } else if ("-myProxyUsername".equalsIgnoreCase(arg)) {
-                    index++;
-                    this.config.setMyProxyUsername(args[index]);
-                } else if ("-myProxyPassphrase".equalsIgnoreCase(arg)) {
-                    index++;
-                    this.config.setMyProxyPassphrase(args[index]);
-                } else if ("-myProxyLifetime".equalsIgnoreCase(arg)) {
+                } else if ("-registryUserName".equalsIgnoreCase(arg)) {
+
                     index++;
-                    String lifetime = args[index];
-                    try {
-                        this.config.setMyProxyLifetime(Integer.parseInt(lifetime));
-                    } catch (NumberFormatException e) {
-                        String message = "The myProxyLifetime must be an integer: " + lifetime;
-                        logger.warning(message, e);
-                        this.config.addError(new XBayaException(message, e));
-                    }
-                } else if ("-loadMyProxy".equalsIgnoreCase(arg)) {
+                    this.config.setRegigstryUserName(args[index]);
+                }else if ("-registryPassphrase".equalsIgnoreCase(arg)) {
+
                     index++;
-                    String load = args[index];
-                    if ("true".equalsIgnoreCase(load)) {
-                        this.config.setLoadMyProxy(true);
-                    } else if ("false".equalsIgnoreCase(load)) {
-                        this.config.setLoadMyProxy(false);
-                    } else {
-                        String message = "-loadMyProxy has to be either true or false, not " + load;
-                        logger.warning(message);
-                        this.config.addError(new XBayaException(message));
-                    }
-                } else if ("-width".equalsIgnoreCase(arg)) {
+                    this.config.setRegistryPassphrase(args[index]);
+                }
+// else if ("-myProxyServer".equalsIgnoreCase(arg)) {
+//                    index++;
+//                    String server = args[index];
+//                    if ("null".equalsIgnoreCase(server)) {
+//                        // This is a workaround that JNLP doesn't take empty
+//                        // string as an argument.
+//                        server = null;
+//                    }
+//                    this.config.setMyProxyServer(server);
+//                } else if ("-myProxyPort".equalsIgnoreCase(arg)) {
+//                    index++;
+//                    String port = args[index];
+//                    try {
+//                        this.config.setMyProxyPort(Integer.parseInt(port));
+//                    } catch (NumberFormatException e) {
+//                        String message = "The myProxyPort must be an integer: " + port;
+//                        logger.warning(message, e);
+//                        this.config.addError(new XBayaException(message, e));
+//                    }
+//                } else if ("-myProxyUsername".equalsIgnoreCase(arg)) {
+//                    index++;
+//                    this.config.setMyProxyUsername(args[index]);
+//                } else if ("-myProxyPassphrase".equalsIgnoreCase(arg)) {
+//                    index++;
+//                    this.config.setMyProxyPassphrase(args[index]);
+//                } else if ("-myProxyLifetime".equalsIgnoreCase(arg)) {
+//                    index++;
+//                    String lifetime = args[index];
+//                    try {
+//                        this.config.setMyProxyLifetime(Integer.parseInt(lifetime));
+//                    } catch (NumberFormatException e) {
+//                        String message = "The myProxyLifetime must be an integer: " + lifetime;
+//                        logger.warning(message, e);
+//                        this.config.addError(new XBayaException(message, e));
+//                    }
+//                } else if ("-loadMyProxy".equalsIgnoreCase(arg)) {
+//                    index++;
+//                    String load = args[index];
+//                    if ("true".equalsIgnoreCase(load)) {
+//                        this.config.setLoadMyProxy(true);
+//                    } else if ("false".equalsIgnoreCase(load)) {
+//                        this.config.setLoadMyProxy(false);
+//                    } else {
+//                        String message = "-loadMyProxy has to be either true or false, not " + load;
+//                        logger.warning(message);
+//                        this.config.addError(new XBayaException(message));
+//                    }
+//                }
+                else if ("-width".equalsIgnoreCase(arg)) {
                     index++;
                     String width = args[index];
                     try {

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaConfiguration.java?rev=1176614&r1=1176613&r2=1176614&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaConfiguration.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaConfiguration.java Tue Sep 27 20:49:58 2011
@@ -67,6 +67,12 @@ public class XBayaConfiguration {
 
     private URI xRegistryURL = XBayaConstants.DEFAULT_XREGISTRY_URL;
 
+    private URI registryURL = XBayaConstants.REGISTRY_URL;
+
+    private String regigstryUserName = XBayaConstants.REGISTRY_USERNAME;
+
+    private String registryPassphrase = XBayaConstants.REGISTRY_PASSPHRASE;
+
     private URI dscURL = XBayaConstants.DEFAULT_DSC_URL;
 
     // Monitor related
@@ -754,4 +760,16 @@ public class XBayaConfiguration {
     public void setJcrComponentRegistry(JCRComponentRegistry jcrComponentRegistry) {
         this.jcrComponentRegistry = jcrComponentRegistry;
     }
+
+    public void setRegistryURL(URI registryURL) {
+        this.registryURL = registryURL;
+    }
+
+    public void setRegigstryUserName(String regigstryUserName) {
+        this.regigstryUserName = regigstryUserName;
+    }
+
+    public void setRegistryPassphrase(String registryPassphrase) {
+        this.registryPassphrase = registryPassphrase;
+    }
 }
\ No newline at end of file

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaConstants.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaConstants.java?rev=1176614&r1=1176613&r2=1176614&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaConstants.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaConstants.java Tue Sep 27 20:49:58 2011
@@ -186,6 +186,9 @@ public class XBayaConstants {
     public static final String STREAM_SERVER = "http://pagodatree.cs.indiana.edu:8081/axis2/services/StreamService?wsdl";
 
     public static final String STATIC_LABEL = "STATIC";
+    public static final URI REGISTRY_URL = URI.create("http://localhost:8081/rmi");
+    public static final String REGISTRY_USERNAME = "admin";
+    public static final String REGISTRY_PASSPHRASE = "admin";
 
     /**
      * XRegistry Resource Types for OGCE Resource

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionRegistrationWindow.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionRegistrationWindow.java?rev=1176614&r1=1176613&r2=1176614&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionRegistrationWindow.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionRegistrationWindow.java Tue Sep 27 20:49:58 2011
@@ -23,16 +23,17 @@ package org.apache.airavata.xbaya.appwra
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import javax.swing.DefaultComboBoxModel;
 import javax.swing.JButton;
 import javax.swing.JCheckBox;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
-import javax.xml.namespace.QName;
 
 import org.apache.airavata.common.utils.NameValidator;
 import org.apache.airavata.common.utils.StringUtil;
+import org.apache.airavata.commons.gfac.type.app.ShellApplicationDeployment;
 import org.apache.airavata.xbaya.XBayaEngine;
 import org.apache.airavata.xbaya.gui.GridPanel;
 import org.apache.airavata.xbaya.gui.XBayaComboBox;
@@ -84,10 +85,6 @@ public class ApplicationDescriptionRegis
     private XBayaLabel workDirectoryLabel;
     private XBayaTextField workDirectoryTextField;
 
-    private boolean isEditing = false;
-
-    private ApplicationBean editingAppBean;
-
     private static ApplicationDescriptionRegistrationWindow window;
 
     /**
@@ -154,8 +151,6 @@ public class ApplicationDescriptionRegis
      * @param appBean
      */
     public void initTextField(ApplicationBean appBean) {
-        this.isEditing = true;
-        this.editingAppBean = appBean;
         this.applicationNameTextField.setText(appBean.getApplicationName());
         this.hostNameComboBox.setSelectedItem(appBean.getHostName());
         this.executableTextField.setText(appBean.getExecutable());
@@ -313,41 +308,41 @@ public class ApplicationDescriptionRegis
             }
 
             /* Generate Bean Object */
-            ApplicationBean appBean = new ApplicationBean();
-            appBean.setApplicationName(StringUtil.trimSpaceInString(this.applicationNameTextField.getText()));
-            appBean.setHostName(StringUtil.trimSpaceInString(this.hostNameComboBox.getText()));
-            appBean.setExecutable(StringUtil.trimSpaceInString(this.executableTextField.getText()));
-            appBean.setWorkDir(StringUtil.trimSpaceInString(this.workDirectoryTextField.getText()));
-            appBean.setTmpDir(StringUtil.trimSpaceInString(this.tempDirTextField.getText()));
-
-            appBean.setProjectName(StringUtil.trimSpaceInString(this.projectNameComboBox.getText()));
-            appBean.setJobType(StringUtil.trimSpaceInString(this.jobTypeComboBox.getText()));
-            appBean.setQueue(StringUtil.trimSpaceInString(this.queueTextField.getText()));
-            if (!this.maxWallTimeTextField.getText().equals("")) {
-                appBean.setMaxWallTime(new Integer(Integer.parseInt(this.maxWallTimeTextField.getText())));
+			String hostName = StringUtil.trimSpaceInString(this.hostNameComboBox.getText());
+			String projectName = StringUtil.trimSpaceInString(this.projectNameComboBox.getText());
+			String jobType = StringUtil.trimSpaceInString(this.jobTypeComboBox.getText());
+			String queue = StringUtil.trimSpaceInString(this.queueTextField.getText());
+			Integer maxWallTime = null;
+			if (!this.maxWallTimeTextField.getText().equals("")) {
+				maxWallTime = new Integer(
+						Integer.parseInt(this.maxWallTimeTextField.getText()));
+			}
+			Integer pCount = null;
+			if (!this.procsCountTextField.getText().equals("")) {
+				pCount = new Integer(Integer.parseInt(this.procsCountTextField
+						.getText()));
+			}
+            
+            ShellApplicationDeployment shellApplicationDeployment = new ShellApplicationDeployment();
+            shellApplicationDeployment.setName(StringUtil.trimSpaceInString(this.applicationNameTextField.getText()));
+            shellApplicationDeployment.setExecutable(StringUtil.trimSpaceInString(this.executableTextField.getText()));
+            shellApplicationDeployment.setWorkingDir(StringUtil.trimSpaceInString(this.workDirectoryTextField.getText()));
+            shellApplicationDeployment.setTmpDir(StringUtil.trimSpaceInString(this.tempDirTextField.getText()));
+
+            Map<String, String> env = shellApplicationDeployment.getEnv();
+            env.put("ProjectName",projectName);
+    		env.put("JobType",jobType);
+			env.put("Queue",queue);
+			env.put("HostName",hostName);
+            if (maxWallTime!=null) {
+            	env.put("MaxWallTime",maxWallTime.toString());
             }
-            if (!this.procsCountTextField.getText().equals("")) {
-                appBean.setPcount(new Integer(Integer.parseInt(this.procsCountTextField.getText())));
+            if (pCount!=null) {
+            	env.put("Pcount",pCount.toString());
             }
-
-            /* Register to XRegistry */
-            XRegistryAccesser xRegAccesser = new XRegistryAccesser(this.engine);
-
-            if (!this.isEditing) {
-                xRegAccesser.registerApplication(appBean);
-            } else {
-                /* Delete old application bean */
-                QName qName = new QName(this.editingAppBean.getObjectNamespace(),
-                        this.editingAppBean.getApplicationName());
-                xRegAccesser.deleteAppDescription(qName, this.editingAppBean.getHostName());
-
-                /* Register new application bean */
-                xRegAccesser.registerApplication(appBean);
-
-                this.isEditing = false;
-                this.addApplicationButton.setText("Add Application");
-            }
-
+            
+            /*--- save to registry ---*/
+            this.engine.getConfiguration().getJcrComponentRegistry().saveDeploymentDescription(projectName, hostName, shellApplicationDeployment);
         } catch (Exception e) {
             e.printStackTrace();
             this.hide();
@@ -363,7 +358,6 @@ public class ApplicationDescriptionRegis
     }// GEN-LAST:event_addApplicationButtonActionPerformed
 
     private void cancelButtonActionPerformed() {// GEN-FIRST:event_cancelButtonActionPerformed
-        this.isEditing = false;
         this.addApplicationButton.setText("Add Application");
         clearAllTextFields();
         this.hide();

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/gui/JCRRegistryWindow.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/gui/JCRRegistryWindow.java?rev=1176614&r1=1176613&r2=1176614&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/gui/JCRRegistryWindow.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/gui/JCRRegistryWindow.java Tue Sep 27 20:49:58 2011
@@ -33,6 +33,8 @@ import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JPasswordField;
 
+import org.apache.airavata.xbaya.XBayaConfiguration;
+import org.apache.airavata.xbaya.XBayaConstants;
 import org.apache.airavata.xbaya.XBayaEngine;
 import org.apache.airavata.xbaya.component.registry.ComponentRegistryLoader;
 import org.apache.airavata.xbaya.component.registry.JCRComponentRegistry;
@@ -99,7 +101,11 @@ public class JCRRegistryWindow {
         }
 
         JCRComponentRegistry registry = new JCRComponentRegistry(url, username, password);
-        this.engine.getConfiguration().setJcrComponentRegistry(registry);
+        XBayaConfiguration configuration = this.engine.getConfiguration();
+        configuration.setJcrComponentRegistry(registry);
+        configuration.setRegigstryUserName(username);
+        configuration.setRegistryPassphrase(password);
+        configuration.setRegistryURL(url);
         hide();
 
         this.loader.load(registry);
@@ -136,7 +142,9 @@ public class JCRRegistryWindow {
         XBayaLabel urlLabel = new XBayaLabel("URL", this.urlTextField);
         XBayaLabel nameLabel = new XBayaLabel("Username", this.usernameTextField);
         XBayaLabel passLabel = new XBayaLabel("Password", this.usernameTextField);
-        
+        urlLabel.setText(XBayaConstants.REGISTRY_URL.toASCIIString());
+        nameLabel.setText(XBayaConstants.REGISTRY_USERNAME);
+        passLabel.setText(XBayaConstants.REGISTRY_PASSPHRASE);
         this.newUserButton = new XBayaLinkButton("Create new user...");
         newUserButton.setHorizontalAlignment(XBayaLinkButton.RIGHT);
         JLabel emptyLabel = new JLabel("");

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/JCRComponentRegistry.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/JCRComponentRegistry.java?rev=1176614&r1=1176613&r2=1176614&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/JCRComponentRegistry.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/JCRComponentRegistry.java Tue Sep 27 20:49:58 2011
@@ -25,6 +25,7 @@ import java.net.URI;
 import java.util.HashMap;
 import java.util.List;
 
+import org.apache.airavata.commons.gfac.type.ApplicationDeploymentDescription;
 import org.apache.airavata.commons.gfac.type.ServiceDescription;
 import org.apache.airavata.registry.api.impl.JCRRegistry;
 import org.apache.airavata.registry.api.user.UserManager;
@@ -89,4 +90,9 @@ public class JCRComponentRegistry extend
     public UserManager getUserManager(){
     	return registry.getUserManager();
     }
+    
+    public String saveDeploymentDescription(String service, String host,
+			ApplicationDeploymentDescription app){
+    	return registry.saveDeploymentDescription(service, host, app);
+    }
 }
\ No newline at end of file