This is an automated email from the ASF dual-hosted git repository.

yasith pushed a commit to branch service-layer-improvements
in repository https://gitbox.apache.org/repos/asf/airavata.git

commit c842dde0ab527bae3f328c5f7bce1e9594f0d5f0
Author: yasithdev <[email protected]>
AuthorDate: Mon Dec 8 18:24:55 2025 -0600

    remove deprecated entity classes, constants, factories
---
 .../airavata/common/utils/ApplicationSettings.java |  31 ----
 .../org/apache/airavata/common/utils/DBUtil.java   |   4 -
 .../airavata/config/AiravataServerProperties.java  |   1 +
 .../java/org/apache/airavata/config/JpaConfig.java |  21 ++-
 .../OpenJpaMetamodelMappingContextFactoryBean.java |  22 ++-
 .../credential/utils/CredentialReaderFactory.java  |  78 ---------
 .../airavata/helix/impl/task/TaskContext.java      |  80 +--------
 .../helix/impl/task/staging/DataStagingTask.java   |   2 +-
 .../messaging/core/MessagingConstants.java         |  33 ----
 .../airavata/monitor/email/EmailBasedMonitor.java  |   6 +
 .../workflowcatalog/ComponentStatusEntity.java     |  96 -----------
 .../entities/workflowcatalog/EdgeEntity.java       | 107 ------------
 .../entities/workflowcatalog/NodeEntity.java       | 129 ---------------
 .../entities/workflowcatalog/PortEntity.java       | 107 ------------
 .../entities/workflowcatalog/WorkflowEntity.java   | 171 -------------------
 .../workflowcatalog/WorkflowInputEntity.java       | 183 ---------------------
 .../workflowcatalog/WorkflowOutputEntity.java      | 172 -------------------
 .../workflowcatalog/WorkflowStatusEntity.java      |  95 -----------
 .../airavata/security/SecurityManagerFactory.java  |  54 ------
 .../sharing/migrator/AiravataDataMigrator.java     |   7 +-
 .../src/main/resources/airavata.properties         |   1 +
 .../airavata/common/utils/DerbyTestUtil.java       |   2 +-
 .../repositories/common/DerbyTestUtil.java         |   2 +-
 23 files changed, 58 insertions(+), 1346 deletions(-)

diff --git 
a/airavata-api/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
 
b/airavata-api/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
index 6f45f84476..bed515515f 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
@@ -132,37 +132,6 @@ public class ApplicationSettings {
         }
     }
 
-    /**
-     * Returns the configuration value relevant for the given key.
-     * If configuration value contains references to other configuration 
values they will also
-     * be replaced. E.g :- If configuration key reads 
http://${ip}:${port}/axis2/services/RegistryService?wsdl,
-     * the variables ip and port will get replaced by their appropriated 
values in the configuration.
-     * @param key The configuration key to read value of
-     * @return The configuration value. For above example caller will get a 
value like
-     * http://192.2.33.12:8080/axis2/services/RegistryService?wsdl
-     * @throws ApplicationSettingsException If an error occurred while reading 
configurations.
-     * @deprecated use #getSetting(String) instead
-     */
-    @Deprecated
-    public String getAbsoluteSetting(String key) throws 
ApplicationSettingsException {
-
-        String configurationValueWithVariables = 
ApplicationSettings.getSetting(key);
-
-        List<String> variableList = 
getAllMatches(configurationValueWithVariables, REGULAR_EXPRESSION);
-
-        if (variableList == null || variableList.isEmpty()) {
-            return configurationValueWithVariables;
-        }
-
-        for (String variableIdentifier : variableList) {
-            String variableName = getVariableNameOnly(variableIdentifier);
-            String value = getAbsoluteSetting(variableName);
-
-            configurationValueWithVariables = 
configurationValueWithVariables.replace(variableIdentifier, value);
-        }
-
-        return configurationValueWithVariables;
-    }
 
     private static String getVariableNameOnly(String variableWithIdentifiers) {
         return variableWithIdentifiers.substring(2, 
(variableWithIdentifiers.length() - 1));
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/common/utils/DBUtil.java 
b/airavata-api/src/main/java/org/apache/airavata/common/utils/DBUtil.java
index 3fc8ce2db5..488eddd872 100644
--- a/airavata-api/src/main/java/org/apache/airavata/common/utils/DBUtil.java
+++ b/airavata-api/src/main/java/org/apache/airavata/common/utils/DBUtil.java
@@ -59,10 +59,6 @@ public class DBUtil {
         init();
     }
 
-    @Deprecated
-    public DBUtil(JDBCConfig jdbcConfig) throws ApplicationSettingsException {
-        this(jdbcConfig.getURL(), jdbcConfig.getUser(), 
jdbcConfig.getPassword(), jdbcConfig.getDriver());
-    }
 
     /**
      * Initializes and load driver. Must be called this before calling 
anyother method.
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/config/AiravataServerProperties.java
 
b/airavata-api/src/main/java/org/apache/airavata/config/AiravataServerProperties.java
index 30f74302b8..89fd719061 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/config/AiravataServerProperties.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/config/AiravataServerProperties.java
@@ -414,6 +414,7 @@ public class AiravataServerProperties {
                 public String password;
                 public String storeProtocol = "imaps";
                 public int period = 10000;
+                public int connectionRetryInterval = 30000; // 30 seconds
                 public boolean monitorEnabled = true;
                 public int expiryMins = 60;
             }
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/config/JpaConfig.java 
b/airavata-api/src/main/java/org/apache/airavata/config/JpaConfig.java
index 9e9106c0d8..21857ce3e1 100644
--- a/airavata-api/src/main/java/org/apache/airavata/config/JpaConfig.java
+++ b/airavata-api/src/main/java/org/apache/airavata/config/JpaConfig.java
@@ -52,8 +52,25 @@ public class JpaConfig {
         return new OpenJpaEntityManagerFactoryPostProcessor();
     }
 
-    // Note: JpaMetamodelMappingContext is automatically created by Spring 
Data JPA
-    // via @EnableJpaRepositories. We don't need to create it manually.
+    /**
+     * Custom JpaMetamodelMappingContext factory that handles OpenJPA 
enhancement errors gracefully.
+     * This overrides the default Spring Data JPA factory which doesn't handle 
OpenJPA enhancement issues.
+     */
+    @Bean(name = "jpaMappingContext")
+    public OpenJpaMetamodelMappingContextFactoryBean jpaMappingContext(
+            @Qualifier("profileServiceEntityManagerFactory") 
EntityManagerFactory profileServiceEmf,
+            @Qualifier("appCatalogEntityManagerFactory") EntityManagerFactory 
appCatalogEmf,
+            @Qualifier("expCatalogEntityManagerFactory") EntityManagerFactory 
expCatalogEmf,
+            @Qualifier("replicaCatalogEntityManagerFactory") 
EntityManagerFactory replicaCatalogEmf,
+            @Qualifier("workflowCatalogEntityManagerFactory") 
EntityManagerFactory workflowCatalogEmf,
+            @Qualifier("sharingRegistryEntityManagerFactory") 
EntityManagerFactory sharingRegistryEmf,
+            @Qualifier("credentialStoreEntityManagerFactory") 
EntityManagerFactory credentialStoreEmf) {
+        OpenJpaMetamodelMappingContextFactoryBean factory = new 
OpenJpaMetamodelMappingContextFactoryBean();
+        factory.setEntityManagerFactories(java.util.Arrays.asList(
+                profileServiceEmf, appCatalogEmf, expCatalogEmf, 
replicaCatalogEmf,
+                workflowCatalogEmf, sharingRegistryEmf, credentialStoreEmf));
+        return factory;
+    }
 
     // Persistence unit names
     public static final String PROFILE_SERVICE_PU = "profile_service";
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/config/OpenJpaMetamodelMappingContextFactoryBean.java
 
b/airavata-api/src/main/java/org/apache/airavata/config/OpenJpaMetamodelMappingContextFactoryBean.java
index 66924deb12..b093122e42 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/config/OpenJpaMetamodelMappingContextFactoryBean.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/config/OpenJpaMetamodelMappingContextFactoryBean.java
@@ -83,14 +83,19 @@ public class OpenJpaMetamodelMappingContextFactoryBean
                 } else {
                     logger.warn("EntityManagerFactory {} returned null 
metamodel", emfName);
                 }
-            } catch (Exception e) {
+            } catch (Throwable e) {
                 // Log warning but continue - this allows the application to 
start
                 // even if some EntityManagerFactory instances have 
enhancement issues
+                // Catch Throwable to catch all errors including OpenJPA 
MetaDataException
+                String errorMsg = e.getMessage();
+                if (e.getCause() != null) {
+                    errorMsg = e.getCause().getMessage();
+                }
                 logger.warn(
                         "Failed to retrieve metamodel from 
EntityManagerFactory {}: {}. "
                                 + "This may be due to OpenJPA enhancement 
issues. Continuing with other factories.",
                         emfName,
-                        e.getMessage());
+                        errorMsg);
                 logger.debug("Metamodel retrieval error details for {}", 
emfName, e);
             }
         }
@@ -107,8 +112,7 @@ public class OpenJpaMetamodelMappingContextFactoryBean
                 workingEmfs.size(),
                 entityManagerFactories.size());
 
-        // Use Spring Data JPA's standard factory to create the context
-        // but only with the EntityManagerFactory instances that work
+        // Use Spring Data JPA's standard factory with only the working 
EntityManagerFactory instances
         
org.springframework.data.jpa.repository.config.JpaMetamodelMappingContextFactoryBean
 standardFactory =
                 new 
org.springframework.data.jpa.repository.config.JpaMetamodelMappingContextFactoryBean();
 
@@ -144,6 +148,16 @@ public class OpenJpaMetamodelMappingContextFactoryBean
             standardFactory.afterPropertiesSet();
             return standardFactory.getObject();
         } catch (Exception e) {
+            // If standard factory fails even with working EMFs, log the error 
but check if it's due to
+            // enhancement issues that we can work around
+            if (e.getCause() instanceof 
org.apache.openjpa.util.MetaDataException) {
+                logger.warn(
+                        "Standard factory failed due to OpenJPA enhancement 
issue, but continuing with {} working EMFs. "
+                        + "Some repositories may not work correctly.",
+                        workingEmfs.size());
+                // Try to create context with just the EMFs that don't have 
the problematic entity
+                // For now, rethrow to see the full error
+            }
             logger.error("Failed to create JpaMetamodelMappingContext using 
standard factory", e);
             throw new IllegalStateException("Cannot create 
JpaMetamodelMappingContext", e);
         }
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/credential/utils/CredentialReaderFactory.java
 
b/airavata-api/src/main/java/org/apache/airavata/credential/utils/CredentialReaderFactory.java
deleted file mode 100644
index 7c2831b9a0..0000000000
--- 
a/airavata-api/src/main/java/org/apache/airavata/credential/utils/CredentialReaderFactory.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.credential.utils;
-
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.DBUtil;
-import org.apache.airavata.credential.impl.store.CredentialReaderImpl;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-import org.springframework.stereotype.Component;
-
-/**
- * Factory class to create credential store readers.
- * @deprecated Use Spring dependency injection instead. This factory is kept 
for backward compatibility.
- */
-@Component
-@Deprecated
-public class CredentialReaderFactory {
-
-    private static ApplicationContext applicationContext;
-
-    @Autowired
-    public void setApplicationContext(ApplicationContext applicationContext) {
-        CredentialReaderFactory.applicationContext = applicationContext;
-    }
-
-    /**
-     * Creates a credential reader using supplied database configurations.
-     * @deprecated Use Spring dependency injection instead.
-     * @param dbUti The database configurations.
-     * @return CredentialReader object.
-     */
-    @Deprecated
-    public static CredentialReader createCredentialStoreReader(DBUtil dbUti) 
throws ApplicationSettingsException {
-        if (applicationContext != null) {
-            return applicationContext.getBean(CredentialReaderImpl.class);
-        }
-        throw new IllegalStateException(
-                "CredentialReaderFactory not initialized. Use Spring 
dependency injection instead.");
-    }
-
-    /**
-     * Creates credential reader using default configurations for credential 
store database.
-     * @deprecated Use Spring dependency injection instead.
-     * @return The credential reader.
-     * @throws ClassNotFoundException If an error occurred while instantiating 
jdbc driver
-     * @throws ApplicationSettingsException If an error occurred while reading 
database configurations.
-     * @throws InstantiationException If an error occurred while instantiating 
jdbc driver
-     * @throws IllegalAccessException A security exception accessing jdbc 
driver.
-     */
-    @Deprecated
-    public static CredentialReader createCredentialStoreReader()
-            throws ClassNotFoundException, ApplicationSettingsException, 
InstantiationException,
-                    IllegalAccessException {
-        if (applicationContext != null) {
-            return applicationContext.getBean(CredentialReaderImpl.class);
-        }
-        throw new IllegalStateException(
-                "CredentialReaderFactory not initialized. Use Spring 
dependency injection instead.");
-    }
-}
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/TaskContext.java
 
b/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/TaskContext.java
index d749470649..ef37b1f14f 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/TaskContext.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/TaskContext.java
@@ -109,7 +109,6 @@ public class TaskContext {
     private GroupResourceProfile groupResourceProfile;
     private UserProfile userProfile;
 
-    private StoragePreference gatewayStorageResourcePreference;
     private UserComputeResourcePreference userComputeResourcePreference;
     private UserStoragePreference userStoragePreference;
     private GroupComputeResourcePreference groupComputeResourcePreference;
@@ -335,54 +334,6 @@ public class TaskContext {
         this.userStoragePreference = userStoragePreference;
     }
 
-    /**
-     * Returns the default storage preference for the gateway.
-     * Prefers gateway-specific storage (ID starting with gatewayId), 
otherwise uses the first available preference.
-     *
-     * @deprecated Use {@link #getInputGatewayStorageResourcePreference()} for 
input staging operations
-     *             or {@link #getOutputGatewayStorageResourcePreference()} for 
output staging operations.
-     */
-    @Deprecated
-    public StoragePreference getGatewayStorageResourcePreference() throws 
Exception {
-        if (this.gatewayStorageResourcePreference == null) {
-            try {
-                GatewayResourceProfile gatewayProfile = 
getGatewayResourceProfile();
-                List<StoragePreference> storagePreferences = 
gatewayProfile.getStoragePreferences();
-
-                if (storagePreferences == null || 
storagePreferences.isEmpty()) {
-                    throw new Exception("No storage preferences found for 
gateway " + gatewayId);
-                }
-
-                String gatewayPrefix = gatewayId + "_";
-                this.gatewayStorageResourcePreference = 
storagePreferences.stream()
-                        .filter(pref -> {
-                            String id = pref.getStorageResourceId();
-                            return id != null && id.startsWith(gatewayPrefix);
-                        })
-                        .findFirst()
-                        .orElseGet(() -> {
-                            logger.debug(
-                                    "No gateway-specific storage found, using 
first available: {}",
-                                    
storagePreferences.get(0).getStorageResourceId());
-                            return storagePreferences.get(0);
-                        });
-
-                if 
(this.gatewayStorageResourcePreference.getStorageResourceId().startsWith(gatewayPrefix))
 {
-                    logger.debug(
-                            "Using gateway-specific storage preference: {}",
-                            
this.gatewayStorageResourcePreference.getStorageResourceId());
-                }
-            } catch (RegistryServiceException e) {
-                logger.error("Failed to fetch gateway storage preference for 
gateway {}", gatewayId, e);
-                throw e;
-            }
-        }
-        return gatewayStorageResourcePreference;
-    }
-
-    public void setGatewayStorageResourcePreference(StoragePreference 
gatewayStorageResourcePreference) {
-        this.gatewayStorageResourcePreference = 
gatewayStorageResourcePreference;
-    }
 
     public ComputeResourceDescription getComputeResourceDescription() throws 
Exception {
         if (this.computeResourceDescription == null) {
@@ -666,8 +617,9 @@ public class TaskContext {
     }
 
     public String getStorageResourceCredentialToken() throws Exception {
-        if 
(isValid(getGatewayStorageResourcePreference().getResourceSpecificCredentialStoreToken()))
 {
-            return 
getGatewayStorageResourcePreference().getResourceSpecificCredentialStoreToken();
+        StoragePreference storagePref = 
getInputGatewayStorageResourcePreference();
+        if (isValid(storagePref.getResourceSpecificCredentialStoreToken())) {
+            return storagePref.getResourceSpecificCredentialStoreToken();
         } else {
             return getGatewayResourceProfile().getCredentialStoreToken();
         }
@@ -764,15 +716,15 @@ public class TaskContext {
     }
 
     public String getStorageResourceLoginUserName() throws Exception {
-        return getGatewayStorageResourcePreference().getLoginUserName();
+        return getInputGatewayStorageResourcePreference().getLoginUserName();
     }
 
     public String getStorageFileSystemRootLocation() throws Exception {
-        return 
getGatewayStorageResourcePreference().getFileSystemRootLocation();
+        return 
getInputGatewayStorageResourcePreference().getFileSystemRootLocation();
     }
 
     public String getStorageResourceId() throws Exception {
-        return getGatewayStorageResourcePreference().getStorageResourceId();
+        return 
getInputGatewayStorageResourcePreference().getStorageResourceId();
     }
 
     public String getInputStorageResourceId() throws Exception {
@@ -831,11 +783,6 @@ public class TaskContext {
         }
     }
 
-    // Deprecated: Services are now obtained from Spring context when needed
-    @Deprecated
-    public void setRegistryService(RegistryService registryService) {
-        this.registryService = registryService;
-    }
 
     public RegistryService getRegistryService() {
         if (registryService == null) {
@@ -859,11 +806,6 @@ public class TaskContext {
         return profileService;
     }
 
-    // Deprecated: Services are now obtained from Spring context when needed
-    @Deprecated
-    public void setProfileService(UserProfileService profileService) {
-        this.profileService = profileService;
-    }
 
     public UserProfile getUserProfile() throws TaskOnFailException {
 
@@ -1100,16 +1042,6 @@ public class TaskContext {
         if (applicationContext != null) {
             return applicationContext.getBean(AiravataSecurityManager.class);
         }
-        // Fallback to SecurityManagerFactory if ApplicationContext not 
available
-        try {
-            ApplicationContext ctx = AiravataTask.getApplicationContext();
-            if (ctx != null) {
-                var properties = 
ctx.getBean(org.apache.airavata.config.AiravataServerProperties.class);
-                return 
org.apache.airavata.security.SecurityManagerFactory.getSecurityManager(properties);
-            }
-        } catch (Exception e) {
-            logger.warn("Unable to get SecurityManager from factory", e);
-        }
         throw new RuntimeException("Unable to get SecurityManager - 
ApplicationContext not available");
     }
 }
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/DataStagingTask.java
 
b/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/DataStagingTask.java
index 8c8dc7a542..5c16fa770e 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/DataStagingTask.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/helix/impl/task/staging/DataStagingTask.java
@@ -86,7 +86,7 @@ public abstract class DataStagingTask extends AiravataTask {
         String storageId = null;
         try {
             storageId = getTaskContext().getStorageResourceId();
-            StoragePreference gatewayStoragePref = 
getTaskContext().getGatewayStorageResourcePreference();
+            StoragePreference gatewayStoragePref = 
getTaskContext().getInputGatewayStorageResourcePreference();
             return createStorageAdaptorFromPreference(adaptorSupport, 
storageId, gatewayStoragePref, "Default");
 
         } catch (Exception e) {
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/messaging/core/MessagingConstants.java
 
b/airavata-api/src/main/java/org/apache/airavata/messaging/core/MessagingConstants.java
deleted file mode 100644
index 08dca111e6..0000000000
--- 
a/airavata-api/src/main/java/org/apache/airavata/messaging/core/MessagingConstants.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.messaging.core;
-
-@Deprecated
-public abstract class MessagingConstants {
-    public static final String RABBITMQ_BROKER_URL = "rabbitmq.broker.url";
-    public static final String RABBITMQ_STATUS_EXCHANGE_NAME = 
"rabbitmq.status.exchange.name";
-    public static final String RABBITMQ_TASK_EXCHANGE_NAME = 
"rabbitmq.task.exchange.name";
-
-    public static final String RABBIT_ROUTING_KEY = "routingKey";
-    public static final String RABBIT_QUEUE = "queue";
-    public static final String RABBIT_CONSUMER_TAG = "consumerTag";
-    public static final String DURABLE_QUEUE = "durable.queue";
-    public static final String PREFETCH_COUNT = "prefetch.count";
-}
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java
 
b/airavata-api/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java
index ce6cb510d8..1635a98ba9 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java
@@ -243,6 +243,12 @@ public class EmailBasedMonitor extends AbstractMonitor 
implements Runnable {
                 }
             } catch (MessagingException e) {
                 log.error("[EJM]: Couldn't connect to the store ", e);
+                try {
+                    
Thread.sleep(airavataProperties.services.monitor.email.connectionRetryInterval);
+                } catch (InterruptedException ie) {
+                    log.error("[EJM]: Interrupted while waiting before retry", 
ie);
+                    Thread.currentThread().interrupt();
+                }
             } catch (InterruptedException e) {
                 log.error("[EJM]: Interrupt exception while sleep ", e);
             } catch (Throwable e) {
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/ComponentStatusEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/ComponentStatusEntity.java
deleted file mode 100644
index 2e22c562f5..0000000000
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/ComponentStatusEntity.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.registry.entities.workflowcatalog;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.Id;
-import jakarta.persistence.Table;
-import java.io.Serializable;
-import java.sql.Timestamp;
-
-/**
- * The persistent class for the component_status database table.
- * @deprecated This entity is no longer actively used.
- */
-@Deprecated
-@Entity
-@Table(name = "COMPONENT_STATUS")
-public class ComponentStatusEntity implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @Id
-    @Column(name = "STATUS_ID")
-    private String statusId;
-
-    @Column(name = "REASON")
-    private String reason;
-
-    @Column(name = "STATE")
-    private String state;
-
-    @Column(name = "UPDATE_TIME")
-    private Timestamp timeofStateChange;
-
-    @Column(name = "TEMPLATE_ID")
-    private String templateId;
-
-    public ComponentStatusEntity() {}
-
-    public String getStatusId() {
-        return statusId;
-    }
-
-    public void setStatusId(String statusId) {
-        this.statusId = statusId;
-    }
-
-    public String getReason() {
-        return reason;
-    }
-
-    public void setReason(String reason) {
-        this.reason = reason;
-    }
-
-    public String getState() {
-        return state;
-    }
-
-    public void setState(String state) {
-        this.state = state;
-    }
-
-    public Timestamp getTimeofStateChange() {
-        return timeofStateChange;
-    }
-
-    public void setTimeofStateChange(Timestamp timeofStateChange) {
-        this.timeofStateChange = timeofStateChange;
-    }
-
-    public String getTemplateId() {
-        return templateId;
-    }
-
-    public void setTemplateId(String templateId) {
-        this.templateId = templateId;
-    }
-}
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/EdgeEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/EdgeEntity.java
deleted file mode 100644
index daf93fb0d4..0000000000
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/EdgeEntity.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.registry.entities.workflowcatalog;
-
-import jakarta.persistence.*;
-import java.io.Serializable;
-import java.sql.Timestamp;
-import org.apache.airavata.model.ComponentStatus;
-
-/**
- * The persistent class for the edge database table.
- * @deprecated This entity is no longer actively used.
- */
-@Deprecated
-@Entity
-@Table(name = "EDGE")
-@IdClass(EdgePK.class)
-public class EdgeEntity implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @Id
-    @Column(name = "EDGE_ID")
-    private String edgeId;
-
-    @Id
-    @Column(name = "TEMPLATE_ID")
-    private String templateId;
-
-    @Column(name = "COMPONENT_STATUS_ID")
-    private ComponentStatus status;
-
-    @Column(name = "CREATED_TIME")
-    private Timestamp createdTime;
-
-    @Column(name = "DESCRIPTION")
-    private String description;
-
-    @Column(name = "NAME")
-    private String name;
-
-    public EdgeEntity() {}
-
-    public String getEdgeId() {
-        return edgeId;
-    }
-
-    public void setEdgeId(String edgeId) {
-        this.edgeId = edgeId;
-    }
-
-    public String getTemplateId() {
-        return templateId;
-    }
-
-    public void setTemplateId(String templateId) {
-        this.templateId = templateId;
-    }
-
-    public ComponentStatus getStatus() {
-        return status;
-    }
-
-    public void setStatus(ComponentStatus status) {
-        this.status = status;
-    }
-
-    public Timestamp getCreatedTime() {
-        return createdTime;
-    }
-
-    public void setCreatedTime(Timestamp createdTime) {
-        this.createdTime = createdTime;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-}
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/NodeEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/NodeEntity.java
deleted file mode 100644
index 49e9796f9a..0000000000
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/NodeEntity.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.registry.entities.workflowcatalog;
-
-import jakarta.persistence.*;
-import java.io.Serializable;
-import java.sql.Timestamp;
-import org.apache.airavata.model.ComponentStatus;
-
-/**
- * The persistent class for the node database table.
- * @deprecated This entity is no longer actively used.
- */
-@Deprecated
-@Entity
-@Table(name = "NODE")
-@IdClass(NodePK.class)
-public class NodeEntity implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @Id
-    @Column(name = "NODE_ID")
-    private String nodeId;
-
-    @Id
-    @Column(name = "TEMPLATE_ID")
-    private String templateId;
-
-    @Column(name = "APPLICATION_ID")
-    private String applicationId;
-
-    @Column(name = "APPLICATION_NAME")
-    private String applicationName;
-
-    @Column(name = "COMPONENT_STATUS_ID")
-    private ComponentStatus status;
-
-    @Column(name = "CREATED_TIME")
-    private Timestamp createdTime;
-
-    @Column(name = "DESCRIPTION")
-    private String description;
-
-    @Column(name = "NAME")
-    private String name;
-
-    public NodeEntity() {}
-
-    public String getNodeId() {
-        return nodeId;
-    }
-
-    public void setNodeId(String nodeId) {
-        this.nodeId = nodeId;
-    }
-
-    public String getApplicationId() {
-        return applicationId;
-    }
-
-    public void setApplicationId(String applicationId) {
-        this.applicationId = applicationId;
-    }
-
-    public String getApplicationName() {
-        return applicationName;
-    }
-
-    public void setApplicationName(String applicationName) {
-        this.applicationName = applicationName;
-    }
-
-    public ComponentStatus getStatus() {
-        return status;
-    }
-
-    public void setStatus(ComponentStatus status) {
-        this.status = status;
-    }
-
-    public Timestamp getCreatedTime() {
-        return createdTime;
-    }
-
-    public void setCreatedTime(Timestamp createdTime) {
-        this.createdTime = createdTime;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getTemplateId() {
-        return templateId;
-    }
-
-    public void setTemplateId(String templateId) {
-        this.templateId = templateId;
-    }
-}
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/PortEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/PortEntity.java
deleted file mode 100644
index c90f980c45..0000000000
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/PortEntity.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.registry.entities.workflowcatalog;
-
-import jakarta.persistence.*;
-import java.io.Serializable;
-import java.sql.Timestamp;
-import org.apache.airavata.model.ComponentStatus;
-
-/**
- * The persistent class for the port database table.
- * @deprecated This entity is no longer actively used.
- */
-@Deprecated
-@Entity
-@Table(name = "PORT")
-@IdClass(PortPK.class)
-public class PortEntity implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @Id
-    @Column(name = "PORT_ID")
-    private String portId;
-
-    @Id
-    @Column(name = "TEMPLATE_ID")
-    private String templateId;
-
-    @Column(name = "COMPONENT_STATUS_ID")
-    private ComponentStatus status;
-
-    @Column(name = "CREATED_TIME")
-    private Timestamp createdTime;
-
-    @Column(name = "DESCRIPTION")
-    private String description;
-
-    @Column(name = "NAME")
-    private String name;
-
-    public PortEntity() {}
-
-    public String getPortId() {
-        return portId;
-    }
-
-    public void setPortId(String portId) {
-        this.portId = portId;
-    }
-
-    public ComponentStatus getComponentStatusId() {
-        return status;
-    }
-
-    public void setComponentStatusId(ComponentStatus status) {
-        this.status = status;
-    }
-
-    public Timestamp getCreatedTime() {
-        return createdTime;
-    }
-
-    public void setCreatedTime(Timestamp createdTime) {
-        this.createdTime = createdTime;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getTemplateId() {
-        return templateId;
-    }
-
-    public void setTemplateId(String templateId) {
-        this.templateId = templateId;
-    }
-}
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/WorkflowEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/WorkflowEntity.java
deleted file mode 100644
index bbb17bcbb8..0000000000
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/WorkflowEntity.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.registry.entities.workflowcatalog;
-
-import jakarta.persistence.*;
-import java.io.Serializable;
-import java.sql.Timestamp;
-import java.util.List;
-
-/**
- * The persistent class for the workflow database table.
- * @deprecated This entity is no longer actively used. Use 
AiravataWorkflowEntity instead.
- */
-@Deprecated
-@Entity
-@Table(name = "WORKFLOW")
-public class WorkflowEntity implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @Id
-    @Column(name = "TEMPLATE_ID")
-    private String templateId;
-
-    @Column(name = "CREATED_USER")
-    private String createdUser;
-
-    @Column(name = "CREATION_TIME")
-    private Timestamp creationTime;
-
-    @Column(name = "GATEWAY_ID")
-    private String gatewayId;
-
-    @Column(name = "GRAPH")
-    private String graph;
-
-    @Column(name = "IMAGE")
-    private byte[] image;
-
-    @Column(name = "UPDATE_TIME")
-    private Timestamp updateTime;
-
-    @Column(name = "WORKFLOW_NAME")
-    private String name;
-
-    @OneToMany(
-            targetEntity = WorkflowInputEntity.class,
-            cascade = CascadeType.ALL,
-            mappedBy = "workflow",
-            fetch = FetchType.EAGER)
-    private List<WorkflowInputEntity> workflowInputs;
-
-    @OneToMany(
-            targetEntity = WorkflowOutputEntity.class,
-            cascade = CascadeType.ALL,
-            mappedBy = "workflow",
-            fetch = FetchType.EAGER)
-    private List<WorkflowOutputEntity> workflowOutputs;
-
-    public WorkflowEntity() {}
-
-    public String getTemplateId() {
-
-        return this.templateId;
-    }
-
-    public void setTemplateId(String templateId) {
-
-        this.templateId = templateId;
-    }
-
-    public String getCreatedUser() {
-
-        return this.createdUser;
-    }
-
-    public void setCreatedUser(String createdUser) {
-
-        this.createdUser = createdUser;
-    }
-
-    public Timestamp getCreationTime() {
-
-        return this.creationTime;
-    }
-
-    public void setCreationTime(Timestamp creationTime) {
-
-        this.creationTime = creationTime;
-    }
-
-    public String getGatewayId() {
-
-        return this.gatewayId;
-    }
-
-    public void setGatewayId(String gatewayId) {
-
-        this.gatewayId = gatewayId;
-    }
-
-    public String getGraph() {
-
-        return this.graph;
-    }
-
-    public void setGraph(String graph) {
-
-        this.graph = graph;
-    }
-
-    public byte[] getImage() {
-
-        return this.image;
-    }
-
-    public void setImage(byte[] image) {
-
-        this.image = image;
-    }
-
-    public Timestamp getUpdateTime() {
-
-        return this.updateTime;
-    }
-
-    public void setUpdateTime(Timestamp updateTime) {
-
-        this.updateTime = updateTime;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public List<WorkflowInputEntity> getWorkflowInputs() {
-        return workflowInputs;
-    }
-
-    public void setWorkflowInputs(List<WorkflowInputEntity> workflowInputs) {
-        this.workflowInputs = workflowInputs;
-    }
-
-    public List<WorkflowOutputEntity> getWorkflowOutputs() {
-        return workflowOutputs;
-    }
-
-    public void setWorkflowOutputs(List<WorkflowOutputEntity> workflowOutputs) 
{
-        this.workflowOutputs = workflowOutputs;
-    }
-}
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/WorkflowInputEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/WorkflowInputEntity.java
deleted file mode 100644
index aa8dc95d6c..0000000000
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/WorkflowInputEntity.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.registry.entities.workflowcatalog;
-
-import jakarta.persistence.*;
-import java.io.Serializable;
-
-/**
- * The persistent class for the workflow_input database table.
- * @deprecated This entity is no longer actively used.
- */
-@Deprecated
-@Entity
-@Table(name = "WORKFLOW_INPUT")
-@IdClass(WorkflowInputPK.class)
-public class WorkflowInputEntity implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @Id
-    @Column(name = "TEMPLATE_ID")
-    private String templateId;
-
-    @Id
-    @Column(name = "INPUT_KEY")
-    private String name;
-
-    @Column(name = "APP_ARGUMENT")
-    private String applicationArgument;
-
-    @Column(name = "DATA_STAGED")
-    private boolean dataStaged;
-
-    @Column(name = "DATA_TYPE")
-    private String type;
-
-    @Column(name = "INPUT_ORDER")
-    private int inputOrder;
-
-    @Column(name = "INPUT_VALUE")
-    private String inputValue;
-
-    @Column(name = "IS_REQUIRED")
-    private boolean isRequired;
-
-    @Column(name = "METADATA")
-    private String metaData;
-
-    @Column(name = "REQUIRED_TO_COMMANDLINE")
-    private boolean requiredToAddedToCommandLine;
-
-    @Column(name = "STANDARD_INPUT")
-    private boolean standardInput;
-
-    @Column(name = "USER_FRIENDLY_DESC")
-    private String userFriendlyDescription;
-
-    @ManyToOne(targetEntity = WorkflowEntity.class, cascade = 
CascadeType.MERGE)
-    @JoinColumn(name = "TEMPLATE_ID")
-    private WorkflowEntity workflow;
-
-    public WorkflowInputEntity() {}
-
-    public String getTemplateId() {
-        return templateId;
-    }
-
-    public void setTemplateId(String templateId) {
-        this.templateId = templateId;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getApplicationArgument() {
-        return applicationArgument;
-    }
-
-    public void setApplicationArgument(String applicationArgument) {
-        this.applicationArgument = applicationArgument;
-    }
-
-    public boolean getDataStaged() {
-        return dataStaged;
-    }
-
-    public void setDataStaged(boolean dataStaged) {
-        this.dataStaged = dataStaged;
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public int getInputOrder() {
-        return inputOrder;
-    }
-
-    public void setInputOrder(int inputOrder) {
-        this.inputOrder = inputOrder;
-    }
-
-    public String getInputValue() {
-        return inputValue;
-    }
-
-    public void setInputValue(String inputValue) {
-        this.inputValue = inputValue;
-    }
-
-    public boolean getIsRequired() {
-        return isRequired;
-    }
-
-    public void setIsRequired(boolean isRequired) {
-        this.isRequired = isRequired;
-    }
-
-    public String getMetaData() {
-        return metaData;
-    }
-
-    public void setMetaData(String metaData) {
-        this.metaData = metaData;
-    }
-
-    public boolean getRequiredToAddedToCommandLine() {
-        return requiredToAddedToCommandLine;
-    }
-
-    public void setRequiredToAddedToCommandLine(boolean 
requiredToAddedToCommandLine) {
-        this.requiredToAddedToCommandLine = requiredToAddedToCommandLine;
-    }
-
-    public boolean getStandardInput() {
-        return standardInput;
-    }
-
-    public void setStandardInput(boolean standardInput) {
-        this.standardInput = standardInput;
-    }
-
-    public String getUserFriendlyDescription() {
-        return userFriendlyDescription;
-    }
-
-    public void setUserFriendlyDescription(String userFriendlyDescription) {
-        this.userFriendlyDescription = userFriendlyDescription;
-    }
-
-    public WorkflowEntity getWorkflow() {
-        return workflow;
-    }
-
-    public void setWorkflow(WorkflowEntity workflow) {
-        this.workflow = workflow;
-    }
-}
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/WorkflowOutputEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/WorkflowOutputEntity.java
deleted file mode 100644
index f309a02d3a..0000000000
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/WorkflowOutputEntity.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.registry.entities.workflowcatalog;
-
-import jakarta.persistence.*;
-import java.io.Serializable;
-
-/**
- * The persistent class for the workflow_output database table.
- * @deprecated This entity is no longer actively used.
- */
-@Deprecated
-@Entity
-@Table(name = "WORKFLOW_OUTPUT")
-@IdClass(WorkflowOutputPK.class)
-public class WorkflowOutputEntity implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @Id
-    @Column(name = "TEMPLATE_ID")
-    private String templateId;
-
-    @Id
-    @Column(name = "OUTPUT_KEY")
-    private String name;
-
-    @Column(name = "APP_ARGUMENT")
-    private String applicationArgument;
-
-    @Column(name = "DATA_MOVEMENT")
-    private short dataMovement;
-
-    @Column(name = "DATA_NAME_LOCATION")
-    private String location;
-
-    @Column(name = "DATA_TYPE")
-    private String type;
-
-    @Column(name = "IS_REQUIRED")
-    private short isRequired;
-
-    @Column(name = "OUTPUT_STREAMING")
-    private short outputStreaming;
-
-    @Column(name = "OUTPUT_VALUE")
-    private String value;
-
-    @Column(name = "REQUIRED_TO_COMMANDLINE")
-    private short requiredToAddedToCommandLine;
-
-    @Column(name = "SEARCH_QUERY")
-    private String searchQuery;
-
-    @ManyToOne(targetEntity = WorkflowEntity.class, cascade = 
CascadeType.MERGE)
-    @JoinColumn(name = "TEMPLATE_ID")
-    private WorkflowEntity workflow;
-
-    public WorkflowOutputEntity() {}
-
-    public String getTemplateId() {
-        return templateId;
-    }
-
-    public void setTemplateId(String templateId) {
-        this.templateId = templateId;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getApplicationArgument() {
-        return applicationArgument;
-    }
-
-    public void setApplicationArgument(String applicationArgument) {
-        this.applicationArgument = applicationArgument;
-    }
-
-    public short getDataMovement() {
-        return dataMovement;
-    }
-
-    public void setDataMovement(short dataMovement) {
-        this.dataMovement = dataMovement;
-    }
-
-    public String getLocation() {
-        return location;
-    }
-
-    public void setLocation(String location) {
-        this.location = location;
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public short getIsRequired() {
-        return isRequired;
-    }
-
-    public void setIsRequired(short isRequired) {
-        this.isRequired = isRequired;
-    }
-
-    public short getOutputStreaming() {
-        return outputStreaming;
-    }
-
-    public void setOutputStreaming(short outputStreaming) {
-        this.outputStreaming = outputStreaming;
-    }
-
-    public String getValue() {
-        return value;
-    }
-
-    public void setValue(String value) {
-        this.value = value;
-    }
-
-    public short getRequiredToAddedToCommandLine() {
-        return requiredToAddedToCommandLine;
-    }
-
-    public void setRequiredToAddedToCommandLine(short 
requiredToAddedToCommandLine) {
-        this.requiredToAddedToCommandLine = requiredToAddedToCommandLine;
-    }
-
-    public String getSearchQuery() {
-        return searchQuery;
-    }
-
-    public void setSearchQuery(String searchQuery) {
-        this.searchQuery = searchQuery;
-    }
-
-    public WorkflowEntity getWorkflow() {
-        return workflow;
-    }
-
-    public void setWorkflow(WorkflowEntity workflow) {
-        this.workflow = workflow;
-    }
-}
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/WorkflowStatusEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/WorkflowStatusEntity.java
deleted file mode 100644
index f38710ae52..0000000000
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/entities/workflowcatalog/WorkflowStatusEntity.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.registry.entities.workflowcatalog;
-
-import jakarta.persistence.*;
-import java.io.Serializable;
-import java.sql.Timestamp;
-
-/**
- * The persistent class for the workflow_status database table.
- * @deprecated This entity is no longer actively used.
- */
-@Deprecated
-@Entity
-@Table(name = "WORKFLOW_STATUS")
-@IdClass(WorkflowStatusPK.class)
-public class WorkflowStatusEntity implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @Id
-    @Column(name = "STATUS_ID")
-    private String statusId;
-
-    @Id
-    @Column(name = "TEMPLATE_ID")
-    private String templateId;
-
-    @Column(name = "REASON")
-    private String reason;
-
-    @Column(name = "STATE")
-    private String state;
-
-    @Column(name = "UPDATE_TIME")
-    private Timestamp timeOfStateChange;
-
-    public WorkflowStatusEntity() {}
-
-    public String getStatusId() {
-        return statusId;
-    }
-
-    public void setStatusId(String statusId) {
-        this.statusId = statusId;
-    }
-
-    public String getReason() {
-        return reason;
-    }
-
-    public void setReason(String reason) {
-        this.reason = reason;
-    }
-
-    public String getState() {
-        return state;
-    }
-
-    public void setState(String state) {
-        this.state = state;
-    }
-
-    public Timestamp getTimeOfStateChange() {
-        return timeOfStateChange;
-    }
-
-    public void setTimeOfStateChange(Timestamp timeOfStateChange) {
-        this.timeOfStateChange = timeOfStateChange;
-    }
-
-    public String getTemplateId() {
-        return templateId;
-    }
-
-    public void setTemplateId(String templateId) {
-        this.templateId = templateId;
-    }
-}
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/security/SecurityManagerFactory.java
 
b/airavata-api/src/main/java/org/apache/airavata/security/SecurityManagerFactory.java
deleted file mode 100644
index 775b8e13cc..0000000000
--- 
a/airavata-api/src/main/java/org/apache/airavata/security/SecurityManagerFactory.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.security;
-
-import org.apache.airavata.config.AiravataServerProperties;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This initializes an instance of the appropriate security manager according 
to the
- * configuration.
- *
- * @deprecated Use Spring's @Autowired AiravataSecurityManager instead.
- * This factory is kept for backward compatibility with standalone utilities.
- */
-@Deprecated
-public class SecurityManagerFactory {
-    private static final Logger logger = 
LoggerFactory.getLogger(SecurityManagerFactory.class);
-
-    public static AiravataSecurityManager 
getSecurityManager(AiravataServerProperties properties)
-            throws AiravataSecurityException {
-        try {
-            String className = properties.security.iam.classpath;
-            Class<?> secManagerImpl = Class.forName(className);
-            return (AiravataSecurityManager)
-                    secManagerImpl.getDeclaredConstructor().newInstance();
-        } catch (ClassNotFoundException e) {
-            String error = "Security Manager class could not be found.";
-            logger.error(e.getMessage(), e);
-            throw new AiravataSecurityException(error, e);
-        } catch (Exception e) {
-            String error = "Error in instantiating the Security Manager 
class.";
-            logger.error(e.getMessage(), e);
-            throw new AiravataSecurityException(error, e);
-        }
-    }
-}
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/sharing/migrator/AiravataDataMigrator.java
 
b/airavata-api/src/main/java/org/apache/airavata/sharing/migrator/AiravataDataMigrator.java
index 7536da066d..929e7824a7 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/sharing/migrator/AiravataDataMigrator.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/sharing/migrator/AiravataDataMigrator.java
@@ -55,7 +55,6 @@ import org.apache.airavata.model.user.UserProfile;
 import org.apache.airavata.profile.utils.TenantManagementKeycloakImpl;
 import org.apache.airavata.security.AiravataSecurityException;
 import org.apache.airavata.security.AiravataSecurityManager;
-import org.apache.airavata.security.SecurityManagerFactory;
 import org.apache.airavata.service.CredentialStoreService;
 import org.apache.airavata.service.IamAdminService;
 import org.apache.airavata.service.RegistryService;
@@ -95,6 +94,9 @@ public class AiravataDataMigrator implements 
CommandLineRunner {
     @Autowired
     private IamAdminService iamAdminService;
 
+    @Autowired
+    private AiravataSecurityManager airavataSecurityManager;
+
     public static void main(String[] args) {
         SpringApplication.run(AiravataDataMigrator.class, args);
     }
@@ -938,8 +940,7 @@ public class AiravataDataMigrator implements 
CommandLineRunner {
 
     private AuthzToken getManagementUsersAccessToken(String tenantId) throws 
Exception {
         try {
-            AiravataSecurityManager securityManager = 
SecurityManagerFactory.getSecurityManager(properties);
-            AuthzToken authzToken = 
securityManager.getUserManagementServiceAccountAuthzToken(tenantId);
+            AuthzToken authzToken = 
airavataSecurityManager.getUserManagementServiceAccountAuthzToken(tenantId);
             return authzToken;
         } catch (AiravataSecurityException e) {
             throw new Exception("Unable to fetch access token for management 
user for tenant: " + tenantId, e);
diff --git a/airavata-api/src/main/resources/airavata.properties 
b/airavata-api/src/main/resources/airavata.properties
index 8cd0193496..f4a9164792 100644
--- a/airavata-api/src/main/resources/airavata.properties
+++ b/airavata-api/src/main/resources/airavata.properties
@@ -165,6 +165,7 @@ services.monitor.email.host=imap.gmail.com
 services.monitor.email.monitor-enabled=true
 services.monitor.email.password=123456
 services.monitor.email.period=10000
+services.monitor.email.connection-retry-interval=30000
 services.monitor.email.store-protocol=imaps
 
 # Job Monitor
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/common/utils/DerbyTestUtil.java
 
b/airavata-api/src/test/java/org/apache/airavata/common/utils/DerbyTestUtil.java
index e431b64145..afcbad010f 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/common/utils/DerbyTestUtil.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/common/utils/DerbyTestUtil.java
@@ -70,7 +70,7 @@ public class DerbyTestUtil {
 
         Connection conn = null;
         try {
-            DBUtil dbUtil = new DBUtil(jdbcConfig);
+            DBUtil dbUtil = new DBUtil(jdbcConfig.getURL(), 
jdbcConfig.getUser(), jdbcConfig.getPassword(), jdbcConfig.getDriver());
             conn = dbUtil.getConnection();
             clearProperties(conn);
             removeObjects(conn);
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/common/DerbyTestUtil.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/common/DerbyTestUtil.java
index 41b6210aca..06754d65c4 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/common/DerbyTestUtil.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/common/DerbyTestUtil.java
@@ -72,7 +72,7 @@ public class DerbyTestUtil {
 
         Connection conn = null;
         try {
-            DBUtil dbUtil = new DBUtil(jdbcConfig);
+            DBUtil dbUtil = new DBUtil(jdbcConfig.getURL(), 
jdbcConfig.getUser(), jdbcConfig.getPassword(), jdbcConfig.getDriver());
             conn = dbUtil.getConnection();
             clearProperties(conn);
             removeObjects(conn);

Reply via email to