You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2019/06/10 18:47:49 UTC
[airavata] branch develop updated: AIRAVATA-3029 Adding METADATA to
outputs
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git
The following commit(s) were added to refs/heads/develop by this push:
new 8bdbdfc AIRAVATA-3029 Adding METADATA to outputs
8bdbdfc is described below
commit 8bdbdfcb3c9521fd6a5f90ba9e95f8d2647fe9b2
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Mon Jun 10 14:45:53 2019 -0400
AIRAVATA-3029 Adding METADATA to outputs
---
.../lib/Airavata/Model/Application/Io/Types.php | 23 +++++
.../lib/airavata/model/application/io/ttypes.py | 14 ++-
.../model/application/io/OutputDataObjectType.java | 113 ++++++++++++++++++++-
.../appcatalog/ApplicationOutputEntity.java | 11 ++
.../expcatalog/ExperimentOutputEntity.java | 13 ++-
.../entities/expcatalog/ProcessOutputEntity.java | 13 ++-
.../src/main/resources/appcatalog-derby.sql | 1 +
.../src/main/resources/appcatalog-mysql.sql | 1 +
.../src/main/resources/expcatalog-derby.sql | 2 +
.../src/main/resources/expcatalog-mysql.sql | 2 +
.../ApplicationInterfaceRepositoryTest.java | 1 +
.../next/DeltaScripts/appCatalog_schema_delta.sql | 3 +
.../experimentCatalog_schema_delta.sql | 4 +
.../application_io_models.thrift | 3 +-
14 files changed, 196 insertions(+), 8 deletions(-)
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Application/Io/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Application/Io/Types.php
index c417a5b..fb4977e 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Application/Io/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Application/Io/Types.php
@@ -490,6 +490,10 @@ class OutputDataObjectType {
* @var string
*/
public $storageResourceId = null;
+ /**
+ * @var string
+ */
+ public $metaData = null;
public function __construct($vals=null) {
if (!isset(self::$_TSPEC)) {
@@ -538,6 +542,10 @@ class OutputDataObjectType {
'var' => 'storageResourceId',
'type' => TType::STRING,
),
+ 12 => array(
+ 'var' => 'metaData',
+ 'type' => TType::STRING,
+ ),
);
}
if (is_array($vals)) {
@@ -574,6 +582,9 @@ class OutputDataObjectType {
if (isset($vals['storageResourceId'])) {
$this->storageResourceId = $vals['storageResourceId'];
}
+ if (isset($vals['metaData'])) {
+ $this->metaData = $vals['metaData'];
+ }
}
}
@@ -673,6 +684,13 @@ class OutputDataObjectType {
$xfer += $input->skip($ftype);
}
break;
+ case 12:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->metaData);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
default:
$xfer += $input->skip($ftype);
break;
@@ -741,6 +759,11 @@ class OutputDataObjectType {
$xfer += $output->writeString($this->storageResourceId);
$xfer += $output->writeFieldEnd();
}
+ if ($this->metaData !== null) {
+ $xfer += $output->writeFieldBegin('metaData', TType::STRING, 12);
+ $xfer += $output->writeString($this->metaData);
+ $xfer += $output->writeFieldEnd();
+ }
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/application/io/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/application/io/ttypes.py
index 10e1d47..8c9017a 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/application/io/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/application/io/ttypes.py
@@ -318,6 +318,7 @@ class OutputDataObjectType(object):
- searchQuery
- outputStreaming
- storageResourceId
+ - metaData
"""
thrift_spec = (
@@ -333,9 +334,10 @@ class OutputDataObjectType(object):
(9, TType.STRING, 'searchQuery', 'UTF8', None, ), # 9
(10, TType.BOOL, 'outputStreaming', None, None, ), # 10
(11, TType.STRING, 'storageResourceId', 'UTF8', None, ), # 11
+ (12, TType.STRING, 'metaData', 'UTF8', None, ), # 12
)
- def __init__(self, name=None, value=None, type=None, applicationArgument=None, isRequired=None, requiredToAddedToCommandLine=None, dataMovement=None, location=None, searchQuery=None, outputStreaming=None, storageResourceId=None,):
+ def __init__(self, name=None, value=None, type=None, applicationArgument=None, isRequired=None, requiredToAddedToCommandLine=None, dataMovement=None, location=None, searchQuery=None, outputStreaming=None, storageResourceId=None, metaData=None,):
self.name = name
self.value = value
self.type = type
@@ -347,6 +349,7 @@ class OutputDataObjectType(object):
self.searchQuery = searchQuery
self.outputStreaming = outputStreaming
self.storageResourceId = storageResourceId
+ self.metaData = metaData
def read(self, iprot):
if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -412,6 +415,11 @@ class OutputDataObjectType(object):
self.storageResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
else:
iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.STRING:
+ self.metaData = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+ else:
+ iprot.skip(ftype)
else:
iprot.skip(ftype)
iprot.readFieldEnd()
@@ -466,6 +474,10 @@ class OutputDataObjectType(object):
oprot.writeFieldBegin('storageResourceId', TType.STRING, 11)
oprot.writeString(self.storageResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.storageResourceId)
oprot.writeFieldEnd()
+ if self.metaData is not None:
+ oprot.writeFieldBegin('metaData', TType.STRING, 12)
+ oprot.writeString(self.metaData.encode('utf-8') if sys.version_info[0] == 2 else self.metaData)
+ oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
index 1c24ed1..3087dfb 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
@@ -65,6 +65,7 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
private static final org.apache.thrift.protocol.TField SEARCH_QUERY_FIELD_DESC = new org.apache.thrift.protocol.TField("searchQuery", org.apache.thrift.protocol.TType.STRING, (short)9);
private static final org.apache.thrift.protocol.TField OUTPUT_STREAMING_FIELD_DESC = new org.apache.thrift.protocol.TField("outputStreaming", org.apache.thrift.protocol.TType.BOOL, (short)10);
private static final org.apache.thrift.protocol.TField STORAGE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceId", org.apache.thrift.protocol.TType.STRING, (short)11);
+ private static final org.apache.thrift.protocol.TField META_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("metaData", org.apache.thrift.protocol.TType.STRING, (short)12);
private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new OutputDataObjectTypeStandardSchemeFactory();
private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new OutputDataObjectTypeTupleSchemeFactory();
@@ -80,6 +81,7 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
private java.lang.String searchQuery; // optional
private boolean outputStreaming; // optional
private java.lang.String storageResourceId; // optional
+ private java.lang.String metaData; // optional
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -97,7 +99,8 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
LOCATION((short)8, "location"),
SEARCH_QUERY((short)9, "searchQuery"),
OUTPUT_STREAMING((short)10, "outputStreaming"),
- STORAGE_RESOURCE_ID((short)11, "storageResourceId");
+ STORAGE_RESOURCE_ID((short)11, "storageResourceId"),
+ META_DATA((short)12, "metaData");
private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
@@ -134,6 +137,8 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
return OUTPUT_STREAMING;
case 11: // STORAGE_RESOURCE_ID
return STORAGE_RESOURCE_ID;
+ case 12: // META_DATA
+ return META_DATA;
default:
return null;
}
@@ -179,7 +184,7 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
private static final int __DATAMOVEMENT_ISSET_ID = 2;
private static final int __OUTPUTSTREAMING_ISSET_ID = 3;
private byte __isset_bitfield = 0;
- private static final _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE,_Fields.APPLICATION_ARGUMENT,_Fields.IS_REQUIRED,_Fields.REQUIRED_TO_ADDED_TO_COMMAND_LINE,_Fields.DATA_MOVEMENT,_Fields.LOCATION,_Fields.SEARCH_QUERY,_Fields.OUTPUT_STREAMING,_Fields.STORAGE_RESOURCE_ID};
+ private static final _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE,_Fields.APPLICATION_ARGUMENT,_Fields.IS_REQUIRED,_Fields.REQUIRED_TO_ADDED_TO_COMMAND_LINE,_Fields.DATA_MOVEMENT,_Fields.LOCATION,_Fields.SEARCH_QUERY,_Fields.OUTPUT_STREAMING,_Fields.STORAGE_RESOURCE_ID,_Fields.META_DATA};
public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
static {
java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -205,6 +210,8 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
tmpMap.put(_Fields.STORAGE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("storageResourceId", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.META_DATA, new org.apache.thrift.meta_data.FieldMetaData("metaData", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(OutputDataObjectType.class, metaDataMap);
}
@@ -249,6 +256,9 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
if (other.isSetStorageResourceId()) {
this.storageResourceId = other.storageResourceId;
}
+ if (other.isSetMetaData()) {
+ this.metaData = other.metaData;
+ }
}
public OutputDataObjectType deepCopy() {
@@ -272,6 +282,7 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
setOutputStreamingIsSet(false);
this.outputStreaming = false;
this.storageResourceId = null;
+ this.metaData = null;
}
public java.lang.String getName() {
@@ -531,6 +542,29 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
}
}
+ public java.lang.String getMetaData() {
+ return this.metaData;
+ }
+
+ public void setMetaData(java.lang.String metaData) {
+ this.metaData = metaData;
+ }
+
+ public void unsetMetaData() {
+ this.metaData = null;
+ }
+
+ /** Returns true if field metaData is set (has been assigned a value) and false otherwise */
+ public boolean isSetMetaData() {
+ return this.metaData != null;
+ }
+
+ public void setMetaDataIsSet(boolean value) {
+ if (!value) {
+ this.metaData = null;
+ }
+ }
+
public void setFieldValue(_Fields field, java.lang.Object value) {
switch (field) {
case NAME:
@@ -621,6 +655,14 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
}
break;
+ case META_DATA:
+ if (value == null) {
+ unsetMetaData();
+ } else {
+ setMetaData((java.lang.String)value);
+ }
+ break;
+
}
}
@@ -659,6 +701,9 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
case STORAGE_RESOURCE_ID:
return getStorageResourceId();
+ case META_DATA:
+ return getMetaData();
+
}
throw new java.lang.IllegalStateException();
}
@@ -692,6 +737,8 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
return isSetOutputStreaming();
case STORAGE_RESOURCE_ID:
return isSetStorageResourceId();
+ case META_DATA:
+ return isSetMetaData();
}
throw new java.lang.IllegalStateException();
}
@@ -810,6 +857,15 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
return false;
}
+ boolean this_present_metaData = true && this.isSetMetaData();
+ boolean that_present_metaData = true && that.isSetMetaData();
+ if (this_present_metaData || that_present_metaData) {
+ if (!(this_present_metaData && that_present_metaData))
+ return false;
+ if (!this.metaData.equals(that.metaData))
+ return false;
+ }
+
return true;
}
@@ -861,6 +917,10 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
if (isSetStorageResourceId())
hashCode = hashCode * 8191 + storageResourceId.hashCode();
+ hashCode = hashCode * 8191 + ((isSetMetaData()) ? 131071 : 524287);
+ if (isSetMetaData())
+ hashCode = hashCode * 8191 + metaData.hashCode();
+
return hashCode;
}
@@ -982,6 +1042,16 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
return lastComparison;
}
}
+ lastComparison = java.lang.Boolean.valueOf(isSetMetaData()).compareTo(other.isSetMetaData());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetMetaData()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.metaData, other.metaData);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
return 0;
}
@@ -1093,6 +1163,16 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
}
first = false;
}
+ if (isSetMetaData()) {
+ if (!first) sb.append(", ");
+ sb.append("metaData:");
+ if (this.metaData == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.metaData);
+ }
+ first = false;
+ }
sb.append(")");
return sb.toString();
}
@@ -1230,6 +1310,14 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
+ case 12: // META_DATA
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.metaData = iprot.readString();
+ struct.setMetaDataIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
default:
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
@@ -1310,6 +1398,13 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
oprot.writeFieldEnd();
}
}
+ if (struct.metaData != null) {
+ if (struct.isSetMetaData()) {
+ oprot.writeFieldBegin(META_DATA_FIELD_DESC);
+ oprot.writeString(struct.metaData);
+ oprot.writeFieldEnd();
+ }
+ }
oprot.writeFieldStop();
oprot.writeStructEnd();
}
@@ -1359,7 +1454,10 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
if (struct.isSetStorageResourceId()) {
optionals.set(9);
}
- oprot.writeBitSet(optionals, 10);
+ if (struct.isSetMetaData()) {
+ optionals.set(10);
+ }
+ oprot.writeBitSet(optionals, 11);
if (struct.isSetValue()) {
oprot.writeString(struct.value);
}
@@ -1390,6 +1488,9 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
if (struct.isSetStorageResourceId()) {
oprot.writeString(struct.storageResourceId);
}
+ if (struct.isSetMetaData()) {
+ oprot.writeString(struct.metaData);
+ }
}
@Override
@@ -1397,7 +1498,7 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
struct.name = iprot.readString();
struct.setNameIsSet(true);
- java.util.BitSet incoming = iprot.readBitSet(10);
+ java.util.BitSet incoming = iprot.readBitSet(11);
if (incoming.get(0)) {
struct.value = iprot.readString();
struct.setValueIsSet(true);
@@ -1438,6 +1539,10 @@ public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataO
struct.storageResourceId = iprot.readString();
struct.setStorageResourceIdIsSet(true);
}
+ if (incoming.get(10)) {
+ struct.metaData = iprot.readString();
+ struct.setMetaDataIsSet(true);
+ }
}
}
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/ApplicationOutputEntity.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/ApplicationOutputEntity.java
index 5b54d2d..a408655 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/ApplicationOutputEntity.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/ApplicationOutputEntity.java
@@ -72,6 +72,9 @@ public class ApplicationOutputEntity implements Serializable {
@Column(name = "SEARCH_QUERY")
private String searchQuery;
+ @Column(name = "METADATA", length = 4096)
+ private String metaData;
+
@ManyToOne(targetEntity = ApplicationInterfaceEntity.class)
@JoinColumn(name = "INTERFACE_ID", nullable = false, updatable = false)
@ForeignKey(deleteAction = ForeignKeyAction.CASCADE)
@@ -168,6 +171,14 @@ public class ApplicationOutputEntity implements Serializable {
this.searchQuery = searchQuery;
}
+ public String getMetaData() {
+ return metaData;
+ }
+
+ public void setMetaData(String metaData) {
+ this.metaData = metaData;
+ }
+
public ApplicationInterfaceEntity getApplicationInterface() {
return applicationInterface;
}
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentOutputEntity.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentOutputEntity.java
index 01ca250..6e11e7b 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentOutputEntity.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentOutputEntity.java
@@ -74,6 +74,9 @@ public class ExperimentOutputEntity implements Serializable {
@Column(name = "STORAGE_RESOURCE_ID")
private String storageResourceId;
+ @Column(name = "METADATA", length = 4096)
+ private String metaData;
+
@ManyToOne(targetEntity = ExperimentEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "EXPERIMENT_ID", referencedColumnName = "EXPERIMENT_ID")
private ExperimentEntity experiment;
@@ -178,6 +181,14 @@ public class ExperimentOutputEntity implements Serializable {
this.storageResourceId = storageResourceId;
}
+ public String getMetaData() {
+ return metaData;
+ }
+
+ public void setMetaData(String metaData) {
+ this.metaData = metaData;
+ }
+
public ExperimentEntity getExperiment() {
return experiment;
}
@@ -185,4 +196,4 @@ public class ExperimentOutputEntity implements Serializable {
public void setExperiment(ExperimentEntity experiment) {
this.experiment = experiment;
}
-}
\ No newline at end of file
+}
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessOutputEntity.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessOutputEntity.java
index f331872..66f59c9 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessOutputEntity.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessOutputEntity.java
@@ -74,6 +74,9 @@ public class ProcessOutputEntity implements Serializable {
@Column(name = "STORAGE_RESOURCE_ID")
private String storageResourceId;
+ @Column(name = "METADATA", length = 4096)
+ private String metaData;
+
@ManyToOne(targetEntity = ProcessEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "PROCESS_ID", referencedColumnName = "PROCESS_ID")
private ProcessEntity process;
@@ -177,6 +180,14 @@ public class ProcessOutputEntity implements Serializable {
this.storageResourceId = storageResourceId;
}
+ public void setMetaData(String metaData) {
+ this.metaData = metaData;
+ }
+
+ public String getMetaData() {
+ return metaData;
+ }
+
public ProcessEntity getProcess() {
return process;
}
@@ -184,4 +195,4 @@ public class ProcessOutputEntity implements Serializable {
public void setProcess(ProcessEntity process) {
this.process = process;
}
-}
\ No newline at end of file
+}
diff --git a/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql b/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql
index 3cf7ea8..4bb49a0 100644
--- a/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql
+++ b/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql
@@ -344,6 +344,7 @@ CREATE TABLE APPLICATION_OUTPUT
SEARCH_QUERY VARCHAR(255),
APP_ARGUMENT VARCHAR(255),
OUTPUT_STREAMING SMALLINT,
+ METADATA VARCHAR(4096),
PRIMARY KEY(INTERFACE_ID,OUTPUT_KEY),
FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE
);
diff --git a/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql b/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql
index 32adfb0..b24c433 100644
--- a/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql
+++ b/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql
@@ -337,6 +337,7 @@ CREATE TABLE APPLICATION_OUTPUT
SEARCH_QUERY VARCHAR(255),
APP_ARGUMENT VARCHAR(255),
OUTPUT_STREAMING SMALLINT,
+ METADATA VARCHAR(4096),
PRIMARY KEY(INTERFACE_ID,OUTPUT_KEY),
FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
diff --git a/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql b/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
index bb74d19..64ab519 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
@@ -148,6 +148,7 @@ CREATE TABLE EXPERIMENT_OUTPUT
SEARCH_QUERY varchar(255),
OUTPUT_STREAMING SMALLINT,
STORAGE_RESOURCE_ID varchar(255),
+ METADATA varchar(4096),
PRIMARY KEY(EXPERIMENT_ID,OUTPUT_NAME),
FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
);
@@ -274,6 +275,7 @@ CREATE TABLE PROCESS_OUTPUT
SEARCH_QUERY varchar(255),
OUTPUT_STREAMING SMALLINT,
STORAGE_RESOURCE_ID varchar(255),
+ METADATA varchar(4096),
PRIMARY KEY(PROCESS_ID,OUTPUT_NAME),
FOREIGN KEY (PROCESS_ID) REFERENCES PROCESS(PROCESS_ID) ON DELETE CASCADE
);
diff --git a/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql b/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
index 41ab189..598deeb 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
@@ -148,6 +148,7 @@ CREATE TABLE EXPERIMENT_OUTPUT
SEARCH_QUERY varchar(255),
OUTPUT_STREAMING SMALLINT,
STORAGE_RESOURCE_ID varchar(255),
+ METADATA varchar(4096),
PRIMARY KEY(EXPERIMENT_ID,OUTPUT_NAME),
FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
@@ -276,6 +277,7 @@ CREATE TABLE PROCESS_OUTPUT
SEARCH_QUERY varchar(255),
OUTPUT_STREAMING SMALLINT,
STORAGE_RESOURCE_ID varchar(255),
+ METADATA varchar(4096),
PRIMARY KEY(PROCESS_ID,OUTPUT_NAME),
FOREIGN KEY (PROCESS_ID) REFERENCES PROCESS(PROCESS_ID) ON DELETE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
diff --git a/modules/registry/registry-core/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/ApplicationInterfaceRepositoryTest.java b/modules/registry/registry-core/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/ApplicationInterfaceRepositoryTest.java
index 942db12..5ac61e9 100644
--- a/modules/registry/registry-core/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/ApplicationInterfaceRepositoryTest.java
+++ b/modules/registry/registry-core/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/ApplicationInterfaceRepositoryTest.java
@@ -277,6 +277,7 @@ public class ApplicationInterfaceRepositoryTest extends TestBase {
output.setSearchQuery("Search query");
output.setRequiredToAddedToCommandLine(true);
output.setOutputStreaming(true);
+ output.setMetaData("outputMetaData");
// TODO missing field
//output.setStorageResourceId("Storage resource id");
diff --git a/modules/registry/release-migration-scripts/next/DeltaScripts/appCatalog_schema_delta.sql b/modules/registry/release-migration-scripts/next/DeltaScripts/appCatalog_schema_delta.sql
index b9bff30..8600fbb 100644
--- a/modules/registry/release-migration-scripts/next/DeltaScripts/appCatalog_schema_delta.sql
+++ b/modules/registry/release-migration-scripts/next/DeltaScripts/appCatalog_schema_delta.sql
@@ -303,3 +303,6 @@ DROP TABLE IF EXISTS `GATEWAY_CLIENT_CREDENTIAL`;
-- ALTER TABLE `PARSING_TEMPLATE_INPUT` DROP IF EXISTS `PARSER_INPUT_ID`;
ALTER TABLE `UNICORE_DATAMOVEMENT` DROP IF EXISTS `SECURITY_PROTOCOL`;
+
+-- AIRAVATA-3029: Add METADATA to APPLICATION_OUTPUT
+ALTER TABLE `APPLICATION_OUTPUT` ADD COLUMN IF NOT EXISTS METADATA VARCHAR(4096);
diff --git a/modules/registry/release-migration-scripts/next/DeltaScripts/experimentCatalog_schema_delta.sql b/modules/registry/release-migration-scripts/next/DeltaScripts/experimentCatalog_schema_delta.sql
index fe7d122..a9d9a38 100644
--- a/modules/registry/release-migration-scripts/next/DeltaScripts/experimentCatalog_schema_delta.sql
+++ b/modules/registry/release-migration-scripts/next/DeltaScripts/experimentCatalog_schema_delta.sql
@@ -97,3 +97,7 @@ ALTER TABLE PROCESS_RESOURCE_SCHEDULE ADD COLUMN IF NOT EXISTS STATIC_WORKING_DI
ALTER TABLE PROCESS_RESOURCE_SCHEDULE ADD COLUMN IF NOT EXISTS OVERRIDE_ALLOCATION_PROJECT_NUMBER varchar(255);
ALTER TABLE PROCESS_RESOURCE_SCHEDULE ADD COLUMN IF NOT EXISTS OVERRIDE_LOGIN_USER_NAME varchar(255);
ALTER TABLE PROCESS_RESOURCE_SCHEDULE ADD COLUMN IF NOT EXISTS OVERRIDE_SCRATCH_LOCATION varchar(255);
+
+-- AIRAVATA-3029: Add METADATA to EXPERIMENT_INPUT and PROCESS_INPUT
+ALTER TABLE `EXPERIMENT_INPUT` ADD COLUMN IF NOT EXISTS METADATA VARCHAR(4096);
+ALTER TABLE `PROCESS_INPUT` ADD COLUMN IF NOT EXISTS METADATA VARCHAR(4096);
diff --git a/thrift-interface-descriptions/data-models/app-catalog-models/application_io_models.thrift b/thrift-interface-descriptions/data-models/app-catalog-models/application_io_models.thrift
index 7a6d571..f8537c7 100644
--- a/thrift-interface-descriptions/data-models/app-catalog-models/application_io_models.thrift
+++ b/thrift-interface-descriptions/data-models/app-catalog-models/application_io_models.thrift
@@ -119,4 +119,5 @@ struct OutputDataObjectType {
9: optional string searchQuery,
10: optional bool outputStreaming,
11: optional string storageResourceId,
-}
\ No newline at end of file
+ 12: optional string metaData,
+}