Merge branch 'AIRAVATA-3697' into develop
diff --git a/modules/ide-integration/README.md b/modules/ide-integration/README.md
index e661c4d..6ac08fa 100644
--- a/modules/ide-integration/README.md
+++ b/modules/ide-integration/README.md
@@ -60,7 +60,7 @@
 * Apply any database migrations. Go to src/main/containers directory and run
 
   ```
-  cat ./database_scripts/init/*-migrations.sql | docker exec -i resources_db_1 mysql -p123456
+  cat ./database_scripts/init/*-migrations.sql | docker exec -i containers-db-1 mysql -p123456
   ```
 
 * Wait until all the services come up. This will initialize all utilities required to start Airavata server
diff --git a/modules/ide-integration/src/main/containers/database_scripts/init/05-replica-catalog-migrations.sql b/modules/ide-integration/src/main/containers/database_scripts/init/05-replica-catalog-migrations.sql
new file mode 100644
index 0000000..db5e878
--- /dev/null
+++ b/modules/ide-integration/src/main/containers/database_scripts/init/05-replica-catalog-migrations.sql
@@ -0,0 +1,35 @@
+USE replica_catalog;
+
+-- AIRAVATA-3697: Support file names that have UTF8 characters and that are long
+SET
+  FOREIGN_KEY_CHECKS = 0;
+
+ALTER DATABASE replica_catalog CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+ALTER TABLE
+  DATA_PRODUCT CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
+
+ALTER TABLE
+  DATA_REPLICA_LOCATION CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
+
+ALTER TABLE
+  DATA_PRODUCT_METADATA CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
+
+ALTER TABLE
+  DATA_REPLICA_METADATA CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
+
+ALTER TABLE
+  CONFIGURATION CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
+
+SET
+  FOREIGN_KEY_CHECKS = 1;
+
+ALTER TABLE
+  DATA_REPLICA_LOCATION
+MODIFY
+  REPLICA_NAME text;
+
+ALTER TABLE
+  DATA_PRODUCT
+MODIFY
+  PRODUCT_NAME text;
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataProductEntity.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataProductEntity.java
index ba10d59..e5c2eea 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataProductEntity.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataProductEntity.java
@@ -43,6 +43,7 @@
     @Column(name = "GATEWAY_ID")
     private String gatewayId;
 
+    @Lob
     @Column(name = "PRODUCT_NAME")
     private String productName;
 
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaLocationEntity.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaLocationEntity.java
index ca0360b..d943163 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaLocationEntity.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/replicacatalog/DataReplicaLocationEntity.java
@@ -43,6 +43,7 @@
     @Column(name = "PRODUCT_URI")
     private String productUri;
 
+    @Lob
     @Column(name = "REPLICA_NAME")
     private String replicaName;
 
diff --git a/modules/registry/registry-core/src/main/resources/replicacatalog-mysql.sql b/modules/registry/registry-core/src/main/resources/replicacatalog-mysql.sql
index c389070..7c8a0ee 100644
--- a/modules/registry/registry-core/src/main/resources/replicacatalog-mysql.sql
+++ b/modules/registry/registry-core/src/main/resources/replicacatalog-mysql.sql
@@ -18,12 +18,10 @@
  * under the License.
  *
  */
-
-CREATE TABLE DATA_PRODUCT
-(
+CREATE TABLE DATA_PRODUCT (
         PRODUCT_URI VARCHAR (255),
         GATEWAY_ID VARCHAR (255),
-        PRODUCT_NAME VARCHAR (255),
+        PRODUCT_NAME TEXT,
         PRODUCT_DESCRIPTION VARCHAR (255),
         OWNER_NAME VARCHAR (255),
         PARENT_PRODUCT_URI VARCHAR (255),
@@ -33,13 +31,12 @@
         PRODUCT_TYPE VARCHAR(10),
         PRIMARY KEY (PRODUCT_URI),
         FOREIGN KEY (PARENT_PRODUCT_URI) REFERENCES DATA_PRODUCT (PRODUCT_URI) ON DELETE CASCADE
-)ENGINE=InnoDB DEFAULT CHARSET=latin1;
+) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin;
 
-CREATE TABLE DATA_REPLICA_LOCATION
-(
+CREATE TABLE DATA_REPLICA_LOCATION (
         REPLICA_ID VARCHAR (255),
         PRODUCT_URI VARCHAR (255) NOT NULL,
-        REPLICA_NAME VARCHAR (255),
+        REPLICA_NAME TEXT,
         REPLICA_DESCRIPTION VARCHAR (255),
         STORAGE_RESOURCE_ID VARCHAR (255),
         FILE_PATH VARCHAR (1024),
@@ -50,31 +47,31 @@
         REPLICA_PERSISTENT_TYPE VARCHAR(10),
         PRIMARY KEY (REPLICA_ID),
         FOREIGN KEY (PRODUCT_URI) REFERENCES DATA_PRODUCT(PRODUCT_URI) ON DELETE CASCADE
-)ENGINE=InnoDB DEFAULT CHARSET=latin1;
+) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin;
 
-CREATE TABLE DATA_PRODUCT_METADATA
-(
+CREATE TABLE DATA_PRODUCT_METADATA (
         PRODUCT_URI VARCHAR(255) NOT NULL,
         METADATA_KEY VARCHAR(255),
         METADATA_VALUE VARCHAR(255),
         PRIMARY KEY(PRODUCT_URI, METADATA_KEY),
         FOREIGN KEY (PRODUCT_URI) REFERENCES DATA_PRODUCT(PRODUCT_URI) ON DELETE CASCADE
-)ENGINE=InnoDB DEFAULT CHARSET=latin1;
+) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin;
 
-CREATE TABLE DATA_REPLICA_METADATA
-(
+CREATE TABLE DATA_REPLICA_METADATA (
         REPLICA_ID VARCHAR(255) NOT NULL,
         METADATA_KEY VARCHAR(255),
         METADATA_VALUE VARCHAR(255),
         PRIMARY KEY(REPLICA_ID, METADATA_KEY),
         FOREIGN KEY (REPLICA_ID) REFERENCES DATA_REPLICA_LOCATION(REPLICA_ID) ON DELETE CASCADE
-)ENGINE=InnoDB DEFAULT CHARSET=latin1;
+) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin;
 
-CREATE TABLE CONFIGURATION
-(
+CREATE TABLE CONFIGURATION (
         CONFIG_KEY VARCHAR(255),
         CONFIG_VAL VARCHAR(255),
         PRIMARY KEY(CONFIG_KEY, CONFIG_VAL)
-)ENGINE=InnoDB DEFAULT CHARSET=latin1;
+) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin;
 
-INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL) VALUES('data_catalog_version', '0.16');
+INSERT INTO
+        CONFIGURATION (CONFIG_KEY, CONFIG_VAL)
+VALUES
+('data_catalog_version', '0.16');
diff --git a/modules/registry/release-migration-scripts/next/DeltaScripts/replicaCatalog_schema_delta.sql b/modules/registry/release-migration-scripts/next/DeltaScripts/replicaCatalog_schema_delta.sql
index 942ff54..3b46452 100644
--- a/modules/registry/release-migration-scripts/next/DeltaScripts/replicaCatalog_schema_delta.sql
+++ b/modules/registry/release-migration-scripts/next/DeltaScripts/replicaCatalog_schema_delta.sql
@@ -17,5 +17,37 @@
 -- specific language governing permissions and limitations
 -- under the License.
 --
+USE replica_catalog;
 
-use replica_catalog;
+SET
+    FOREIGN_KEY_CHECKS = 0;
+
+ALTER DATABASE replica_catalog CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+ALTER TABLE
+    DATA_PRODUCT CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
+
+ALTER TABLE
+    DATA_REPLICA_LOCATION CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
+
+ALTER TABLE
+    DATA_PRODUCT_METADATA CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
+
+ALTER TABLE
+    DATA_REPLICA_METADATA CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
+
+ALTER TABLE
+    CONFIGURATION CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
+
+SET
+    FOREIGN_KEY_CHECKS = 1;
+
+ALTER TABLE
+    DATA_REPLICA_LOCATION
+MODIFY
+    REPLICA_NAME text;
+
+ALTER TABLE
+    DATA_PRODUCT
+MODIFY
+    PRODUCT_NAME text;