You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2013/07/25 00:44:34 UTC

svn commit: r1506767 [1/3] - in /airavata/sandbox/gsoc2013: ./ app/ app/scripts/ app/scripts/controllers/ app/scripts/model/ app/styles/ app/views/ css/ js/ test/spec/ test/spec/controllers/

Author: smarru
Date: Wed Jul 24 22:44:33 2013
New Revision: 1506767

URL: http://svn.apache.org/r1506767
Log:
committing Subho's patch

Added:
    airavata/sandbox/gsoc2013/.bowerrc   (with props)
    airavata/sandbox/gsoc2013/.editorconfig   (with props)
    airavata/sandbox/gsoc2013/.jshintrc   (with props)
    airavata/sandbox/gsoc2013/Gruntfile.js
    airavata/sandbox/gsoc2013/app/
    airavata/sandbox/gsoc2013/app/.buildignore   (with props)
    airavata/sandbox/gsoc2013/app/.htaccess   (with props)
    airavata/sandbox/gsoc2013/app/404.html   (with props)
    airavata/sandbox/gsoc2013/app/favicon.ico   (with props)
    airavata/sandbox/gsoc2013/app/index.html
    airavata/sandbox/gsoc2013/app/robots.txt   (with props)
    airavata/sandbox/gsoc2013/app/scripts/
    airavata/sandbox/gsoc2013/app/scripts/app.js
    airavata/sandbox/gsoc2013/app/scripts/controllers/
    airavata/sandbox/gsoc2013/app/scripts/controllers/executionInterfaceCntl.js
    airavata/sandbox/gsoc2013/app/scripts/controllers/main.js
    airavata/sandbox/gsoc2013/app/scripts/model/
    airavata/sandbox/gsoc2013/app/scripts/model/workflow_execution_context.json
    airavata/sandbox/gsoc2013/app/scripts/registryAPI.js
    airavata/sandbox/gsoc2013/app/styles/
    airavata/sandbox/gsoc2013/app/styles/main.scss   (with props)
    airavata/sandbox/gsoc2013/app/views/
    airavata/sandbox/gsoc2013/app/views/addHost.html
    airavata/sandbox/gsoc2013/app/views/create.canvas.html
    airavata/sandbox/gsoc2013/app/views/create.sidenavbar.html
    airavata/sandbox/gsoc2013/app/views/index.canvas.html
    airavata/sandbox/gsoc2013/app/views/index.navbar.html
    airavata/sandbox/gsoc2013/app/views/index.sidenavbar.html
    airavata/sandbox/gsoc2013/app/views/launchWorkflow.html
    airavata/sandbox/gsoc2013/app/views/newApplicationDeployement.html
    airavata/sandbox/gsoc2013/bower.json
    airavata/sandbox/gsoc2013/karma-e2e.conf.js
    airavata/sandbox/gsoc2013/karma.conf.js
    airavata/sandbox/gsoc2013/package.json
    airavata/sandbox/gsoc2013/test/spec/
    airavata/sandbox/gsoc2013/test/spec/controllers/
    airavata/sandbox/gsoc2013/test/spec/controllers/main.js
Removed:
    airavata/sandbox/gsoc2013/addHost.html
    airavata/sandbox/gsoc2013/css/executionInterface.css
    airavata/sandbox/gsoc2013/index.html
    airavata/sandbox/gsoc2013/js/
    airavata/sandbox/gsoc2013/launchWorkflow.html
    airavata/sandbox/gsoc2013/newApplicationDeployement.html
    airavata/sandbox/gsoc2013/project.json
Modified:
    airavata/sandbox/gsoc2013/LICENSE.md
    airavata/sandbox/gsoc2013/README.md

Added: airavata/sandbox/gsoc2013/.bowerrc
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/.bowerrc?rev=1506767&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/.bowerrc (added)
+++ airavata/sandbox/gsoc2013/.bowerrc Wed Jul 24 22:44:33 2013
@@ -0,0 +1,3 @@
+{
+    "directory": "app/bower_components"
+}

Propchange: airavata/sandbox/gsoc2013/.bowerrc
------------------------------------------------------------------------------
    svn:executable = *

Added: airavata/sandbox/gsoc2013/.editorconfig
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/.editorconfig?rev=1506767&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/.editorconfig (added)
+++ airavata/sandbox/gsoc2013/.editorconfig Wed Jul 24 22:44:33 2013
@@ -0,0 +1,38 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+
+#     http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# EditorConfig helps developers define and maintain consistent
+# coding styles between different editors and IDEs
+# editorconfig.org
+
+root = true
+
+
+[*]
+
+# Change these settings to your own preference
+indent_style = space
+indent_size = 2
+
+# We recommend you to keep these unchanged
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.md]
+trim_trailing_whitespace = false

Propchange: airavata/sandbox/gsoc2013/.editorconfig
------------------------------------------------------------------------------
    svn:executable = *

Added: airavata/sandbox/gsoc2013/.jshintrc
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/.jshintrc?rev=1506767&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/.jshintrc (added)
+++ airavata/sandbox/gsoc2013/.jshintrc Wed Jul 24 22:44:33 2013
@@ -0,0 +1,24 @@
+{
+  "node": true,
+  "browser": true,
+  "esnext": true,
+  "bitwise": true,
+  "camelcase": true,
+  "curly": true,
+  "eqeqeq": true,
+  "immed": true,
+  "indent": 2,
+  "latedef": true,
+  "newcap": true,
+  "noarg": true,
+  "quotmark": "single",
+  "regexp": true,
+  "undef": true,
+  "unused": true,
+  "strict": true,
+  "trailing": true,
+  "smarttabs": true,
+  "globals": {
+    "angular": false
+  }
+}

Propchange: airavata/sandbox/gsoc2013/.jshintrc
------------------------------------------------------------------------------
    svn:executable = *

Added: airavata/sandbox/gsoc2013/Gruntfile.js
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/Gruntfile.js?rev=1506767&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/Gruntfile.js (added)
+++ airavata/sandbox/gsoc2013/Gruntfile.js Wed Jul 24 22:44:33 2013
@@ -0,0 +1,366 @@
+/*
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+*/
+
+'use strict';
+var LIVERELOAD_PORT = 35729;
+var lrSnippet = require('connect-livereload')({ port: LIVERELOAD_PORT });
+var mountFolder = function (connect, dir) {
+  return connect.static(require('path').resolve(dir));
+};
+
+// # Globbing
+// for performance reasons we're only matching one level down:
+// 'test/spec/{,*/}*.js'
+// use this if you want to recursively match all subfolders:
+// 'test/spec/**/*.js'
+
+module.exports = function (grunt) {
+  // load all grunt tasks
+  require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
+
+  // configurable paths
+  var yeomanConfig = {
+    app: 'app',
+    dist: 'dist'
+  };
+
+  try {
+    yeomanConfig.app = require('./bower.json').appPath || yeomanConfig.app;
+  } catch (e) {}
+
+  grunt.initConfig({
+    yeoman: yeomanConfig,
+    watch: {
+      coffee: {
+        files: ['<%= yeoman.app %>/scripts/{,*/}*.coffee'],
+        tasks: ['coffee:dist']
+      },
+      coffeeTest: {
+        files: ['test/spec/{,*/}*.coffee'],
+        tasks: ['coffee:test']
+      },
+      compass: {
+        files: ['<%= yeoman.app %>/styles/{,*/}*.{scss,sass}'],
+        tasks: ['compass:server']
+      },
+      livereload: {
+        options: {
+          livereload: LIVERELOAD_PORT
+        },
+        files: [
+          '<%= yeoman.app %>/{,*/}*.html',
+          '{.tmp,<%= yeoman.app %>}/styles/{,*/}*.css',
+          '{.tmp,<%= yeoman.app %>}/scripts/{,*/}*.js',
+          '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
+        ]
+      }
+    },
+    connect: {
+      options: {
+        port: 9000,
+        // Change this to '0.0.0.0' to access the server from outside.
+        hostname: 'localhost'
+      },
+      livereload: {
+        options: {
+          middleware: function (connect) {
+            return [
+              lrSnippet,
+              mountFolder(connect, '.tmp'),
+              mountFolder(connect, yeomanConfig.app)
+            ];
+          }
+        }
+      },
+      test: {
+        options: {
+          middleware: function (connect) {
+            return [
+              mountFolder(connect, '.tmp'),
+              mountFolder(connect, 'test')
+            ];
+          }
+        }
+      },
+      dist: {
+        options: {
+          middleware: function (connect) {
+            return [
+              mountFolder(connect, yeomanConfig.dist)
+            ];
+          }
+        }
+      }
+    },
+    open: {
+      server: {
+        url: 'http://localhost:<%= connect.options.port %>'
+      }
+    },
+    clean: {
+      dist: {
+        files: [{
+          dot: true,
+          src: [
+            '.tmp',
+            '<%= yeoman.dist %>/*',
+            '!<%= yeoman.dist %>/.git*'
+          ]
+        }]
+      },
+      server: '.tmp'
+    },
+    jshint: {
+      options: {
+        jshintrc: '.jshintrc'
+      },
+      all: [
+        'Gruntfile.js',
+        '<%= yeoman.app %>/scripts/{,*/}*.js'
+      ]
+    },
+    coffee: {
+      dist: {
+        files: [{
+          expand: true,
+          cwd: '<%= yeoman.app %>/scripts',
+          src: '{,*/}*.coffee',
+          dest: '.tmp/scripts',
+          ext: '.js'
+        }]
+      },
+      test: {
+        files: [{
+          expand: true,
+          cwd: 'test/spec',
+          src: '{,*/}*.coffee',
+          dest: '.tmp/spec',
+          ext: '.js'
+        }]
+      }
+    },
+    compass: {
+      options: {
+        sassDir: '<%= yeoman.app %>/styles',
+        cssDir: '.tmp/styles',
+        generatedImagesDir: '.tmp/images/generated',
+        imagesDir: '<%= yeoman.app %>/images',
+        javascriptsDir: '<%= yeoman.app %>/scripts',
+        fontsDir: '<%= yeoman.app %>/styles/fonts',
+        importPath: '<%= yeoman.app %>/bower_components',
+        httpImagesPath: '/images',
+        httpGeneratedImagesPath: '/images/generated',
+        httpFontsPath: '/styles/fonts',
+        relativeAssets: false
+      },
+      dist: {},
+      server: {
+        options: {
+          debugInfo: true
+        }
+      }
+    },
+    // not used since Uglify task does concat,
+    // but still available if needed
+    /*concat: {
+      dist: {}
+    },*/
+    rev: {
+      dist: {
+        files: {
+          src: [
+            '<%= yeoman.dist %>/scripts/{,*/}*.js',
+            '<%= yeoman.dist %>/styles/{,*/}*.css',
+            '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}',
+            '<%= yeoman.dist %>/styles/fonts/*'
+          ]
+        }
+      }
+    },
+    useminPrepare: {
+      html: '<%= yeoman.app %>/index.html',
+      options: {
+        dest: '<%= yeoman.dist %>'
+      }
+    },
+    usemin: {
+      html: ['<%= yeoman.dist %>/{,*/}*.html'],
+      css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
+      options: {
+        dirs: ['<%= yeoman.dist %>']
+      }
+    },
+    imagemin: {
+      dist: {
+        files: [{
+          expand: true,
+          cwd: '<%= yeoman.app %>/images',
+          src: '{,*/}*.{png,jpg,jpeg}',
+          dest: '<%= yeoman.dist %>/images'
+        }]
+      }
+    },
+    cssmin: {
+      // By default, your `index.html` <!-- Usemin Block --> will take care of
+      // minification. This option is pre-configured if you do not wish to use
+      // Usemin blocks.
+      // dist: {
+      //   files: {
+      //     '<%= yeoman.dist %>/styles/main.css': [
+      //       '.tmp/styles/{,*/}*.css',
+      //       '<%= yeoman.app %>/styles/{,*/}*.css'
+      //     ]
+      //   }
+      // }
+    },
+    htmlmin: {
+      dist: {
+        options: {
+          /*removeCommentsFromCDATA: true,
+          // https://github.com/yeoman/grunt-usemin/issues/44
+          //collapseWhitespace: true,
+          collapseBooleanAttributes: true,
+          removeAttributeQuotes: true,
+          removeRedundantAttributes: true,
+          useShortDoctype: true,
+          removeEmptyAttributes: true,
+          removeOptionalTags: true*/
+        },
+        files: [{
+          expand: true,
+          cwd: '<%= yeoman.app %>',
+          src: ['*.html', 'views/*.html'],
+          dest: '<%= yeoman.dist %>'
+        }]
+      }
+    },
+    // Put files not handled in other tasks here
+    copy: {
+      dist: {
+        files: [{
+          expand: true,
+          dot: true,
+          cwd: '<%= yeoman.app %>',
+          dest: '<%= yeoman.dist %>',
+          src: [
+            '*.{ico,png,txt,md}',
+            '.htaccess',
+            'bower_components/**/*',
+            'images/{,*/}*.{gif,webp,svg}',
+            'styles/fonts/*'
+          ]
+        }, {
+          expand: true,
+          cwd: '.tmp/images',
+          dest: '<%= yeoman.dist %>/images',
+          src: [
+            'generated/*'
+          ]
+        }]
+      }
+    },
+    concurrent: {
+      server: [
+        'coffee:dist',
+        'compass:server'
+      ],
+      test: [
+        'coffee',
+        'compass'
+      ],
+      dist: [
+        'coffee',
+        'compass:dist',
+        'imagemin',
+        'htmlmin'
+      ]
+    },
+    karma: {
+      unit: {
+        configFile: 'karma.conf.js',
+        singleRun: true
+      }
+    },
+    cdnify: {
+      dist: {
+        html: ['<%= yeoman.dist %>/*.html']
+      }
+    },
+    ngmin: {
+      dist: {
+        files: [{
+          expand: true,
+          cwd: '<%= yeoman.dist %>/scripts',
+          src: '*.js',
+          dest: '<%= yeoman.dist %>/scripts'
+        }]
+      }
+    },
+    uglify: {
+      dist: {
+        files: {
+          '<%= yeoman.dist %>/scripts/scripts.js': [
+            '<%= yeoman.dist %>/scripts/scripts.js'
+          ]
+        }
+      }
+    }
+  });
+
+  grunt.registerTask('server', function (target) {
+    if (target === 'dist') {
+      return grunt.task.run(['build', 'open', 'connect:dist:keepalive']);
+    }
+
+    grunt.task.run([
+      'clean:server',
+      'concurrent:server',
+      'connect:livereload',
+      'open',
+      'watch'
+    ]);
+  });
+
+  grunt.registerTask('test', [
+    'clean:server',
+    'concurrent:test',
+    'connect:test',
+    'karma'
+  ]);
+
+  grunt.registerTask('build', [
+    'clean:dist',
+    'useminPrepare',
+    'concurrent:dist',
+    'concat',
+    'copy',
+    'cdnify',
+    'ngmin',
+    'cssmin',
+    'uglify',
+    'rev',
+    'usemin'
+  ]);
+
+  grunt.registerTask('default', [
+    'jshint',
+    'test',
+    'build'
+  ]);
+};

Modified: airavata/sandbox/gsoc2013/LICENSE.md
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/LICENSE.md?rev=1506767&r1=1506766&r2=1506767&view=diff
==============================================================================
--- airavata/sandbox/gsoc2013/LICENSE.md (original)
+++ airavata/sandbox/gsoc2013/LICENSE.md Wed Jul 24 22:44:33 2013
@@ -1,13 +1,16 @@
-Copyright © 2013 Sanchit Aggarwal
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
+  http://www.apache.org/licenses/LICENSE-2.0
 
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.

Modified: airavata/sandbox/gsoc2013/README.md
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/README.md?rev=1506767&r1=1506766&r2=1506767&view=diff
==============================================================================
--- airavata/sandbox/gsoc2013/README.md (original)
+++ airavata/sandbox/gsoc2013/README.md Wed Jul 24 22:44:33 2013
@@ -1,14 +1,59 @@
-# [Apache Airavata](http://airavata.apache.org/)
+# WebUI for Apache Airavata
 
-Apache Airavata is a software framework for executing and managing computational jobs and workflows on distributed computing resources.
-Airavata is dominantly used to build Web-based science gateways and assist to compose, manage, execute, and monitor large scale applications (wrapped as Web services) and workflows composed of these services.
-
-This project is completed as a part of Google Summer of code 2013. The goal of the project is to create a GUI similar to XBaya suite for workflow composer,execution and monitoring.The purpose of this project is to replace the current UI for workflow execution with HTML, Javascript, css3 based UI.
+            ...._....................._..............._...._......................_.........
+            .../ \..._.__...__._..___| |__...___...../ \..(_)_.__.__.___...____._|.|_.__._..
+            ../ _ \.| '_ \./ _` |/ __| '_ \./ _ \.../ _ \.| | '__/ _` \ \./ / _` | __/ _` |.
+            ./ ___ \| |_) | (_| | (__| |.| |  __/../ ___ \| | |.| (_| |\ V / (_| | || (_| |.
+            /_/...\_\ .__/.\__,_|\___|_|.|_|\___|./_/...\_\_|_|..\__,_|.\_/.\__,_|\__\__,_|.
+            ........|_|.....................................................................
+            ................................................................................
+            ................,+????++~..~~++..+????????+??++.++~...~+=???+++.................
+            ..............:???????....:::...~??????????????.~..::...=????????...............
+            ............????????..~~..?????..??????????????.?????..~~~.~???????.............
+            ...........?????????I,~I~~??????.+????????????.~??????~=~..?????????~...........
+            .........?????++??????..????????:.??????????I..????????..????????+????..........
+            ........??.....???????....???????...???????+..+??????+.I.????????.....?,........
+            ........????==????????..??..?????..=???????=..?????,.=+?.?????????===??=........
+            ......=??????????+????..+??=.???=.~??????????,.???=,???,.????=+??????????.......
+            ....??????????+...+I++..???,=...:??????????????.....+??..++I?+..,??????????.....
+            ....???????=??..........??..+??.:=:.???????......??..??=..........?=???????=....
+            ....??????..?...........+?..???.....???????......???.??...........~=.??????=....
+            ....~???~.~..............?..???.~=..,??????...7..???.?.:..............~????:....
+            ...7....7 ...............?..????. ...??????... .????.?.?.............I ..:.:....
+            .....+7=,.+?................????:,I...?????..=.?????.?.............??~.=7+......
+            ..........????..............??????~...~??..~~??????..?...........+???,..........
+            ...........???............=.+???????,.?+:.?????????..+...........???+...........
+            ............??............?,.??????.,??..??????????.,............???............
+            ...........??,.............=.,????.?+....????????I.I..............=?............
+            ..........I?..................+??.:?~.....=??????..................??...........
+            ..........??...?...............??.:?=......??????..............?...??...........
+            ............++?..............?.????...?....??????.+..............++I............
+            .............................?.??????~....???????.?.............................
+            ............................~~.??????......??????...............................
+            .............................=???????......???????+.............................
+            ..........................=I??++?+++?......?+++++++?+...........................
+            ..........................,..77..77.........  ..  ...7..........................
+            ................................................................................
+
+
+[Apache Airavata](http://airavata.apache.org/) is a software framework for executing and managing computational jobs and workflows on distributed computing resources. Airavata is dominantly used to build Web-based science gateways and assist to compose, manage, execute, and monitor large scale applications (wrapped as Web services) and workflows composed of these services.
+ 
+This project is completed as a part of Google Summer of Code 2013. The goal of the project is to create a GUI similar to XBaya suite (currently in use by Apache Airavata) for workflow composer,execution and monitoring.The purpose of this project is to replace the current UI for workflow execution with HTML, Javascript, CSS3 based UI.
 
 ## Quick start
+### Running the source code
+#### On Linux and Mac OS X
+1. Install the dependencies
+	- Install `Node.JS` with `NPM`, from [http://nodejs.org/](http://nodejs.org/)
+	- Install `Yeoman` using the instructions from [http://yeoman.io/](http://yeoman.io/)
+	- In the root folder of the source tree run `npm install` to install the dependencies related to the build process and the build system.
+	- In the root folder of the source tree run `bower install` to install the front-end dependencies related to the web app.
+2. Running the web-app
+	- In the root folder of the source tree, `grunt test` to run the test suite.
+	- In the root folder of the source tree, `grunt server` to run the webapp.
+  - In the root folder of the source tree, `grunt build` to compile-uglify-minify the source code to the `dist` folder.
 
-Choose one of the following options:
-
+#### On Windows
 
 ## Features
 

Added: airavata/sandbox/gsoc2013/app/.buildignore
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/.buildignore?rev=1506767&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/.buildignore (added)
+++ airavata/sandbox/gsoc2013/app/.buildignore Wed Jul 24 22:44:33 2013
@@ -0,0 +1 @@
+*.coffee
\ No newline at end of file

Propchange: airavata/sandbox/gsoc2013/app/.buildignore
------------------------------------------------------------------------------
    svn:executable = *

Added: airavata/sandbox/gsoc2013/app/.htaccess
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/.htaccess?rev=1506767&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/.htaccess (added)
+++ airavata/sandbox/gsoc2013/app/.htaccess Wed Jul 24 22:44:33 2013
@@ -0,0 +1,544 @@
+# Apache Configuration File
+
+# (!) Using `.htaccess` files slows down Apache, therefore, if you have access
+# to the main server config file (usually called `httpd.conf`), you should add
+# this logic there: http://httpd.apache.org/docs/current/howto/htaccess.html.
+
+# ##############################################################################
+# # CROSS-ORIGIN RESOURCE SHARING (CORS)                                       #
+# ##############################################################################
+
+# ------------------------------------------------------------------------------
+# | Cross-domain AJAX requests                                                 |
+# ------------------------------------------------------------------------------
+
+# Enable cross-origin AJAX requests.
+# http://code.google.com/p/html5security/wiki/CrossOriginRequestSecurity
+# http://enable-cors.org/
+
+# <IfModule mod_headers.c>
+#    Header set Access-Control-Allow-Origin "*"
+# </IfModule>
+
+# ------------------------------------------------------------------------------
+# | CORS-enabled images                                                        |
+# ------------------------------------------------------------------------------
+
+# Send the CORS header for images when browsers request it.
+# https://developer.mozilla.org/en/CORS_Enabled_Image
+# http://blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html
+# http://hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/
+
+<IfModule mod_setenvif.c>
+    <IfModule mod_headers.c>
+        <FilesMatch "\.(gif|ico|jpe?g|png|svg|svgz|webp)$">
+            SetEnvIf Origin ":" IS_CORS
+            Header set Access-Control-Allow-Origin "*" env=IS_CORS
+        </FilesMatch>
+    </IfModule>
+</IfModule>
+
+# ------------------------------------------------------------------------------
+# | Web fonts access                                                           |
+# ------------------------------------------------------------------------------
+
+# Allow access from all domains for web fonts
+
+<IfModule mod_headers.c>
+    <FilesMatch "\.(eot|font.css|otf|ttc|ttf|woff)$">
+        Header set Access-Control-Allow-Origin "*"
+    </FilesMatch>
+</IfModule>
+
+
+# ##############################################################################
+# # ERRORS                                                                     #
+# ##############################################################################
+
+# ------------------------------------------------------------------------------
+# | 404 error prevention for non-existing redirected folders                   |
+# ------------------------------------------------------------------------------
+
+# Prevent Apache from returning a 404 error for a rewrite if a directory
+# with the same name does not exist.
+# http://httpd.apache.org/docs/current/content-negotiation.html#multiviews
+# http://www.webmasterworld.com/apache/3808792.htm
+
+Options -MultiViews
+
+# ------------------------------------------------------------------------------
+# | Custom error messages / pages                                              |
+# ------------------------------------------------------------------------------
+
+# You can customize what Apache returns to the client in case of an error (see
+# http://httpd.apache.org/docs/current/mod/core.html#errordocument), e.g.:
+
+ErrorDocument 404 /404.html
+
+
+# ##############################################################################
+# # INTERNET EXPLORER                                                          #
+# ##############################################################################
+
+# ------------------------------------------------------------------------------
+# | Better website experience                                                  |
+# ------------------------------------------------------------------------------
+
+# Force IE to render pages in the highest available mode in the various
+# cases when it may not: http://hsivonen.iki.fi/doctype/ie-mode.pdf.
+# Use, if installed, Google Chrome Frame.
+
+<IfModule mod_headers.c>
+    Header set X-UA-Compatible "IE=edge,chrome=1"
+    # `mod_headers` can't match based on the content-type, however, we only
+    # want to send this header for HTML pages and not for the other resources
+    <FilesMatch "\.(appcache|crx|css|eot|gif|htc|ico|jpe?g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svg|svgz|ttf|vcf|webapp|webm|webp|woff|xml|xpi)$">
+        Header unset X-UA-Compatible
+    </FilesMatch>
+</IfModule>
+
+# ------------------------------------------------------------------------------
+# | Cookie setting from iframes                                                |
+# ------------------------------------------------------------------------------
+
+# Allow cookies to be set from iframes in IE.
+
+# <IfModule mod_headers.c>
+#   Header set P3P "policyref=\"/w3c/p3p.xml\", CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""
+# </IfModule>
+
+# ------------------------------------------------------------------------------
+# | Screen flicker                                                             |
+# ------------------------------------------------------------------------------
+
+# Stop screen flicker in IE on CSS rollovers (this only works in
+# combination with the `ExpiresByType` directives for images from below).
+
+# BrowserMatch "MSIE" brokenvary=1
+# BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
+# BrowserMatch "Opera" !brokenvary
+# SetEnvIf brokenvary 1 force-no-vary
+
+
+# ##############################################################################
+# # MIME TYPES AND ENCODING                                                    #
+# ##############################################################################
+
+# ------------------------------------------------------------------------------
+# | Proper MIME types for all files                                            |
+# ------------------------------------------------------------------------------
+
+<IfModule mod_mime.c>
+
+  # Audio
+    AddType audio/mp4                                   m4a f4a f4b
+    AddType audio/ogg                                   oga ogg
+
+  # JavaScript
+    # Normalize to standard type (it's sniffed in IE anyways):
+    # http://tools.ietf.org/html/rfc4329#section-7.2
+    AddType application/javascript                      js jsonp
+    AddType application/json                            json
+
+  # Video
+    AddType video/mp4                                   mp4 m4v f4v f4p
+    AddType video/ogg                                   ogv
+    AddType video/webm                                  webm
+    AddType video/x-flv                                 flv
+
+  # Web fonts
+    AddType application/font-woff                       woff
+    AddType application/vnd.ms-fontobject               eot
+
+    # Browsers usually ignore the font MIME types and sniff the content,
+    # however, Chrome shows a warning if other MIME types are used for the
+    # following fonts.
+    AddType application/x-font-ttf                      ttc ttf
+    AddType font/opentype                               otf
+
+    # Make SVGZ fonts work on iPad:
+    # https://twitter.com/FontSquirrel/status/14855840545
+    AddType     image/svg+xml                           svg svgz
+    AddEncoding gzip                                    svgz
+
+  # Other
+    AddType application/octet-stream                    safariextz
+    AddType application/x-chrome-extension              crx
+    AddType application/x-opera-extension               oex
+    AddType application/x-shockwave-flash               swf
+    AddType application/x-web-app-manifest+json         webapp
+    AddType application/x-xpinstall                     xpi
+    AddType application/xml                             atom rdf rss xml
+    AddType image/webp                                  webp
+    AddType image/x-icon                                ico
+    AddType text/cache-manifest                         appcache manifest
+    AddType text/vtt                                    vtt
+    AddType text/x-component                            htc
+    AddType text/x-vcard                                vcf
+
+</IfModule>
+
+# ------------------------------------------------------------------------------
+# | UTF-8 encoding                                                             |
+# ------------------------------------------------------------------------------
+
+# Use UTF-8 encoding for anything served as `text/html` or `text/plain`.
+AddDefaultCharset utf-8
+
+# Force UTF-8 for certain file formats.
+<IfModule mod_mime.c>
+    AddCharset utf-8 .atom .css .js .json .rss .vtt .webapp .xml
+</IfModule>
+
+
+# ##############################################################################
+# # URL REWRITES                                                               #
+# ##############################################################################
+
+# ------------------------------------------------------------------------------
+# | Rewrite engine                                                             |
+# ------------------------------------------------------------------------------
+
+# Turning on the rewrite engine and enabling the `FollowSymLinks` option is
+# necessary for the following directives to work.
+
+# If your web host doesn't allow the `FollowSymlinks` option, you may need to
+# comment it out and use `Options +SymLinksIfOwnerMatch` but, be aware of the
+# performance impact: http://httpd.apache.org/docs/current/misc/perf-tuning.html#symlinks
+
+# Also, some cloud hosting services require `RewriteBase` to be set:
+# http://www.rackspace.com/knowledge_center/frequently-asked-question/why-is-mod-rewrite-not-working-on-my-site
+
+<IfModule mod_rewrite.c>
+    Options +FollowSymlinks
+  # Options +SymLinksIfOwnerMatch
+    RewriteEngine On
+  # RewriteBase /
+</IfModule>
+
+# ------------------------------------------------------------------------------
+# | Suppressing / Forcing the "www." at the beginning of URLs                  |
+# ------------------------------------------------------------------------------
+
+# The same content should never be available under two different URLs especially
+# not with and without "www." at the beginning. This can cause SEO problems
+# (duplicate content), therefore, you should choose one of the alternatives and
+# redirect the other one.
+
+# By default option 1 (no "www.") is activated:
+# http://no-www.org/faq.php?q=class_b
+
+# If you'd prefer to use option 2, just comment out all the lines from option 1
+# and uncomment the ones from option 2.
+
+# IMPORTANT: NEVER USE BOTH RULES AT THE SAME TIME!
+
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+# Option 1: rewrite www.example.com → example.com
+
+<IfModule mod_rewrite.c>
+    RewriteCond %{HTTPS} !=on
+    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
+    RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
+</IfModule>
+
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+# Option 2: rewrite example.com → www.example.com
+
+# Be aware that the following might not be a good idea if you use "real"
+# subdomains for certain parts of your website.
+
+# <IfModule mod_rewrite.c>
+#    RewriteCond %{HTTPS} !=on
+#    RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
+#    RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
+# </IfModule>
+
+
+# ##############################################################################
+# # SECURITY                                                                   #
+# ##############################################################################
+
+# ------------------------------------------------------------------------------
+# | Content Security Policy (CSP)                                              |
+# ------------------------------------------------------------------------------
+
+# You can mitigate the risk of cross-site scripting and other content-injection
+# attacks by setting a Content Security Policy which whitelists trusted sources
+# of content for your site.
+
+# The example header below allows ONLY scripts that are loaded from the current
+# site's origin (no inline scripts, no CDN, etc). This almost certainly won't
+# work as-is for your site!
+
+# To get all the details you'll need to craft a reasonable policy for your site,
+# read: http://html5rocks.com/en/tutorials/security/content-security-policy (or
+# see the specification: http://w3.org/TR/CSP).
+
+# <IfModule mod_headers.c>
+#    Header set Content-Security-Policy "script-src 'self'; object-src 'self'"
+#    <FilesMatch "\.(appcache|crx|css|eot|gif|htc|ico|jpe?g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svg|svgz|ttf|vcf|webapp|webm|webp|woff|xml|xpi)$">
+#        Header unset Content-Security-Policy
+#    </FilesMatch>
+# </IfModule>
+
+# ------------------------------------------------------------------------------
+# | File access                                                                |
+# ------------------------------------------------------------------------------
+
+# Block access to directories without a default document.
+# Usually you should leave this uncommented because you shouldn't allow anyone
+# to surf through every directory on your server (which may includes rather
+# private places like the CMS's directories).
+
+<IfModule mod_autoindex.c>
+    Options -Indexes
+</IfModule>
+
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+# Block access to hidden files and directories.
+# This includes directories used by version control systems such as Git and SVN.
+
+<IfModule mod_rewrite.c>
+    RewriteCond %{SCRIPT_FILENAME} -d [OR]
+    RewriteCond %{SCRIPT_FILENAME} -f
+    RewriteRule "(^|/)\." - [F]
+</IfModule>
+
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+# Block access to backup and source files.
+# These files may be left by some text editors and can pose a great security
+# danger when anyone has access to them.
+
+<FilesMatch "(^#.*#|\.(bak|config|dist|fla|inc|ini|log|psd|sh|sql|sw[op])|~)$">
+    Order allow,deny
+    Deny from all
+    Satisfy All
+</FilesMatch>
+
+# ------------------------------------------------------------------------------
+# | Secure Sockets Layer (SSL)                                                 |
+# ------------------------------------------------------------------------------
+
+# Rewrite secure requests properly to prevent SSL certificate warnings, e.g.:
+# prevent `https://www.example.com` when your certificate only allows
+# `https://secure.example.com`.
+
+# <IfModule mod_rewrite.c>
+#    RewriteCond %{SERVER_PORT} !^443
+#    RewriteRule ^ https://example-domain-please-change-me.com%{REQUEST_URI} [R=301,L]
+# </IfModule>
+
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+# Force client-side SSL redirection.
+
+# If a user types "example.com" in his browser, the above rule will redirect him
+# to the secure version of the site. That still leaves a window of opportunity
+# (the initial HTTP connection) for an attacker to downgrade or redirect the
+# request. The following header ensures that browser will ONLY connect to your
+# server via HTTPS, regardless of what the users type in the address bar.
+# http://www.html5rocks.com/en/tutorials/security/transport-layer-security/
+
+# <IfModule mod_headers.c>
+#    Header set Strict-Transport-Security max-age=16070400;
+# </IfModule>
+
+# ------------------------------------------------------------------------------
+# | Server software information                                                |
+# ------------------------------------------------------------------------------
+
+# Avoid displaying the exact Apache version number, the description of the
+# generic OS-type and the information about Apache's compiled-in modules.
+
+# ADD THIS DIRECTIVE IN THE `httpd.conf` AS IT WILL NOT WORK IN THE `.htaccess`!
+
+# ServerTokens Prod
+
+
+# ##############################################################################
+# # WEB PERFORMANCE                                                            #
+# ##############################################################################
+
+# ------------------------------------------------------------------------------
+# | Compression                                                                |
+# ------------------------------------------------------------------------------
+
+<IfModule mod_deflate.c>
+
+    # Force compression for mangled headers.
+    # http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping
+    <IfModule mod_setenvif.c>
+        <IfModule mod_headers.c>
+            SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
+            RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
+        </IfModule>
+    </IfModule>
+
+    # Compress all output labeled with one of the following MIME-types
+    # (for Apache versions below 2.3.7, you don't need to enable `mod_filter`
+    #  and can remove the `<IfModule mod_filter.c>` and `</IfModule>` lines
+    #  as `AddOutputFilterByType` is still in the core directives).
+    <IfModule mod_filter.c>
+        AddOutputFilterByType DEFLATE application/atom+xml \
+                                      application/javascript \
+                                      application/json \
+                                      application/rss+xml \
+                                      application/vnd.ms-fontobject \
+                                      application/x-font-ttf \
+                                      application/x-web-app-manifest+json \
+                                      application/xhtml+xml \
+                                      application/xml \
+                                      font/opentype \
+                                      image/svg+xml \
+                                      image/x-icon \
+                                      text/css \
+                                      text/html \
+                                      text/plain \
+                                      text/x-component \
+                                      text/xml
+    </IfModule>
+
+</IfModule>
+
+# ------------------------------------------------------------------------------
+# | Content transformations                                                    |
+# ------------------------------------------------------------------------------
+
+# Prevent some of the mobile network providers from modifying the content of
+# your site: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.5.
+
+# <IfModule mod_headers.c>
+#    Header set Cache-Control "no-transform"
+# </IfModule>
+
+# ------------------------------------------------------------------------------
+# | ETag removal                                                               |
+# ------------------------------------------------------------------------------
+
+# Since we're sending far-future expires headers (see below), ETags can
+# be removed: http://developer.yahoo.com/performance/rules.html#etags.
+
+# `FileETag None` is not enough for every server.
+<IfModule mod_headers.c>
+    Header unset ETag
+</IfModule>
+
+FileETag None
+
+# ------------------------------------------------------------------------------
+# | Expires headers (for better cache control)                                 |
+# ------------------------------------------------------------------------------
+
+# The following expires headers are set pretty far in the future. If you don't
+# control versioning with filename-based cache busting, consider lowering the
+# cache time for resources like CSS and JS to something like 1 week.
+
+<IfModule mod_expires.c>
+
+    ExpiresActive on
+    ExpiresDefault                                      "access plus 1 month"
+
+  # CSS
+    ExpiresByType text/css                              "access plus 1 year"
+
+  # Data interchange
+    ExpiresByType application/json                      "access plus 0 seconds"
+    ExpiresByType application/xml                       "access plus 0 seconds"
+    ExpiresByType text/xml                              "access plus 0 seconds"
+
+  # Favicon (cannot be renamed!)
+    ExpiresByType image/x-icon                          "access plus 1 week"
+
+  # HTML components (HTCs)
+    ExpiresByType text/x-component                      "access plus 1 month"
+
+  # HTML
+    ExpiresByType text/html                             "access plus 0 seconds"
+
+  # JavaScript
+    ExpiresByType application/javascript                "access plus 1 year"
+
+  # Manifest files
+    ExpiresByType application/x-web-app-manifest+json   "access plus 0 seconds"
+    ExpiresByType text/cache-manifest                   "access plus 0 seconds"
+
+  # Media
+    ExpiresByType audio/ogg                             "access plus 1 month"
+    ExpiresByType image/gif                             "access plus 1 month"
+    ExpiresByType image/jpeg                            "access plus 1 month"
+    ExpiresByType image/png                             "access plus 1 month"
+    ExpiresByType video/mp4                             "access plus 1 month"
+    ExpiresByType video/ogg                             "access plus 1 month"
+    ExpiresByType video/webm                            "access plus 1 month"
+
+  # Web feeds
+    ExpiresByType application/atom+xml                  "access plus 1 hour"
+    ExpiresByType application/rss+xml                   "access plus 1 hour"
+
+  # Web fonts
+    ExpiresByType application/font-woff                 "access plus 1 month"
+    ExpiresByType application/vnd.ms-fontobject         "access plus 1 month"
+    ExpiresByType application/x-font-ttf                "access plus 1 month"
+    ExpiresByType font/opentype                         "access plus 1 month"
+    ExpiresByType image/svg+xml                         "access plus 1 month"
+
+</IfModule>
+
+# ------------------------------------------------------------------------------
+# | Filename-based cache busting                                               |
+# ------------------------------------------------------------------------------
+
+# If you're not using a build process to manage your filename version revving,
+# you might want to consider enabling the following directives to route all
+# requests such as `/css/style.12345.css` to `/css/style.css`.
+
+# To understand why this is important and a better idea than `*.css?v231`, read:
+# http://stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring
+
+# <IfModule mod_rewrite.c>
+#    RewriteCond %{REQUEST_FILENAME} !-f
+#    RewriteCond %{REQUEST_FILENAME} !-d
+#    RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L]
+# </IfModule>
+
+# ------------------------------------------------------------------------------
+# | File concatenation                                                         |
+# ------------------------------------------------------------------------------
+
+# Allow concatenation from within specific CSS and JS files, e.g.:
+# Inside of `script.combined.js` you could have
+#   <!--#include file="libs/jquery.js" -->
+#   <!--#include file="plugins/jquery.idletimer.js" -->
+# and they would be included into this single file.
+
+# <IfModule mod_include.c>
+#    <FilesMatch "\.combined\.js$">
+#        Options +Includes
+#        AddOutputFilterByType INCLUDES application/javascript application/json
+#        SetOutputFilter INCLUDES
+#    </FilesMatch>
+#    <FilesMatch "\.combined\.css$">
+#        Options +Includes
+#        AddOutputFilterByType INCLUDES text/css
+#        SetOutputFilter INCLUDES
+#    </FilesMatch>
+# </IfModule>
+
+# ------------------------------------------------------------------------------
+# | Persistent connections                                                     |
+# ------------------------------------------------------------------------------
+
+# Allow multiple requests to be sent over the same TCP connection:
+# http://httpd.apache.org/docs/current/en/mod/core.html#keepalive.
+
+# Enable if you serve a lot of static content but, be aware of the
+# possible disadvantages!
+
+# <IfModule mod_headers.c>
+#    Header set Connection Keep-Alive
+# </IfModule>

Propchange: airavata/sandbox/gsoc2013/app/.htaccess
------------------------------------------------------------------------------
    svn:executable = *

Added: airavata/sandbox/gsoc2013/app/404.html
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/404.html?rev=1506767&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/404.html (added)
+++ airavata/sandbox/gsoc2013/app/404.html Wed Jul 24 22:44:33 2013
@@ -0,0 +1,157 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+        <title>Page Not Found :(</title>
+        <style>
+            ::-moz-selection {
+                background: #b3d4fc;
+                text-shadow: none;
+            }
+
+            ::selection {
+                background: #b3d4fc;
+                text-shadow: none;
+            }
+
+            html {
+                padding: 30px 10px;
+                font-size: 20px;
+                line-height: 1.4;
+                color: #737373;
+                background: #f0f0f0;
+                -webkit-text-size-adjust: 100%;
+                -ms-text-size-adjust: 100%;
+            }
+
+            html,
+            input {
+                font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+            }
+
+            body {
+                max-width: 500px;
+                _width: 500px;
+                padding: 30px 20px 50px;
+                border: 1px solid #b3b3b3;
+                border-radius: 4px;
+                margin: 0 auto;
+                box-shadow: 0 1px 10px #a7a7a7, inset 0 1px 0 #fff;
+                background: #fcfcfc;
+            }
+
+            h1 {
+                margin: 0 10px;
+                font-size: 50px;
+                text-align: center;
+            }
+
+            h1 span {
+                color: #bbb;
+            }
+
+            h3 {
+                margin: 1.5em 0 0.5em;
+            }
+
+            p {
+                margin: 1em 0;
+            }
+
+            ul {
+                padding: 0 0 0 40px;
+                margin: 1em 0;
+            }
+
+            .container {
+                max-width: 380px;
+                _width: 380px;
+                margin: 0 auto;
+            }
+
+            /* google search */
+
+            #goog-fixurl ul {
+                list-style: none;
+                padding: 0;
+                margin: 0;
+            }
+
+            #goog-fixurl form {
+                margin: 0;
+            }
+
+            #goog-wm-qt,
+            #goog-wm-sb {
+                border: 1px solid #bbb;
+                font-size: 16px;
+                line-height: normal;
+                vertical-align: top;
+                color: #444;
+                border-radius: 2px;
+            }
+
+            #goog-wm-qt {
+                width: 220px;
+                height: 20px;
+                padding: 5px;
+                margin: 5px 10px 0 0;
+                box-shadow: inset 0 1px 1px #ccc;
+            }
+
+            #goog-wm-sb {
+                display: inline-block;
+                height: 32px;
+                padding: 0 10px;
+                margin: 5px 0 0;
+                white-space: nowrap;
+                cursor: pointer;
+                background-color: #f5f5f5;
+                background-image: -webkit-linear-gradient(rgba(255,255,255,0), #f1f1f1);
+                background-image: -moz-linear-gradient(rgba(255,255,255,0), #f1f1f1);
+                background-image: -ms-linear-gradient(rgba(255,255,255,0), #f1f1f1);
+                background-image: -o-linear-gradient(rgba(255,255,255,0), #f1f1f1);
+                -webkit-appearance: none;
+                -moz-appearance: none;
+                appearance: none;
+                *overflow: visible;
+                *display: inline;
+                *zoom: 1;
+            }
+
+            #goog-wm-sb:hover,
+            #goog-wm-sb:focus {
+                border-color: #aaa;
+                box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+                background-color: #f8f8f8;
+            }
+
+            #goog-wm-qt:hover,
+            #goog-wm-qt:focus {
+                border-color: #105cb6;
+                outline: 0;
+                color: #222;
+            }
+
+            input::-moz-focus-inner {
+                padding: 0;
+                border: 0;
+            }
+        </style>
+    </head>
+    <body>
+        <div class="container">
+            <h1>Not found <span>:(</span></h1>
+            <p>Sorry, but the page you were trying to view does not exist.</p>
+            <p>It looks like this was the result of either:</p>
+            <ul>
+                <li>a mistyped address</li>
+                <li>an out-of-date link</li>
+            </ul>
+            <script>
+                var GOOG_FIXURL_LANG = (navigator.language || '').slice(0,2),GOOG_FIXURL_SITE = location.host;
+            </script>
+            <script src="//linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
+        </div>
+    </body>
+</html>

Propchange: airavata/sandbox/gsoc2013/app/404.html
------------------------------------------------------------------------------
    svn:executable = *

Added: airavata/sandbox/gsoc2013/app/favicon.ico
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/favicon.ico?rev=1506767&view=auto
==============================================================================
Binary file - no diff available.

Propchange: airavata/sandbox/gsoc2013/app/favicon.ico
------------------------------------------------------------------------------
    svn:executable = *

Propchange: airavata/sandbox/gsoc2013/app/favicon.ico
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: airavata/sandbox/gsoc2013/app/index.html
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/index.html?rev=1506767&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/index.html (added)
+++ airavata/sandbox/gsoc2013/app/index.html Wed Jul 24 22:44:33 2013
@@ -0,0 +1,108 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<!doctype html>
+<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
+<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
+<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <title>Apache Airavata WebUI</title>
+  <title>Execution Interface, Apache Airavata</title>
+  <meta name="description" content="WebUI for Apache Airavata">
+  <meta name="viewport" content="width=device-width">
+
+  <!-- build:css({.tmp,app}) styles/main.css -->
+  <link rel="stylesheet" href="styles/main.css">
+  <!-- endbuild -->
+</head>
+
+<body ng-app="WebUI">
+  <!--[if lt IE 7]>
+    <p class="chromeframe">You are using an outdated browser. <a href="http://browsehappy.com/">Upgrade your browser today</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to better experience this site.</p>
+  <![endif]-->
+
+  <!--[if lt IE 9]>
+    <script src="bower_components/es5-shim/es5-shim.js"></script>
+    <script src="bower_components/json3/lib/json3.min.js"></script>
+  <![endif]-->
+
+  <!-- The Navbar -->
+  <div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+      <div class="container">
+        <!-- Responsive Navbar -->
+        <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+          <span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span>
+        </a>
+        <!-- Brand -->
+        <span class="brand" href="#">Apache Airavata WebUI</span>
+        <!-- Navbar -->
+        <div class="nav-collapse collapse" ui-view="navbar"></div>
+      </div>
+    </div>
+  </div>
+
+  <!-- The Content -->
+  <div class="container-fluid" style="padding-top: 60px">
+    <div class="row-fluid">
+      <div class="span3">
+        <div class="well sidebar-nav" ui-view="sidenavbar"></div>
+      </div>
+      <div class="span9" ui-view="canvas"></div>
+    </div>
+  </div>
+
+  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>
+  <script>window.angular || document.write('<script src="bower_components/angular/angular.js"><\/script>')</script>
+
+  <!-- build:js({.tmp,app}) scripts/scripts.js -->
+  <script src="scripts/app.js"></script>
+  <script src="scripts/controllers/main.js"></script>
+  <!-- endbuild -->
+
+  <!-- build:js scripts/plugins.js -->
+  <script src="bower_components/jquery/jquery.js"></script>
+  <script src="bower_components/bootstrap-sass/js/bootstrap-affix.js"></script>
+  <script src="bower_components/bootstrap-sass/js/bootstrap-alert.js"></script>
+  <script src="bower_components/bootstrap-sass/js/bootstrap-dropdown.js"></script>
+  <script src="bower_components/bootstrap-sass/js/bootstrap-tooltip.js"></script>
+  <script src="bower_components/bootstrap-sass/js/bootstrap-modal.js"></script>
+  <script src="bower_components/bootstrap-sass/js/bootstrap-transition.js"></script>
+  <script src="bower_components/bootstrap-sass/js/bootstrap-button.js"></script>
+  <script src="bower_components/bootstrap-sass/js/bootstrap-popover.js"></script>
+  <script src="bower_components/bootstrap-sass/js/bootstrap-typeahead.js"></script>
+  <script src="bower_components/bootstrap-sass/js/bootstrap-carousel.js"></script>
+  <script src="bower_components/bootstrap-sass/js/bootstrap-scrollspy.js"></script>
+  <script src="bower_components/bootstrap-sass/js/bootstrap-collapse.js"></script>
+  <script src="bower_components/bootstrap-sass/js/bootstrap-tab.js"></script>
+  <!-- endbuild -->
+
+  <!-- build:js scripts/modules.js -->
+  <script src="bower_components/angular-resource/angular-resource.js"></script>
+  <script src="bower_components/angular-cookies/angular-cookies.js"></script>
+  <script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
+  <script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script>
+  <!-- endbuild -->
+
+</body>
+
+</html>

Added: airavata/sandbox/gsoc2013/app/robots.txt
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/robots.txt?rev=1506767&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/robots.txt (added)
+++ airavata/sandbox/gsoc2013/app/robots.txt Wed Jul 24 22:44:33 2013
@@ -0,0 +1,3 @@
+# robotstxt.org
+
+User-agent: *

Propchange: airavata/sandbox/gsoc2013/app/robots.txt
------------------------------------------------------------------------------
    svn:executable = *

Added: airavata/sandbox/gsoc2013/app/scripts/app.js
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/scripts/app.js?rev=1506767&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/scripts/app.js (added)
+++ airavata/sandbox/gsoc2013/app/scripts/app.js Wed Jul 24 22:44:33 2013
@@ -0,0 +1,75 @@
+'use strict';
+
+var app = angular.module('WebUI', ['ui.state']);
+
+// Configure the routing information for the webapp
+app.config(function ($stateProvider, $routeProvider) {
+  // Views corresponding to the state of the application when just loaded
+  $stateProvider.state('index', {
+    url: '',
+    views: {
+      'navbar': {
+        templateUrl: 'views/index.navbar.html'
+      },
+      'sidenavbar': {
+        templateUrl: 'views/index.sidenavbar.html'
+      },
+      'canvas': {
+        templateUrl: 'views/index.canvas.html'
+      }
+    }
+  });
+  // Views corresponding to the worklow creation interface
+  $stateProvider.state('create', {
+    url: '/create',
+    views: {
+      'navbar': {
+        templateUrl: 'views/index.navbar.html'
+      },
+      'sidenavbar': {
+        templateUrl: 'views/create.sidenavbar.html'
+      },
+      'canvas': {
+        templateUrl: 'views/create.canvas.html'
+      }
+    }
+  });
+  // Views corresponding to the workflow execution and monitoring interface
+  $stateProvider.state('exec', {
+    url: '/exec',
+    views: {
+      'navbar': {
+        templateUrl: 'views/exec.navbar.html'
+      },
+      'sidenavbar': {
+        templateUrl: 'views/exec.sidenavbar.html'
+      },
+      'canvas': {
+        templateUrl: 'views/exec.canvas.html'
+      }
+    }
+  });
+});
+
+// Render markdown in the HTML page
+// Use as - <markdown>....</markdown> or <markdown src="foo.md"></markdown>
+app.directive("markdown", function ($compile, $http, $interpolate) {
+  var converter = new Showdown.converter();
+  return {
+    restrict: 'E',
+    replace: true,
+    link: function (scope, element, attrs) {
+      if ("src" in attrs) {
+        attrs.$observe('src', function (value) {
+          if (value) {
+            $http.get(attrs.src).then(function (data) {
+              element.html(converter.makeHtml(data.data));
+            });
+          }
+        });
+      } else {
+        element.html(converter.makeHtml(element.text()));
+      }
+    }
+  };
+});

Added: airavata/sandbox/gsoc2013/app/scripts/controllers/executionInterfaceCntl.js
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/scripts/controllers/executionInterfaceCntl.js?rev=1506767&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/scripts/controllers/executionInterfaceCntl.js (added)
+++ airavata/sandbox/gsoc2013/app/scripts/controllers/executionInterfaceCntl.js Wed Jul 24 22:44:33 2013
@@ -0,0 +1,65 @@
+/**
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+
+/*
+ *
+ * Controllers for the execution interface
+ *
+ */
+
+// The angular module for the execution interface which depends on Angular-UI
+var executionInterface = angular.module('executionInterface',['ui']).
+    config(function($routeProvider) {
+        $routeProvider.
+            when('/', {controller:executionInterfaceCntl, templateUrl:'launchWorkflow.html'});
+    });
+
+//Main Controller for execution Interface
+var executionInterfaceCntl=function ($scope,$routeParams,$http) {
+
+    //Variables related to Run Workflow
+
+    $scope.isWorkflowOpen=true;
+    $scope.isWorkflowRunning=false;
+    $scope.workflowInputs=[];
+    $scope.experimentName='';
+    $scope.workflowInterpreterURL='';
+    $scope.gfacURL='';
+    $scope.templateId=$routeParams.templateId;
+
+    //$scope.workflowInputs.push({"id":$scope.experimentName,"name":$scope.experimentName,"datatype":"","value":"Experiment Name"});
+    //$scope.workflowInputs.push({"id":$scope.workflowInterpreterURL,"name":$scope.workflowInterpreterURL,"datatype":"","value":"Workflow Interpreter URL"});
+    //$scope.workflowInputs.push({"id":$scope.gfacURL,"name":$scope.gfacURL,"datatype":"","value":"gfacURL"});
+
+    //get the inputs for the open workflow to render run workflow modal
+    $scope.getWorkflowInputs=function($scope){
+          //Airavata Client API call to get number of inputs for given template id
+    };
+
+    //validate the inputs
+    $scope.validateInputs=function($scope){
+
+    };
+
+    //run experiment
+    $scope.runExperiment=function($scope){
+         //Airavata client API call to run experiment with
+    };
+
+}

Added: airavata/sandbox/gsoc2013/app/scripts/controllers/main.js
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/scripts/controllers/main.js?rev=1506767&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/scripts/controllers/main.js (added)
+++ airavata/sandbox/gsoc2013/app/scripts/controllers/main.js Wed Jul 24 22:44:33 2013
@@ -0,0 +1,12 @@
+'use strict';
+
+angular.module('WebUI')
+  .controller('MainCtrl', function ($scope) {
+    $scope.awesomeThings = [
+      'HTML5 Boilerplate',
+      'Twitter Bootstrap',
+      'AngularJS',
+      'Karma',
+      'Font-Awesome'
+    ];
+  });

Added: airavata/sandbox/gsoc2013/app/scripts/model/workflow_execution_context.json
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/scripts/model/workflow_execution_context.json?rev=1506767&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/scripts/model/workflow_execution_context.json (added)
+++ airavata/sandbox/gsoc2013/app/scripts/model/workflow_execution_context.json Wed Jul 24 22:44:33 2013
@@ -0,0 +1,336 @@
+{
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "title": "Workflow Execution Context",
+    "description":"JSON schema for Workflow Execution Context",
+    "type": "object",
+    "id": "http://airavata.apache.org/schemas/wec/2012/05#",
+    "required": ["context-header"],
+    "properties": {
+        "context-header": {
+            "type": "object",
+            "required": ["soa-service-eprs" , "workflow-monitoring-context"],
+            "description": "Element that contains Airavata specific context information sent as a SOAP header in a SOAP message.",
+            "properties": {
+                "user-identifier": {
+                    "$ref": "#/definitions/user-identifier"
+
+                },
+                "soa-service-eprs": {
+                    "$ref": "#/definitions/soa-service-eprs"
+                },
+                "workflow-monitoring-context": {
+                    "$ref": "#/definitions/workflow-monitoring-context"
+                },
+                "workflow-scheduling-context": {
+                    "$ref": "#/definitions/workflow-scheduling-context"
+                },
+                "workflow-output-data-handling": {
+                    "$ref": "#/definitions/workflow-output-data-handling"
+                },
+                "security-context": {
+                    "$ref": "#/definitions/security-context"
+                }
+            }
+        }
+    },
+    "definitions": {
+        "user-identifier": {
+            "type": "string",
+            "description": "User that the workflow is executed on behalf of, user id is used to catalog data and for monitoring purposes"
+        },
+        "soa-service-eprs": {
+            "type": "object",
+            "required": ["gfac-url" , "registry-url"],
+            "description": "Element that contains persistent service end points within the system.",
+            "properties": {
+                "gfac-url": {
+                    "type": "string",         // any URI
+                    "description": "Location of GFac factory service to use."
+                },
+                "registry-url": {
+                    "type": "string",        // any URI
+                    "description": "Location of Registry service to use."
+                },
+                "resource-scheduler-url": {
+                    "type": "string",
+                    "description": "Resource Scheduler to use. (optional)"
+                },
+                "hostDescriptor": {
+                    "type": "string",
+                    "description": "Which Host Descriptor to be picked. (optional)"
+                }
+            }
+        },
+        "workflow-monitoring-context": {
+            "type": "object",
+            "required": ["experiment-id", "workflow-instance-id", "workflow-template-id", "workflow-node-id", "workflow-time-step", "service-instance-id", "service-replica-id", "event-publish-epr", "error-publish-epr", "msg-box-epr"],
+            "description": "Workflow context for execution of a instance used to relate the specific activity in the context of workflow and used for monitoring and illustarting the workflow progress.",
+            "properties": {
+                "experiment-id": {
+                    "type": "string",
+                    "description": "Experiment ID (REQUIRED in context), Defines the context of the workflow."
+                },
+                "workflow-instance-id": {
+                    "type": "string",
+                    "description": "URI that identifies workflow instance that originated the message."
+                },
+                "workflow-template-id": {
+                    "type": "string",
+                    "description": "URI that identifies workflow template that was used to create the workflow instance."
+                },
+                "workflow-node-id": {
+                    "type": "string",
+                    "description": "String that identifies uniqueley a node in workflow graph that originated that message."
+                },
+                "workflow-time-step": {
+                    "type": "integer",
+                    "description": "Increasing integer representing time in the workflow execution when the message originated."
+                },
+                "service-instance-id": {
+                    "type": "string",
+                    "description": "URI that identifies service instance that originated that message."
+                },
+                "service-replica-id": {
+                    "type": "string",
+                    "description": "URI that identifies the replica of service instance that originated that message, primarly used by Fault Tolerance service to overprovision."
+                },
+                "event-publish-epr": {
+                    "type": "string",
+                    "description": "EPR for WS-Eventing sink where to send event. (optional) NOTE: currently any XML is accepted as there are many versions of WS-Addressing."
+                },
+                "notification-topic": {
+                    "type": "string",
+                    "description": "A Unique String to set as the topic for events sent on an experiment. The topic may be embedded with the event-publish-epr. An experiment id being unique may be chosen as topic."
+                },
+                "error-publish-epr": {
+                    "type": "string",
+                    "description": "EPR for WS-Eventing sink where to send errors (optional) NOTE: designed good for debugging and system level warnings, errors, etc"
+                },
+                "msg-box-epr": {
+                    "type": "string",
+                    "description": "EPR for WS-Eventing sink where to send errors (optional) NOTE: designed good for debugging and system level warnings, errors, etc"
+                }
+            }
+        },
+        "workflow-scheduling-context": {
+            "type": "object",
+            "required": ["application-scheduling-context"],
+            "description": "Element that contains service specific resource scheduling information sent inside workflow context. The purpose of this context is to schedule individual activities on a different resource.",
+            "properties": {
+                "application-scheduling-context": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/application-scheduling-context"
+                    },
+                    "minItems": 1
+                },
+                "nameValuePairType": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/nameValuePairType"
+                    }
+                }
+
+            }
+        },
+        "workflow-output-data-handling": {
+            "type": "object",
+            "description": "Element that contains application specific resource scheduling information sent inside workflow context. The purpose of this context is to handle individual activities with different needs like intermediate data need not be persisted.",
+            "required": ["application-output-data-handling"],
+            "properties": {
+                "application-output-data-handling": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/application-output-data-handling"
+                    },
+                    "minItems": 1
+                }
+            }
+        },
+        "security-context": {
+            "type": "object",
+            "required": ["grid-proxy", "grid-myproxy-repository" , "ssh-authentication", "credential-management-service"],
+            "description": "Security context for execution of the workflow",
+            "properties": {
+                "grid-proxy": {
+                    "type": "string",    // base64Binary
+                    "description": "Security context for Grid Security Infrastructure X509 Proxy with trusted chain."
+                },
+                "grid-myproxy-repository": {
+                    "type": "object",
+                    "description": "Security context for Grid Security MyProxy Service",
+                    "required": ["myproxy-server", "username", "password", "life-time-inhours"],
+                    "properties": {
+                        "myproxy-server": {
+                            "type": "string",
+                            "description": "schema for an fstab entry"
+                        },
+                        "username": {
+                            "type": "string",
+                            "description": "MyProxy User Name."
+                        },
+                        "password": {
+                            "type": "string",
+                            "description": "MyProxy Password."
+                        },
+                        "life-time-inhours": {
+                            "type": "integer",
+                            "description": "MyProxy Proxy Life time."
+                        }
+                    }
+                },
+                "ssh-authentication": {
+                    "type": "object",
+                    "required": ["access-key-id", "secret-access-key"],
+                    "description": "Security context for execution of the workflow on SSH accessed resources.",
+                    "properties": {
+                        "access-key-id": {
+                            "type": "string",
+                            "description": "Amazon Web Services Public Access Key ID used to contact the AWS API's."
+                        },
+                        "secret-access-key": {
+                            "type": "string",
+                            "description": "Amazon Web Services AWS Private Secret Access Key."
+                        }
+                    }
+                },
+                "credential-management-service": {
+                    "type": "object",
+                    "required": ["token_id", "portal-user" ],
+                    "description": "Security context for execution of the workflow",
+                    "properties": {
+                        "token_id": {
+                            "type": "string",
+                            "description": "Token id used in credential-store. Represents the community user."
+                        },
+                        "portal-user": {
+                            "type": "string",
+                            "description": "The portal user id who is invoking the workflow."
+                        }
+                    }
+                },
+                "amazon-webservices": {
+                    "type": "object",
+                    "required": ["access-key-id","secret-access-key", "ami-id", "instance-id", "instance-type", "username"],
+                    "description": "Security context for execution of the workflow",
+                    "properties": {
+                        "access-key-id": {
+                            "type": "string",
+                            "description": "Amazon Web Services Public Access Key ID used to contact the AWS API's."
+                        },
+                        "secret-access-key": {
+                            "type": "string",
+                            "description": "Amazon Web Services AWS Private Secret Access Key."
+                        },
+                        "ami-id": {
+                            "type": "string",
+                            "description": "Amazon Web Services AWS Amazon Machine Image (AMI) ID"
+                        },
+                        "instance-id": {
+                            "type": "string",
+                            "description": "Amazon Web Services AWS Instance ID."
+                        },
+                        "instance-type": {
+                            "type": "string",
+                            "description": "Amazon Web Services AWS Instance Type."
+                        },
+                        "username": {
+                            "type": "string",
+                            "description": "Amazon Web Services AWS Username."
+                        }
+                    }
+                }
+            }
+        },
+        "application-scheduling-context": {
+            "type": "object",
+            "required": ["@workflow-node-id", "@job-manager" , "@queue-name"],
+            "description": "Element text contains host name for the resource.",
+            "properties": {
+                "@workflow-node-id": {
+                    "type": "string",
+                    "description": "This is workflow node ID that is mapped to a resource."
+                },
+                "@service-id": {
+                    "type": "string",    // any URI
+                    "description": "This is service ID."
+                },
+                "@host-name": {
+                    "type": "string",    // any URI
+                    "description": "head node of the resource"
+                },
+                "@wsgram-preferred": {
+                    "type": "boolean",
+                    "description": "If true then wsgram will be used, false pre-wsgram will be used."
+                },
+                "@gatekeeper-epr": {
+                    "type": "string",    // any URI
+                    "description": "GRAM EPR of the resource"
+                },
+                "@job-manager": {
+                    "type": "string",
+                    "description": "LRM job manager on the resource, ex: PBS, LSF."
+                },
+                "@cpu-count": {
+                    "type": "integer",
+                    "description": "number of CPU's allocated on the compute cluster"
+                },
+                "@node-count": {
+                    "type": "integer",
+                    "description": "number of nodes allocated on the compute cluster"
+                },
+                "@queue-name": {
+                    "type": "string",
+                    "description": "Job queue name if any."
+                },
+                "@max-wall-time": {
+                    "type": "integer",
+                    "description": "number of CPU's allocated on the compute cluster"
+                }
+            }
+        },
+        "nameValuePair": {
+            "type": "object",
+            "required": ["@name" , "@value"],
+            "description": "Name-Value pair",
+            "properties": {
+                "@workflow-node-id": {
+                    "type": "string"
+                },
+                "@name": {
+                    "type": "string"
+                },
+                "@value": {
+                    "type": "string"
+                },
+                "@description": {
+                    "type": "string"
+                }
+            }
+        },
+        "application-output-data-handling": {
+            "type": "object",
+            "required": ["node-id", "data-registry-url", "output-data-directory", "data-persistance"],
+            "description": "schema for an fstab entry",
+            "properties": {
+                "node-id": {
+                    "type": "string",
+                    "description": " If the workflow outputs are to be staged to a pre-specified location, then the output data staging directory should be provided."
+                },
+                "data-registry-url": {
+                    "type": "string",     // any URI
+                    "description": "If a seperate Data Registry is used for catlogging data, the associated location of the Data registry"
+                },
+                "output-data-directory": {
+                    "type": "string",         // any URI
+                    "description": "If the workflow outputs are to be staged to a pre-specified location, then the output data staging directory should be provided."
+                },
+                "data-persistance": {
+                    "type": "boolean",
+                    "description": "If the intermediate workflow outputs are to be discarded after execution, this flag should be set to false. By defualt this flag should be true assuming all data will be persisted."
+                }
+            }
+        }
+
+    }
+}