You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2015/06/23 22:49:24 UTC

[2/2] airavata git commit: messaging classes changes and fixing some compliation issues

messaging classes changes and fixing some compliation issues


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/e5d861e7
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/e5d861e7
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/e5d861e7

Branch: refs/heads/master
Commit: e5d861e70187a645d3b9041df9206e97752b4e43
Parents: 9f2c086
Author: Chathuri Wimalasena <ch...@apache.org>
Authored: Tue Jun 23 16:49:14 2015 -0400
Committer: Chathuri Wimalasena <ch...@apache.org>
Committed: Tue Jun 23 16:49:14 2015 -0400

----------------------------------------------------------------------
 .../src/main/resources/lib/airavata/Airavata.h  | 152 ++++-----
 .../model/experiment/ExperimentModel.java       | 213 +++++++++----
 .../experiment/ExperimentSummaryModel.java      | 149 +++++++--
 .../event/ProcessStatusChangeRequestEvent.java  |  22 +-
 .../apache/airavata/gfac/core/GFacUtils.java    |  67 +++-
 .../gfac/impl/AiravataJobStatusUpdator.java     | 240 +++++++-------
 .../gfac/impl/AiravataProcessStatusUpdator.java | 254 ++++++++-------
 .../gfac/impl/AiravataTaskStatusUpdator.java    | 318 +++++++++----------
 .../core/impl/RabbitMQStatusConsumer.java       |   2 +-
 .../utils/ThriftDataModelConversion.java        |   6 +-
 .../airavata-api/experiment_model.thrift        |  42 +--
 .../airavata-api/messaging_events.thrift        |   2 +-
 12 files changed, 860 insertions(+), 607 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/e5d861e7/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
index fc24060..f96e9ad 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
@@ -5184,8 +5184,8 @@ typedef struct _Airavata_searchExperimentsByName_result__isset {
 class Airavata_searchExperimentsByName_result {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
   Airavata_searchExperimentsByName_result(const Airavata_searchExperimentsByName_result&);
   Airavata_searchExperimentsByName_result& operator=(const Airavata_searchExperimentsByName_result&);
@@ -5243,8 +5243,8 @@ typedef struct _Airavata_searchExperimentsByName_presult__isset {
 class Airavata_searchExperimentsByName_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
 
   virtual ~Airavata_searchExperimentsByName_presult() throw();
@@ -5346,8 +5346,8 @@ typedef struct _Airavata_searchExperimentsByNameWithPagination_result__isset {
 class Airavata_searchExperimentsByNameWithPagination_result {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
   Airavata_searchExperimentsByNameWithPagination_result(const Airavata_searchExperimentsByNameWithPagination_result&);
   Airavata_searchExperimentsByNameWithPagination_result& operator=(const Airavata_searchExperimentsByNameWithPagination_result&);
@@ -5405,8 +5405,8 @@ typedef struct _Airavata_searchExperimentsByNameWithPagination_presult__isset {
 class Airavata_searchExperimentsByNameWithPagination_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
 
   virtual ~Airavata_searchExperimentsByNameWithPagination_presult() throw();
@@ -5496,8 +5496,8 @@ typedef struct _Airavata_searchExperimentsByDesc_result__isset {
 class Airavata_searchExperimentsByDesc_result {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
   Airavata_searchExperimentsByDesc_result(const Airavata_searchExperimentsByDesc_result&);
   Airavata_searchExperimentsByDesc_result& operator=(const Airavata_searchExperimentsByDesc_result&);
@@ -5555,8 +5555,8 @@ typedef struct _Airavata_searchExperimentsByDesc_presult__isset {
 class Airavata_searchExperimentsByDesc_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
 
   virtual ~Airavata_searchExperimentsByDesc_presult() throw();
@@ -5658,8 +5658,8 @@ typedef struct _Airavata_searchExperimentsByDescWithPagination_result__isset {
 class Airavata_searchExperimentsByDescWithPagination_result {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
   Airavata_searchExperimentsByDescWithPagination_result(const Airavata_searchExperimentsByDescWithPagination_result&);
   Airavata_searchExperimentsByDescWithPagination_result& operator=(const Airavata_searchExperimentsByDescWithPagination_result&);
@@ -5717,8 +5717,8 @@ typedef struct _Airavata_searchExperimentsByDescWithPagination_presult__isset {
 class Airavata_searchExperimentsByDescWithPagination_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
 
   virtual ~Airavata_searchExperimentsByDescWithPagination_presult() throw();
@@ -5808,8 +5808,8 @@ typedef struct _Airavata_searchExperimentsByApplication_result__isset {
 class Airavata_searchExperimentsByApplication_result {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
   Airavata_searchExperimentsByApplication_result(const Airavata_searchExperimentsByApplication_result&);
   Airavata_searchExperimentsByApplication_result& operator=(const Airavata_searchExperimentsByApplication_result&);
@@ -5867,8 +5867,8 @@ typedef struct _Airavata_searchExperimentsByApplication_presult__isset {
 class Airavata_searchExperimentsByApplication_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
 
   virtual ~Airavata_searchExperimentsByApplication_presult() throw();
@@ -5970,8 +5970,8 @@ typedef struct _Airavata_searchExperimentsByApplicationWithPagination_result__is
 class Airavata_searchExperimentsByApplicationWithPagination_result {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
   Airavata_searchExperimentsByApplicationWithPagination_result(const Airavata_searchExperimentsByApplicationWithPagination_result&);
   Airavata_searchExperimentsByApplicationWithPagination_result& operator=(const Airavata_searchExperimentsByApplicationWithPagination_result&);
@@ -6029,8 +6029,8 @@ typedef struct _Airavata_searchExperimentsByApplicationWithPagination_presult__i
 class Airavata_searchExperimentsByApplicationWithPagination_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
 
   virtual ~Airavata_searchExperimentsByApplicationWithPagination_presult() throw();
@@ -6120,8 +6120,8 @@ typedef struct _Airavata_searchExperimentsByStatus_result__isset {
 class Airavata_searchExperimentsByStatus_result {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
   Airavata_searchExperimentsByStatus_result(const Airavata_searchExperimentsByStatus_result&);
   Airavata_searchExperimentsByStatus_result& operator=(const Airavata_searchExperimentsByStatus_result&);
@@ -6179,8 +6179,8 @@ typedef struct _Airavata_searchExperimentsByStatus_presult__isset {
 class Airavata_searchExperimentsByStatus_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
 
   virtual ~Airavata_searchExperimentsByStatus_presult() throw();
@@ -6282,8 +6282,8 @@ typedef struct _Airavata_searchExperimentsByStatusWithPagination_result__isset {
 class Airavata_searchExperimentsByStatusWithPagination_result {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
   Airavata_searchExperimentsByStatusWithPagination_result(const Airavata_searchExperimentsByStatusWithPagination_result&);
   Airavata_searchExperimentsByStatusWithPagination_result& operator=(const Airavata_searchExperimentsByStatusWithPagination_result&);
@@ -6341,8 +6341,8 @@ typedef struct _Airavata_searchExperimentsByStatusWithPagination_presult__isset
 class Airavata_searchExperimentsByStatusWithPagination_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
 
   virtual ~Airavata_searchExperimentsByStatusWithPagination_presult() throw();
@@ -6438,8 +6438,8 @@ typedef struct _Airavata_searchExperimentsByCreationTime_result__isset {
 class Airavata_searchExperimentsByCreationTime_result {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
   Airavata_searchExperimentsByCreationTime_result(const Airavata_searchExperimentsByCreationTime_result&);
   Airavata_searchExperimentsByCreationTime_result& operator=(const Airavata_searchExperimentsByCreationTime_result&);
@@ -6497,8 +6497,8 @@ typedef struct _Airavata_searchExperimentsByCreationTime_presult__isset {
 class Airavata_searchExperimentsByCreationTime_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
 
   virtual ~Airavata_searchExperimentsByCreationTime_presult() throw();
@@ -6606,8 +6606,8 @@ typedef struct _Airavata_searchExperimentsByCreationTimeWithPagination_result__i
 class Airavata_searchExperimentsByCreationTimeWithPagination_result {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
   Airavata_searchExperimentsByCreationTimeWithPagination_result(const Airavata_searchExperimentsByCreationTimeWithPagination_result&);
   Airavata_searchExperimentsByCreationTimeWithPagination_result& operator=(const Airavata_searchExperimentsByCreationTimeWithPagination_result&);
@@ -6665,8 +6665,8 @@ typedef struct _Airavata_searchExperimentsByCreationTimeWithPagination_presult__
 class Airavata_searchExperimentsByCreationTimeWithPagination_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
 
   virtual ~Airavata_searchExperimentsByCreationTimeWithPagination_presult() throw();
@@ -6774,8 +6774,8 @@ typedef struct _Airavata_searchExperiments_result__isset {
 class Airavata_searchExperiments_result {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
   Airavata_searchExperiments_result(const Airavata_searchExperiments_result&);
   Airavata_searchExperiments_result& operator=(const Airavata_searchExperiments_result&);
@@ -6833,8 +6833,8 @@ typedef struct _Airavata_searchExperiments_presult__isset {
 class Airavata_searchExperiments_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "42C045C04A8CEA6886E926734307D00A";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xC0,0x45,0xC0,0x4A,0x8C,0xEA,0x68,0x86,0xE9,0x26,0x73,0x43,0x07,0xD0,0x0A};
+  static const char* ascii_fingerprint; // = "37CB1A365AF0B5B79F70F21120E9000F";
+  static const uint8_t binary_fingerprint[16]; // = {0x37,0xCB,0x1A,0x36,0x5A,0xF0,0xB5,0xB7,0x9F,0x70,0xF2,0x11,0x20,0xE9,0x00,0x0F};
 
 
   virtual ~Airavata_searchExperiments_presult() throw();
@@ -6924,8 +6924,8 @@ typedef struct _Airavata_getExperimentStatistics_result__isset {
 class Airavata_getExperimentStatistics_result {
  public:
 
-  static const char* ascii_fingerprint; // = "EFA330A5EED15B2634459EEE93B0658D";
-  static const uint8_t binary_fingerprint[16]; // = {0xEF,0xA3,0x30,0xA5,0xEE,0xD1,0x5B,0x26,0x34,0x45,0x9E,0xEE,0x93,0xB0,0x65,0x8D};
+  static const char* ascii_fingerprint; // = "32AFDEED2EA29DFEE6B888F48B8658C5";
+  static const uint8_t binary_fingerprint[16]; // = {0x32,0xAF,0xDE,0xED,0x2E,0xA2,0x9D,0xFE,0xE6,0xB8,0x88,0xF4,0x8B,0x86,0x58,0xC5};
 
   Airavata_getExperimentStatistics_result(const Airavata_getExperimentStatistics_result&);
   Airavata_getExperimentStatistics_result& operator=(const Airavata_getExperimentStatistics_result&);
@@ -6983,8 +6983,8 @@ typedef struct _Airavata_getExperimentStatistics_presult__isset {
 class Airavata_getExperimentStatistics_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "EFA330A5EED15B2634459EEE93B0658D";
-  static const uint8_t binary_fingerprint[16]; // = {0xEF,0xA3,0x30,0xA5,0xEE,0xD1,0x5B,0x26,0x34,0x45,0x9E,0xEE,0x93,0xB0,0x65,0x8D};
+  static const char* ascii_fingerprint; // = "32AFDEED2EA29DFEE6B888F48B8658C5";
+  static const uint8_t binary_fingerprint[16]; // = {0x32,0xAF,0xDE,0xED,0x2E,0xA2,0x9D,0xFE,0xE6,0xB8,0x88,0xF4,0x8B,0x86,0x58,0xC5};
 
 
   virtual ~Airavata_getExperimentStatistics_presult() throw();
@@ -7063,8 +7063,8 @@ typedef struct _Airavata_getAllExperimentsInProject_result__isset {
 class Airavata_getAllExperimentsInProject_result {
  public:
 
-  static const char* ascii_fingerprint; // = "DEA1EB488417A303F6A4F34262D55E14";
-  static const uint8_t binary_fingerprint[16]; // = {0xDE,0xA1,0xEB,0x48,0x84,0x17,0xA3,0x03,0xF6,0xA4,0xF3,0x42,0x62,0xD5,0x5E,0x14};
+  static const char* ascii_fingerprint; // = "6B4769CBA7068AF3BD2B200CE0A4C648";
+  static const uint8_t binary_fingerprint[16]; // = {0x6B,0x47,0x69,0xCB,0xA7,0x06,0x8A,0xF3,0xBD,0x2B,0x20,0x0C,0xE0,0xA4,0xC6,0x48};
 
   Airavata_getAllExperimentsInProject_result(const Airavata_getAllExperimentsInProject_result&);
   Airavata_getAllExperimentsInProject_result& operator=(const Airavata_getAllExperimentsInProject_result&);
@@ -7128,8 +7128,8 @@ typedef struct _Airavata_getAllExperimentsInProject_presult__isset {
 class Airavata_getAllExperimentsInProject_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "DEA1EB488417A303F6A4F34262D55E14";
-  static const uint8_t binary_fingerprint[16]; // = {0xDE,0xA1,0xEB,0x48,0x84,0x17,0xA3,0x03,0xF6,0xA4,0xF3,0x42,0x62,0xD5,0x5E,0x14};
+  static const char* ascii_fingerprint; // = "6B4769CBA7068AF3BD2B200CE0A4C648";
+  static const uint8_t binary_fingerprint[16]; // = {0x6B,0x47,0x69,0xCB,0xA7,0x06,0x8A,0xF3,0xBD,0x2B,0x20,0x0C,0xE0,0xA4,0xC6,0x48};
 
 
   virtual ~Airavata_getAllExperimentsInProject_presult() throw();
@@ -7221,8 +7221,8 @@ typedef struct _Airavata_getAllExperimentsInProjectWithPagination_result__isset
 class Airavata_getAllExperimentsInProjectWithPagination_result {
  public:
 
-  static const char* ascii_fingerprint; // = "DEA1EB488417A303F6A4F34262D55E14";
-  static const uint8_t binary_fingerprint[16]; // = {0xDE,0xA1,0xEB,0x48,0x84,0x17,0xA3,0x03,0xF6,0xA4,0xF3,0x42,0x62,0xD5,0x5E,0x14};
+  static const char* ascii_fingerprint; // = "6B4769CBA7068AF3BD2B200CE0A4C648";
+  static const uint8_t binary_fingerprint[16]; // = {0x6B,0x47,0x69,0xCB,0xA7,0x06,0x8A,0xF3,0xBD,0x2B,0x20,0x0C,0xE0,0xA4,0xC6,0x48};
 
   Airavata_getAllExperimentsInProjectWithPagination_result(const Airavata_getAllExperimentsInProjectWithPagination_result&);
   Airavata_getAllExperimentsInProjectWithPagination_result& operator=(const Airavata_getAllExperimentsInProjectWithPagination_result&);
@@ -7286,8 +7286,8 @@ typedef struct _Airavata_getAllExperimentsInProjectWithPagination_presult__isset
 class Airavata_getAllExperimentsInProjectWithPagination_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "DEA1EB488417A303F6A4F34262D55E14";
-  static const uint8_t binary_fingerprint[16]; // = {0xDE,0xA1,0xEB,0x48,0x84,0x17,0xA3,0x03,0xF6,0xA4,0xF3,0x42,0x62,0xD5,0x5E,0x14};
+  static const char* ascii_fingerprint; // = "6B4769CBA7068AF3BD2B200CE0A4C648";
+  static const uint8_t binary_fingerprint[16]; // = {0x6B,0x47,0x69,0xCB,0xA7,0x06,0x8A,0xF3,0xBD,0x2B,0x20,0x0C,0xE0,0xA4,0xC6,0x48};
 
 
   virtual ~Airavata_getAllExperimentsInProjectWithPagination_presult() throw();
@@ -7372,8 +7372,8 @@ typedef struct _Airavata_getAllUserExperiments_result__isset {
 class Airavata_getAllUserExperiments_result {
  public:
 
-  static const char* ascii_fingerprint; // = "EFAD9A2EAF0770AE41F4BD155E5DF0BA";
-  static const uint8_t binary_fingerprint[16]; // = {0xEF,0xAD,0x9A,0x2E,0xAF,0x07,0x70,0xAE,0x41,0xF4,0xBD,0x15,0x5E,0x5D,0xF0,0xBA};
+  static const char* ascii_fingerprint; // = "7F8F5E54F1D3996A9D4B47B330B0655D";
+  static const uint8_t binary_fingerprint[16]; // = {0x7F,0x8F,0x5E,0x54,0xF1,0xD3,0x99,0x6A,0x9D,0x4B,0x47,0xB3,0x30,0xB0,0x65,0x5D};
 
   Airavata_getAllUserExperiments_result(const Airavata_getAllUserExperiments_result&);
   Airavata_getAllUserExperiments_result& operator=(const Airavata_getAllUserExperiments_result&);
@@ -7431,8 +7431,8 @@ typedef struct _Airavata_getAllUserExperiments_presult__isset {
 class Airavata_getAllUserExperiments_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "EFAD9A2EAF0770AE41F4BD155E5DF0BA";
-  static const uint8_t binary_fingerprint[16]; // = {0xEF,0xAD,0x9A,0x2E,0xAF,0x07,0x70,0xAE,0x41,0xF4,0xBD,0x15,0x5E,0x5D,0xF0,0xBA};
+  static const char* ascii_fingerprint; // = "7F8F5E54F1D3996A9D4B47B330B0655D";
+  static const uint8_t binary_fingerprint[16]; // = {0x7F,0x8F,0x5E,0x54,0xF1,0xD3,0x99,0x6A,0x9D,0x4B,0x47,0xB3,0x30,0xB0,0x65,0x5D};
 
 
   virtual ~Airavata_getAllUserExperiments_presult() throw();
@@ -7528,8 +7528,8 @@ typedef struct _Airavata_getAllUserExperimentsWithPagination_result__isset {
 class Airavata_getAllUserExperimentsWithPagination_result {
  public:
 
-  static const char* ascii_fingerprint; // = "EFAD9A2EAF0770AE41F4BD155E5DF0BA";
-  static const uint8_t binary_fingerprint[16]; // = {0xEF,0xAD,0x9A,0x2E,0xAF,0x07,0x70,0xAE,0x41,0xF4,0xBD,0x15,0x5E,0x5D,0xF0,0xBA};
+  static const char* ascii_fingerprint; // = "7F8F5E54F1D3996A9D4B47B330B0655D";
+  static const uint8_t binary_fingerprint[16]; // = {0x7F,0x8F,0x5E,0x54,0xF1,0xD3,0x99,0x6A,0x9D,0x4B,0x47,0xB3,0x30,0xB0,0x65,0x5D};
 
   Airavata_getAllUserExperimentsWithPagination_result(const Airavata_getAllUserExperimentsWithPagination_result&);
   Airavata_getAllUserExperimentsWithPagination_result& operator=(const Airavata_getAllUserExperimentsWithPagination_result&);
@@ -7587,8 +7587,8 @@ typedef struct _Airavata_getAllUserExperimentsWithPagination_presult__isset {
 class Airavata_getAllUserExperimentsWithPagination_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "EFAD9A2EAF0770AE41F4BD155E5DF0BA";
-  static const uint8_t binary_fingerprint[16]; // = {0xEF,0xAD,0x9A,0x2E,0xAF,0x07,0x70,0xAE,0x41,0xF4,0xBD,0x15,0x5E,0x5D,0xF0,0xBA};
+  static const char* ascii_fingerprint; // = "7F8F5E54F1D3996A9D4B47B330B0655D";
+  static const uint8_t binary_fingerprint[16]; // = {0x7F,0x8F,0x5E,0x54,0xF1,0xD3,0x99,0x6A,0x9D,0x4B,0x47,0xB3,0x30,0xB0,0x65,0x5D};
 
 
   virtual ~Airavata_getAllUserExperimentsWithPagination_presult() throw();
@@ -7608,8 +7608,8 @@ class Airavata_getAllUserExperimentsWithPagination_presult {
 class Airavata_createExperiment_args {
  public:
 
-  static const char* ascii_fingerprint; // = "9DFFA76EC5884984AE7D1C161056D172";
-  static const uint8_t binary_fingerprint[16]; // = {0x9D,0xFF,0xA7,0x6E,0xC5,0x88,0x49,0x84,0xAE,0x7D,0x1C,0x16,0x10,0x56,0xD1,0x72};
+  static const char* ascii_fingerprint; // = "F1584918A7370E4CF77D731E4B386990";
+  static const uint8_t binary_fingerprint[16]; // = {0xF1,0x58,0x49,0x18,0xA7,0x37,0x0E,0x4C,0xF7,0x7D,0x73,0x1E,0x4B,0x38,0x69,0x90};
 
   Airavata_createExperiment_args(const Airavata_createExperiment_args&);
   Airavata_createExperiment_args& operator=(const Airavata_createExperiment_args&);
@@ -7648,8 +7648,8 @@ class Airavata_createExperiment_args {
 class Airavata_createExperiment_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "9DFFA76EC5884984AE7D1C161056D172";
-  static const uint8_t binary_fingerprint[16]; // = {0x9D,0xFF,0xA7,0x6E,0xC5,0x88,0x49,0x84,0xAE,0x7D,0x1C,0x16,0x10,0x56,0xD1,0x72};
+  static const char* ascii_fingerprint; // = "F1584918A7370E4CF77D731E4B386990";
+  static const uint8_t binary_fingerprint[16]; // = {0xF1,0x58,0x49,0x18,0xA7,0x37,0x0E,0x4C,0xF7,0x7D,0x73,0x1E,0x4B,0x38,0x69,0x90};
 
 
   virtual ~Airavata_createExperiment_pargs() throw();
@@ -7811,8 +7811,8 @@ typedef struct _Airavata_getExperiment_result__isset {
 class Airavata_getExperiment_result {
  public:
 
-  static const char* ascii_fingerprint; // = "EFF09B8C3635B03B69F37740F4DF0540";
-  static const uint8_t binary_fingerprint[16]; // = {0xEF,0xF0,0x9B,0x8C,0x36,0x35,0xB0,0x3B,0x69,0xF3,0x77,0x40,0xF4,0xDF,0x05,0x40};
+  static const char* ascii_fingerprint; // = "B32084B61EFF58B48AE85AFCA19D92D5";
+  static const uint8_t binary_fingerprint[16]; // = {0xB3,0x20,0x84,0xB6,0x1E,0xFF,0x58,0xB4,0x8A,0xE8,0x5A,0xFC,0xA1,0x9D,0x92,0xD5};
 
   Airavata_getExperiment_result(const Airavata_getExperiment_result&);
   Airavata_getExperiment_result& operator=(const Airavata_getExperiment_result&);
@@ -7876,8 +7876,8 @@ typedef struct _Airavata_getExperiment_presult__isset {
 class Airavata_getExperiment_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "EFF09B8C3635B03B69F37740F4DF0540";
-  static const uint8_t binary_fingerprint[16]; // = {0xEF,0xF0,0x9B,0x8C,0x36,0x35,0xB0,0x3B,0x69,0xF3,0x77,0x40,0xF4,0xDF,0x05,0x40};
+  static const char* ascii_fingerprint; // = "B32084B61EFF58B48AE85AFCA19D92D5";
+  static const uint8_t binary_fingerprint[16]; // = {0xB3,0x20,0x84,0xB6,0x1E,0xFF,0x58,0xB4,0x8A,0xE8,0x5A,0xFC,0xA1,0x9D,0x92,0xD5};
 
 
   virtual ~Airavata_getExperiment_presult() throw();
@@ -7898,8 +7898,8 @@ class Airavata_getExperiment_presult {
 class Airavata_updateExperiment_args {
  public:
 
-  static const char* ascii_fingerprint; // = "9DFFA76EC5884984AE7D1C161056D172";
-  static const uint8_t binary_fingerprint[16]; // = {0x9D,0xFF,0xA7,0x6E,0xC5,0x88,0x49,0x84,0xAE,0x7D,0x1C,0x16,0x10,0x56,0xD1,0x72};
+  static const char* ascii_fingerprint; // = "F1584918A7370E4CF77D731E4B386990";
+  static const uint8_t binary_fingerprint[16]; // = {0xF1,0x58,0x49,0x18,0xA7,0x37,0x0E,0x4C,0xF7,0x7D,0x73,0x1E,0x4B,0x38,0x69,0x90};
 
   Airavata_updateExperiment_args(const Airavata_updateExperiment_args&);
   Airavata_updateExperiment_args& operator=(const Airavata_updateExperiment_args&);
@@ -7938,8 +7938,8 @@ class Airavata_updateExperiment_args {
 class Airavata_updateExperiment_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "9DFFA76EC5884984AE7D1C161056D172";
-  static const uint8_t binary_fingerprint[16]; // = {0x9D,0xFF,0xA7,0x6E,0xC5,0x88,0x49,0x84,0xAE,0x7D,0x1C,0x16,0x10,0x56,0xD1,0x72};
+  static const char* ascii_fingerprint; // = "F1584918A7370E4CF77D731E4B386990";
+  static const uint8_t binary_fingerprint[16]; // = {0xF1,0x58,0x49,0x18,0xA7,0x37,0x0E,0x4C,0xF7,0x7D,0x73,0x1E,0x4B,0x38,0x69,0x90};
 
 
   virtual ~Airavata_updateExperiment_pargs() throw();

http://git-wip-us.apache.org/repos/asf/airavata/blob/e5d861e7/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
index abb63b6..935de1f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
@@ -73,20 +73,21 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
 
   private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)1);
   private static final org.apache.thrift.protocol.TField PROJECT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("projectId", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField EXPERIMENT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentType", org.apache.thrift.protocol.TType.I32, (short)3);
-  private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)4);
-  private static final org.apache.thrift.protocol.TField EXPERIMENT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentName", org.apache.thrift.protocol.TType.STRING, (short)5);
-  private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)6);
-  private static final org.apache.thrift.protocol.TField DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", org.apache.thrift.protocol.TType.STRING, (short)7);
-  private static final org.apache.thrift.protocol.TField EXECUTION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("executionId", org.apache.thrift.protocol.TType.STRING, (short)8);
-  private static final org.apache.thrift.protocol.TField GATEWAY_EXECUTION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayExecutionId", org.apache.thrift.protocol.TType.STRING, (short)9);
-  private static final org.apache.thrift.protocol.TField ENABLE_EMAIL_NOTIFICATION_FIELD_DESC = new org.apache.thrift.protocol.TField("enableEmailNotification", org.apache.thrift.protocol.TType.BOOL, (short)10);
-  private static final org.apache.thrift.protocol.TField EMAIL_ADDRESSES_FIELD_DESC = new org.apache.thrift.protocol.TField("emailAddresses", org.apache.thrift.protocol.TType.LIST, (short)11);
-  private static final org.apache.thrift.protocol.TField USER_CONFIGURATION_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("userConfigurationData", org.apache.thrift.protocol.TType.STRUCT, (short)12);
-  private static final org.apache.thrift.protocol.TField EXPERIMENT_INPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentInputs", org.apache.thrift.protocol.TType.LIST, (short)13);
-  private static final org.apache.thrift.protocol.TField EXPERIMENT_OUTPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentOutputs", org.apache.thrift.protocol.TType.LIST, (short)14);
-  private static final org.apache.thrift.protocol.TField EXPERIMENT_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentStatus", org.apache.thrift.protocol.TType.STRUCT, (short)15);
-  private static final org.apache.thrift.protocol.TField ERRORS_FIELD_DESC = new org.apache.thrift.protocol.TField("errors", org.apache.thrift.protocol.TType.LIST, (short)16);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentType", org.apache.thrift.protocol.TType.I32, (short)4);
+  private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentName", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)7);
+  private static final org.apache.thrift.protocol.TField DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField EXECUTION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("executionId", org.apache.thrift.protocol.TType.STRING, (short)9);
+  private static final org.apache.thrift.protocol.TField GATEWAY_EXECUTION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayExecutionId", org.apache.thrift.protocol.TType.STRING, (short)10);
+  private static final org.apache.thrift.protocol.TField ENABLE_EMAIL_NOTIFICATION_FIELD_DESC = new org.apache.thrift.protocol.TField("enableEmailNotification", org.apache.thrift.protocol.TType.BOOL, (short)11);
+  private static final org.apache.thrift.protocol.TField EMAIL_ADDRESSES_FIELD_DESC = new org.apache.thrift.protocol.TField("emailAddresses", org.apache.thrift.protocol.TType.LIST, (short)12);
+  private static final org.apache.thrift.protocol.TField USER_CONFIGURATION_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("userConfigurationData", org.apache.thrift.protocol.TType.STRUCT, (short)13);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_INPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentInputs", org.apache.thrift.protocol.TType.LIST, (short)14);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_OUTPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentOutputs", org.apache.thrift.protocol.TType.LIST, (short)15);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentStatus", org.apache.thrift.protocol.TType.STRUCT, (short)16);
+  private static final org.apache.thrift.protocol.TField ERRORS_FIELD_DESC = new org.apache.thrift.protocol.TField("errors", org.apache.thrift.protocol.TType.LIST, (short)17);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -96,6 +97,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
 
   private String experimentId; // required
   private String projectId; // required
+  private String gatewayId; // required
   private ExperimentType experimentType; // required
   private String userName; // required
   private String experimentName; // required
@@ -115,24 +117,25 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
     EXPERIMENT_ID((short)1, "experimentId"),
     PROJECT_ID((short)2, "projectId"),
+    GATEWAY_ID((short)3, "gatewayId"),
     /**
      * 
      * @see ExperimentType
      */
-    EXPERIMENT_TYPE((short)3, "experimentType"),
-    USER_NAME((short)4, "userName"),
-    EXPERIMENT_NAME((short)5, "experimentName"),
-    CREATION_TIME((short)6, "creationTime"),
-    DESCRIPTION((short)7, "description"),
-    EXECUTION_ID((short)8, "executionId"),
-    GATEWAY_EXECUTION_ID((short)9, "gatewayExecutionId"),
-    ENABLE_EMAIL_NOTIFICATION((short)10, "enableEmailNotification"),
-    EMAIL_ADDRESSES((short)11, "emailAddresses"),
-    USER_CONFIGURATION_DATA((short)12, "userConfigurationData"),
-    EXPERIMENT_INPUTS((short)13, "experimentInputs"),
-    EXPERIMENT_OUTPUTS((short)14, "experimentOutputs"),
-    EXPERIMENT_STATUS((short)15, "experimentStatus"),
-    ERRORS((short)16, "errors");
+    EXPERIMENT_TYPE((short)4, "experimentType"),
+    USER_NAME((short)5, "userName"),
+    EXPERIMENT_NAME((short)6, "experimentName"),
+    CREATION_TIME((short)7, "creationTime"),
+    DESCRIPTION((short)8, "description"),
+    EXECUTION_ID((short)9, "executionId"),
+    GATEWAY_EXECUTION_ID((short)10, "gatewayExecutionId"),
+    ENABLE_EMAIL_NOTIFICATION((short)11, "enableEmailNotification"),
+    EMAIL_ADDRESSES((short)12, "emailAddresses"),
+    USER_CONFIGURATION_DATA((short)13, "userConfigurationData"),
+    EXPERIMENT_INPUTS((short)14, "experimentInputs"),
+    EXPERIMENT_OUTPUTS((short)15, "experimentOutputs"),
+    EXPERIMENT_STATUS((short)16, "experimentStatus"),
+    ERRORS((short)17, "errors");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -151,33 +154,35 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
           return EXPERIMENT_ID;
         case 2: // PROJECT_ID
           return PROJECT_ID;
-        case 3: // EXPERIMENT_TYPE
+        case 3: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 4: // EXPERIMENT_TYPE
           return EXPERIMENT_TYPE;
-        case 4: // USER_NAME
+        case 5: // USER_NAME
           return USER_NAME;
-        case 5: // EXPERIMENT_NAME
+        case 6: // EXPERIMENT_NAME
           return EXPERIMENT_NAME;
-        case 6: // CREATION_TIME
+        case 7: // CREATION_TIME
           return CREATION_TIME;
-        case 7: // DESCRIPTION
+        case 8: // DESCRIPTION
           return DESCRIPTION;
-        case 8: // EXECUTION_ID
+        case 9: // EXECUTION_ID
           return EXECUTION_ID;
-        case 9: // GATEWAY_EXECUTION_ID
+        case 10: // GATEWAY_EXECUTION_ID
           return GATEWAY_EXECUTION_ID;
-        case 10: // ENABLE_EMAIL_NOTIFICATION
+        case 11: // ENABLE_EMAIL_NOTIFICATION
           return ENABLE_EMAIL_NOTIFICATION;
-        case 11: // EMAIL_ADDRESSES
+        case 12: // EMAIL_ADDRESSES
           return EMAIL_ADDRESSES;
-        case 12: // USER_CONFIGURATION_DATA
+        case 13: // USER_CONFIGURATION_DATA
           return USER_CONFIGURATION_DATA;
-        case 13: // EXPERIMENT_INPUTS
+        case 14: // EXPERIMENT_INPUTS
           return EXPERIMENT_INPUTS;
-        case 14: // EXPERIMENT_OUTPUTS
+        case 15: // EXPERIMENT_OUTPUTS
           return EXPERIMENT_OUTPUTS;
-        case 15: // EXPERIMENT_STATUS
+        case 16: // EXPERIMENT_STATUS
           return EXPERIMENT_STATUS;
-        case 16: // ERRORS
+        case 17: // ERRORS
           return ERRORS;
         default:
           return null;
@@ -230,6 +235,8 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.PROJECT_ID, new org.apache.thrift.meta_data.FieldMetaData("projectId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.EXPERIMENT_TYPE, new org.apache.thrift.meta_data.FieldMetaData("experimentType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ExperimentType.class)));
     tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("userName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
@@ -274,6 +281,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
   public ExperimentModel(
     String experimentId,
     String projectId,
+    String gatewayId,
     ExperimentType experimentType,
     String userName,
     String experimentName)
@@ -281,6 +289,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
     this();
     this.experimentId = experimentId;
     this.projectId = projectId;
+    this.gatewayId = gatewayId;
     this.experimentType = experimentType;
     this.userName = userName;
     this.experimentName = experimentName;
@@ -297,6 +306,9 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
     if (other.isSetProjectId()) {
       this.projectId = other.projectId;
     }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
     if (other.isSetExperimentType()) {
       this.experimentType = other.experimentType;
     }
@@ -358,6 +370,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
   public void clear() {
     this.experimentId = null;
     this.projectId = null;
+    this.gatewayId = null;
     this.experimentType = org.apache.airavata.model.experiment.ExperimentType.SINGLE_APPLICATION;
 
     this.userName = null;
@@ -423,6 +436,29 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
     }
   }
 
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public void setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
   /**
    * 
    * @see ExperimentType
@@ -829,6 +865,14 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
       }
       break;
 
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
     case EXPERIMENT_TYPE:
       if (value == null) {
         unsetExperimentType();
@@ -952,6 +996,9 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
     case PROJECT_ID:
       return getProjectId();
 
+    case GATEWAY_ID:
+      return getGatewayId();
+
     case EXPERIMENT_TYPE:
       return getExperimentType();
 
@@ -1009,6 +1056,8 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
       return isSetExperimentId();
     case PROJECT_ID:
       return isSetProjectId();
+    case GATEWAY_ID:
+      return isSetGatewayId();
     case EXPERIMENT_TYPE:
       return isSetExperimentType();
     case USER_NAME:
@@ -1072,6 +1121,15 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
         return false;
     }
 
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
     boolean this_present_experimentType = true && this.isSetExperimentType();
     boolean that_present_experimentType = true && that.isSetExperimentType();
     if (this_present_experimentType || that_present_experimentType) {
@@ -1215,6 +1273,11 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
     if (present_projectId)
       list.add(projectId);
 
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
     boolean present_experimentType = true && (isSetExperimentType());
     list.add(present_experimentType);
     if (present_experimentType)
@@ -1316,6 +1379,16 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     lastComparison = Boolean.valueOf(isSetExperimentType()).compareTo(other.isSetExperimentType());
     if (lastComparison != 0) {
       return lastComparison;
@@ -1492,6 +1565,14 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
     }
     first = false;
     if (!first) sb.append(", ");
+    sb.append("gatewayId:");
+    if (this.gatewayId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gatewayId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
     sb.append("experimentType:");
     if (this.experimentType == null) {
       sb.append("null");
@@ -1631,6 +1712,10 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'projectId' is unset! Struct:" + toString());
     }
 
+    if (!isSetGatewayId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' is unset! Struct:" + toString());
+    }
+
     if (!isSetExperimentType()) {
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentType' is unset! Struct:" + toString());
     }
@@ -1704,7 +1789,15 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 3: // EXPERIMENT_TYPE
+          case 3: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // EXPERIMENT_TYPE
             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
               struct.experimentType = org.apache.airavata.model.experiment.ExperimentType.findByValue(iprot.readI32());
               struct.setExperimentTypeIsSet(true);
@@ -1712,7 +1805,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 4: // USER_NAME
+          case 5: // USER_NAME
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.userName = iprot.readString();
               struct.setUserNameIsSet(true);
@@ -1720,7 +1813,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 5: // EXPERIMENT_NAME
+          case 6: // EXPERIMENT_NAME
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.experimentName = iprot.readString();
               struct.setExperimentNameIsSet(true);
@@ -1728,7 +1821,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 6: // CREATION_TIME
+          case 7: // CREATION_TIME
             if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
               struct.creationTime = iprot.readI64();
               struct.setCreationTimeIsSet(true);
@@ -1736,7 +1829,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 7: // DESCRIPTION
+          case 8: // DESCRIPTION
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.description = iprot.readString();
               struct.setDescriptionIsSet(true);
@@ -1744,7 +1837,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 8: // EXECUTION_ID
+          case 9: // EXECUTION_ID
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.executionId = iprot.readString();
               struct.setExecutionIdIsSet(true);
@@ -1752,7 +1845,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 9: // GATEWAY_EXECUTION_ID
+          case 10: // GATEWAY_EXECUTION_ID
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.gatewayExecutionId = iprot.readString();
               struct.setGatewayExecutionIdIsSet(true);
@@ -1760,7 +1853,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 10: // ENABLE_EMAIL_NOTIFICATION
+          case 11: // ENABLE_EMAIL_NOTIFICATION
             if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
               struct.enableEmailNotification = iprot.readBool();
               struct.setEnableEmailNotificationIsSet(true);
@@ -1768,7 +1861,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 11: // EMAIL_ADDRESSES
+          case 12: // EMAIL_ADDRESSES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
@@ -1786,7 +1879,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 12: // USER_CONFIGURATION_DATA
+          case 13: // USER_CONFIGURATION_DATA
             if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
               struct.userConfigurationData = new UserConfigurationDataModel();
               struct.userConfigurationData.read(iprot);
@@ -1795,7 +1888,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 13: // EXPERIMENT_INPUTS
+          case 14: // EXPERIMENT_INPUTS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
@@ -1814,7 +1907,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 14: // EXPERIMENT_OUTPUTS
+          case 15: // EXPERIMENT_OUTPUTS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list6 = iprot.readListBegin();
@@ -1833,7 +1926,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 15: // EXPERIMENT_STATUS
+          case 16: // EXPERIMENT_STATUS
             if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
               struct.experimentStatus = new org.apache.airavata.model.status.ExperimentStatus();
               struct.experimentStatus.read(iprot);
@@ -1842,7 +1935,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 16: // ERRORS
+          case 17: // ERRORS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list9 = iprot.readListBegin();
@@ -1884,6 +1977,11 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
         oprot.writeString(struct.projectId);
         oprot.writeFieldEnd();
       }
+      if (struct.gatewayId != null) {
+        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+        oprot.writeString(struct.gatewayId);
+        oprot.writeFieldEnd();
+      }
       if (struct.experimentType != null) {
         oprot.writeFieldBegin(EXPERIMENT_TYPE_FIELD_DESC);
         oprot.writeI32(struct.experimentType.getValue());
@@ -2019,6 +2117,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
       TTupleProtocol oprot = (TTupleProtocol) prot;
       oprot.writeString(struct.experimentId);
       oprot.writeString(struct.projectId);
+      oprot.writeString(struct.gatewayId);
       oprot.writeI32(struct.experimentType.getValue());
       oprot.writeString(struct.userName);
       oprot.writeString(struct.experimentName);
@@ -2123,6 +2222,8 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
       struct.setExperimentIdIsSet(true);
       struct.projectId = iprot.readString();
       struct.setProjectIdIsSet(true);
+      struct.gatewayId = iprot.readString();
+      struct.setGatewayIdIsSet(true);
       struct.experimentType = org.apache.airavata.model.experiment.ExperimentType.findByValue(iprot.readI32());
       struct.setExperimentTypeIsSet(true);
       struct.userName = iprot.readString();

http://git-wip-us.apache.org/repos/asf/airavata/blob/e5d861e7/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
index 5da774e..1d2635a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
@@ -57,12 +57,13 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
 
   private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)1);
   private static final org.apache.thrift.protocol.TField PROJECT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("projectId", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)3);
-  private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)4);
-  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)5);
-  private static final org.apache.thrift.protocol.TField DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", org.apache.thrift.protocol.TType.STRING, (short)6);
-  private static final org.apache.thrift.protocol.TField APPLICATION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationId", org.apache.thrift.protocol.TType.STRING, (short)7);
-  private static final org.apache.thrift.protocol.TField EXPERIMENT_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentStatus", org.apache.thrift.protocol.TType.STRUCT, (short)8);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)4);
+  private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField APPLICATION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationId", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentStatus", org.apache.thrift.protocol.TType.STRUCT, (short)9);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -72,6 +73,7 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
 
   private String experimentId; // required
   private String projectId; // required
+  private String gatewayId; // required
   private long creationTime; // optional
   private String userName; // required
   private String name; // required
@@ -83,12 +85,13 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
     EXPERIMENT_ID((short)1, "experimentId"),
     PROJECT_ID((short)2, "projectId"),
-    CREATION_TIME((short)3, "creationTime"),
-    USER_NAME((short)4, "userName"),
-    NAME((short)5, "name"),
-    DESCRIPTION((short)6, "description"),
-    APPLICATION_ID((short)7, "applicationId"),
-    EXPERIMENT_STATUS((short)8, "experimentStatus");
+    GATEWAY_ID((short)3, "gatewayId"),
+    CREATION_TIME((short)4, "creationTime"),
+    USER_NAME((short)5, "userName"),
+    NAME((short)6, "name"),
+    DESCRIPTION((short)7, "description"),
+    APPLICATION_ID((short)8, "applicationId"),
+    EXPERIMENT_STATUS((short)9, "experimentStatus");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -107,17 +110,19 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
           return EXPERIMENT_ID;
         case 2: // PROJECT_ID
           return PROJECT_ID;
-        case 3: // CREATION_TIME
+        case 3: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 4: // CREATION_TIME
           return CREATION_TIME;
-        case 4: // USER_NAME
+        case 5: // USER_NAME
           return USER_NAME;
-        case 5: // NAME
+        case 6: // NAME
           return NAME;
-        case 6: // DESCRIPTION
+        case 7: // DESCRIPTION
           return DESCRIPTION;
-        case 7: // APPLICATION_ID
+        case 8: // APPLICATION_ID
           return APPLICATION_ID;
-        case 8: // EXPERIMENT_STATUS
+        case 9: // EXPERIMENT_STATUS
           return EXPERIMENT_STATUS;
         default:
           return null;
@@ -169,6 +174,8 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.PROJECT_ID, new org.apache.thrift.meta_data.FieldMetaData("projectId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("creationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
     tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("userName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
@@ -191,12 +198,14 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
   public ExperimentSummaryModel(
     String experimentId,
     String projectId,
+    String gatewayId,
     String userName,
     String name)
   {
     this();
     this.experimentId = experimentId;
     this.projectId = projectId;
+    this.gatewayId = gatewayId;
     this.userName = userName;
     this.name = name;
   }
@@ -212,6 +221,9 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
     if (other.isSetProjectId()) {
       this.projectId = other.projectId;
     }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
     this.creationTime = other.creationTime;
     if (other.isSetUserName()) {
       this.userName = other.userName;
@@ -238,6 +250,7 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
   public void clear() {
     this.experimentId = null;
     this.projectId = null;
+    this.gatewayId = null;
     setCreationTimeIsSet(false);
     this.creationTime = 0;
     this.userName = null;
@@ -293,6 +306,29 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
     }
   }
 
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public void setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
   public long getCreationTime() {
     return this.creationTime;
   }
@@ -448,6 +484,14 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
       }
       break;
 
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
     case CREATION_TIME:
       if (value == null) {
         unsetCreationTime();
@@ -507,6 +551,9 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
     case PROJECT_ID:
       return getProjectId();
 
+    case GATEWAY_ID:
+      return getGatewayId();
+
     case CREATION_TIME:
       return Long.valueOf(getCreationTime());
 
@@ -540,6 +587,8 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
       return isSetExperimentId();
     case PROJECT_ID:
       return isSetProjectId();
+    case GATEWAY_ID:
+      return isSetGatewayId();
     case CREATION_TIME:
       return isSetCreationTime();
     case USER_NAME:
@@ -587,6 +636,15 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
         return false;
     }
 
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
     boolean this_present_creationTime = true && this.isSetCreationTime();
     boolean that_present_creationTime = true && that.isSetCreationTime();
     if (this_present_creationTime || that_present_creationTime) {
@@ -658,6 +716,11 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
     if (present_projectId)
       list.add(projectId);
 
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
     boolean present_creationTime = true && (isSetCreationTime());
     list.add(present_creationTime);
     if (present_creationTime)
@@ -719,6 +782,16 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     lastComparison = Boolean.valueOf(isSetCreationTime()).compareTo(other.isSetCreationTime());
     if (lastComparison != 0) {
       return lastComparison;
@@ -814,6 +887,14 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
       sb.append(this.projectId);
     }
     first = false;
+    if (!first) sb.append(", ");
+    sb.append("gatewayId:");
+    if (this.gatewayId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gatewayId);
+    }
+    first = false;
     if (isSetCreationTime()) {
       if (!first) sb.append(", ");
       sb.append("creationTime:");
@@ -880,6 +961,10 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'projectId' is unset! Struct:" + toString());
     }
 
+    if (!isSetGatewayId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' is unset! Struct:" + toString());
+    }
+
     if (!isSetUserName()) {
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'userName' is unset! Struct:" + toString());
     }
@@ -946,7 +1031,15 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 3: // CREATION_TIME
+          case 3: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // CREATION_TIME
             if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
               struct.creationTime = iprot.readI64();
               struct.setCreationTimeIsSet(true);
@@ -954,7 +1047,7 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 4: // USER_NAME
+          case 5: // USER_NAME
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.userName = iprot.readString();
               struct.setUserNameIsSet(true);
@@ -962,7 +1055,7 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 5: // NAME
+          case 6: // NAME
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.name = iprot.readString();
               struct.setNameIsSet(true);
@@ -970,7 +1063,7 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 6: // DESCRIPTION
+          case 7: // DESCRIPTION
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.description = iprot.readString();
               struct.setDescriptionIsSet(true);
@@ -978,7 +1071,7 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 7: // APPLICATION_ID
+          case 8: // APPLICATION_ID
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.applicationId = iprot.readString();
               struct.setApplicationIdIsSet(true);
@@ -986,7 +1079,7 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 8: // EXPERIMENT_STATUS
+          case 9: // EXPERIMENT_STATUS
             if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
               struct.experimentStatus = new org.apache.airavata.model.status.ExperimentStatus();
               struct.experimentStatus.read(iprot);
@@ -1018,6 +1111,11 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
         oprot.writeString(struct.projectId);
         oprot.writeFieldEnd();
       }
+      if (struct.gatewayId != null) {
+        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+        oprot.writeString(struct.gatewayId);
+        oprot.writeFieldEnd();
+      }
       if (struct.isSetCreationTime()) {
         oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
         oprot.writeI64(struct.creationTime);
@@ -1073,6 +1171,7 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
       TTupleProtocol oprot = (TTupleProtocol) prot;
       oprot.writeString(struct.experimentId);
       oprot.writeString(struct.projectId);
+      oprot.writeString(struct.gatewayId);
       oprot.writeString(struct.userName);
       oprot.writeString(struct.name);
       BitSet optionals = new BitSet();
@@ -1110,6 +1209,8 @@ public class ExperimentSummaryModel implements org.apache.thrift.TBase<Experimen
       struct.setExperimentIdIsSet(true);
       struct.projectId = iprot.readString();
       struct.setProjectIdIsSet(true);
+      struct.gatewayId = iprot.readString();
+      struct.setGatewayIdIsSet(true);
       struct.userName = iprot.readString();
       struct.setUserNameIsSet(true);
       struct.name = iprot.readString();

http://git-wip-us.apache.org/repos/asf/airavata/blob/e5d861e7/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
index 0d002e5..224c006 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
@@ -64,14 +64,14 @@ public class ProcessStatusChangeRequestEvent implements org.apache.thrift.TBase<
     schemes.put(TupleScheme.class, new ProcessStatusChangeRequestEventTupleSchemeFactory());
   }
 
-  private org.apache.airavata.model.status.TaskState state; // required
+  private org.apache.airavata.model.status.ProcessState state; // required
   private ProcessIdentifier processIdentity; // required
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
     /**
      * 
-     * @see org.apache.airavata.model.status.TaskState
+     * @see org.apache.airavata.model.status.ProcessState
      */
     STATE((short)1, "state"),
     PROCESS_IDENTITY((short)2, "processIdentity");
@@ -137,7 +137,7 @@ public class ProcessStatusChangeRequestEvent implements org.apache.thrift.TBase<
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
     tmpMap.put(_Fields.STATE, new org.apache.thrift.meta_data.FieldMetaData("state", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.status.TaskState.class)));
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.status.ProcessState.class)));
     tmpMap.put(_Fields.PROCESS_IDENTITY, new org.apache.thrift.meta_data.FieldMetaData("processIdentity", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ProcessIdentifier.class)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
@@ -148,7 +148,7 @@ public class ProcessStatusChangeRequestEvent implements org.apache.thrift.TBase<
   }
 
   public ProcessStatusChangeRequestEvent(
-    org.apache.airavata.model.status.TaskState state,
+    org.apache.airavata.model.status.ProcessState state,
     ProcessIdentifier processIdentity)
   {
     this();
@@ -180,17 +180,17 @@ public class ProcessStatusChangeRequestEvent implements org.apache.thrift.TBase<
 
   /**
    * 
-   * @see org.apache.airavata.model.status.TaskState
+   * @see org.apache.airavata.model.status.ProcessState
    */
-  public org.apache.airavata.model.status.TaskState getState() {
+  public org.apache.airavata.model.status.ProcessState getState() {
     return this.state;
   }
 
   /**
    * 
-   * @see org.apache.airavata.model.status.TaskState
+   * @see org.apache.airavata.model.status.ProcessState
    */
-  public void setState(org.apache.airavata.model.status.TaskState state) {
+  public void setState(org.apache.airavata.model.status.ProcessState state) {
     this.state = state;
   }
 
@@ -238,7 +238,7 @@ public class ProcessStatusChangeRequestEvent implements org.apache.thrift.TBase<
       if (value == null) {
         unsetState();
       } else {
-        setState((org.apache.airavata.model.status.TaskState)value);
+        setState((org.apache.airavata.model.status.ProcessState)value);
       }
       break;
 
@@ -450,7 +450,7 @@ public class ProcessStatusChangeRequestEvent implements org.apache.thrift.TBase<
         switch (schemeField.id) {
           case 1: // STATE
             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.state = org.apache.airavata.model.status.TaskState.findByValue(iprot.readI32());
+              struct.state = org.apache.airavata.model.status.ProcessState.findByValue(iprot.readI32());
               struct.setStateIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -512,7 +512,7 @@ public class ProcessStatusChangeRequestEvent implements org.apache.thrift.TBase<
     @Override
     public void read(org.apache.thrift.protocol.TProtocol prot, ProcessStatusChangeRequestEvent struct) throws org.apache.thrift.TException {
       TTupleProtocol iprot = (TTupleProtocol) prot;
-      struct.state = org.apache.airavata.model.status.TaskState.findByValue(iprot.readI32());
+      struct.state = org.apache.airavata.model.status.ProcessState.findByValue(iprot.readI32());
       struct.setStateIsSet(true);
       struct.processIdentity = new ProcessIdentifier();
       struct.processIdentity.read(iprot);

http://git-wip-us.apache.org/repos/asf/airavata/blob/e5d861e7/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
index 588f01a..c7b2093 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
@@ -41,14 +41,10 @@ import org.apache.airavata.model.application.io.OutputDataObjectType;
 import org.apache.airavata.model.commons.ErrorModel;
 import org.apache.airavata.model.experiment.ExperimentModel;
 import org.apache.airavata.model.job.JobModel;
-import org.apache.airavata.model.messaging.event.JobIdentifier;
-import org.apache.airavata.model.messaging.event.JobStatusChangeRequestEvent;
+import org.apache.airavata.model.messaging.event.*;
 import org.apache.airavata.model.process.ProcessModel;
 import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
-import org.apache.airavata.model.status.ExperimentState;
-import org.apache.airavata.model.status.ExperimentStatus;
-import org.apache.airavata.model.status.JobState;
-import org.apache.airavata.model.status.JobStatus;
+import org.apache.airavata.model.status.*;
 import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
 import org.apache.airavata.registry.cpi.*;
 import org.apache.commons.io.FileUtils;
@@ -250,7 +246,6 @@ public class GFacUtils {
 //            experimentCatalog.add(ExpCatChildDataType.JOB_DETAIL, jobModel,
 //                    new CompositeIdentifier(jobExecutionContext.getTaskData()
 //                            .getTaskID(), jobModel.getJobID()));
-            // FIXME - Routing keys might need to identify according to new data models
             JobIdentifier identifier = new JobIdentifier(jobModel.getJobId(), taskContext.getTaskModel().getTaskId(),
                     processContext.getProcessId(), processContext.getProcessModel().getExperimentId(),
                     processContext.getGatewayId());
@@ -262,6 +257,64 @@ public class GFacUtils {
 		}
 	}
 
+    public static void saveTaskStatus(TaskContext taskContext,
+                                      TaskState state) throws GFacException {
+        try {
+            // first we save job jobModel to the registry for sa and then save the job status.
+            ProcessContext processContext = taskContext.getParentProcessContext();
+            ExperimentCatalog experimentCatalog = processContext.getExperimentCatalog();
+            TaskStatus status = new TaskStatus();
+            status.setState(state);
+            taskContext.getTaskModel().setTaskStatus(status);
+            experimentCatalog.add(ExpCatChildDataType.TASK_STATUS, status, taskContext.getTaskModel().getTaskId());
+            TaskIdentifier identifier = new TaskIdentifier(taskContext.getTaskModel().getTaskId(),
+                    processContext.getProcessId(), processContext.getProcessModel().getExperimentId(),
+                    processContext.getGatewayId());
+            TaskStatusChangeRequestEvent taskStatusChangeRequestEvent = new TaskStatusChangeRequestEvent(state, identifier);
+            processContext.getLocalEventPublisher().publish(taskStatusChangeRequestEvent);
+        } catch (Exception e) {
+            throw new GFacException("Error persisting task status"
+                    + e.getLocalizedMessage(), e);
+        }
+    }
+
+    public static void saveProcessStatus(ProcessContext processContext,
+                                      ProcessState state) throws GFacException {
+        try {
+            // first we save job jobModel to the registry for sa and then save the job status.
+            ExperimentCatalog experimentCatalog = processContext.getExperimentCatalog();
+            ProcessStatus status = new ProcessStatus();
+            status.setState(state);
+            processContext.getProcessModel().setProcessStatus(status);
+            experimentCatalog.add(ExpCatChildDataType.PROCESS_STATUS, status, processContext.getProcessId());
+            ProcessIdentifier identifier = new ProcessIdentifier(processContext.getProcessId(),
+                                                                 processContext.getProcessModel().getExperimentId(),
+                                                                 processContext.getGatewayId());
+            ProcessStatusChangeRequestEvent processStatusChangeRequestEvent = new ProcessStatusChangeRequestEvent(state, identifier);
+            processContext.getLocalEventPublisher().publish(processStatusChangeRequestEvent);
+        } catch (Exception e) {
+            throw new GFacException("Error persisting process status"
+                    + e.getLocalizedMessage(), e);
+        }
+    }
+
+    public static void saveExperimentStatus(ProcessContext processContext,
+                                         ExperimentState state) throws GFacException {
+        try {
+            // first we save job jobModel to the registry for sa and then save the job status.
+            ExperimentCatalog experimentCatalog = processContext.getExperimentCatalog();
+            ExperimentStatus status = new ExperimentStatus();
+            status.setState(state);
+
+            experimentCatalog.add(ExpCatChildDataType.EXPERIMENT_STATUS, status, processContext.getProcessModel().getExperimentId());
+            ExperimentStatusChangeEvent experimentStatusChangeEvent = new ExperimentStatusChangeEvent(state, processContext.getProcessModel().getExperimentId(), processContext.getGatewayId());
+            processContext.getLocalEventPublisher().publish(experimentStatusChangeEvent);
+        } catch (Exception e) {
+            throw new GFacException("Error persisting experiment status"
+                    + e.getLocalizedMessage(), e);
+        }
+    }
+
 //	public static void updateJobStatus(JobExecutionContext jobExecutionContext,
 //			JobDetails details, JobState state) throws GFacException {
 //		try {