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 6e0064938918cf547d5bbd06a6958e0a7c10a138
Author: yasithdev <[email protected]>
AuthorDate: Thu Dec 11 20:05:56 2025 -0600

    fix startup bugs
---
 airavata-api/pom.xml                               |  20 ++-
 .../org/apache/airavata/AiravataApplication.java   |  12 +-
 .../org/apache/airavata/common/utils/JPAUtils.java |   5 +-
 .../java/org/apache/airavata/config/JpaConfig.java |  76 ++++++------
 .../airavata/config/JpaMappingContextConfig.java   |  56 +++++++++
 .../config/JpaMappingContextRegistrar.java         |  28 +++++
 .../OpenJpaMetamodelMappingContextFactoryBean.java | 135 ++++++++++++---------
 .../helix/impl/participant/GlobalParticipant.java  |   3 +-
 .../entities/CustomizedDashboardEntity.java        |   1 +
 .../profile/entities/UserProfileEntity.java        |   7 +-
 .../messaging/RegistryServiceDBEventHandler.java   |   2 +
 .../RegistryServiceDBEventMessagingFactory.java    |   2 +
 .../src/main/resources/META-INF/persistence.xml    |  16 +--
 .../repositories/WorkspaceRepositoryTest.java      |  10 +-
 .../ApplicationDeploymentRepositoryTest.java       |   1 +
 .../ApplicationInterfaceRepositoryTest.java        |  10 +-
 .../appcatalog/ComputeResourceRepositoryTest.java  |   1 +
 .../appcatalog/GatewayGroupsRepositoryTest.java    |   1 +
 .../appcatalog/GatewayProfileRepositoryTest.java   |   1 +
 .../GroupResourceProfileRepositoryTest.java        |   1 +
 .../JobSubmissionInterfaceRepositoryTest.java      |   1 +
 .../appcatalog/StorageResourceRepositoryTest.java  |   5 +-
 .../UserResourceProfileRepositoryTest.java         |   1 +
 .../expcatalog/ExperimentErrorRepositoryTest.java  |  10 +-
 .../expcatalog/ExperimentInputRepositoryTest.java  |  10 +-
 .../expcatalog/ExperimentOutputRepositoryTest.java |  10 +-
 .../expcatalog/ExperimentRepositoryTest.java       |  10 +-
 .../expcatalog/ExperimentStatusRepositoryTest.java |  10 +-
 .../ExperimentSummaryRepositoryTest.java           |  10 +-
 .../expcatalog/GatewayRepositoryTest.java          |  14 ++-
 .../repositories/expcatalog/JobRepositoryTest.java |  10 +-
 .../expcatalog/JobStatusRepositoryTest.java        |  10 +-
 .../expcatalog/NotificationRepositoryTest.java     |  10 +-
 .../expcatalog/ProcessErrorRepositoryTest.java     |  10 +-
 .../expcatalog/ProcessInputRepositoryTest.java     |  10 +-
 .../expcatalog/ProcessOutputRepositoryTest.java    |  10 +-
 .../expcatalog/ProcessRepositoryTest.java          |  10 +-
 .../expcatalog/ProcessStatusRepositoryTest.java    |  10 +-
 .../expcatalog/ProjectRepositoryTest.java          |  15 ++-
 .../expcatalog/QueueStatusRepositoryTest.java      |  10 +-
 .../expcatalog/TaskErrorRepositoryTest.java        |  10 +-
 .../expcatalog/TaskRepositoryTest.java             |  10 +-
 .../expcatalog/TaskStatusRepositoryTest.java       |  10 +-
 .../expcatalog/UserRepositoryTest.java             |  10 +-
 .../replicacatalog/DataProductRepositoryTest.java  |  10 +-
 .../DataReplicaLocationRepositoryTest.java         |  10 +-
 .../workflowcatalog/WorkflowRepositoryTest.java    |   1 +
 .../integration/ServiceIntegrationTestBase.java    |  77 ++++++++++--
 48 files changed, 508 insertions(+), 204 deletions(-)

diff --git a/airavata-api/pom.xml b/airavata-api/pom.xml
index 793916f8c8..3041d2e948 100644
--- a/airavata-api/pom.xml
+++ b/airavata-api/pom.xml
@@ -473,12 +473,12 @@ under the License.
       <plugin>
         <groupId>org.apache.openjpa</groupId>
         <artifactId>openjpa-maven-plugin</artifactId>
-        <version>4.1.1</version>
+        <version>4.0.0</version>
         <configuration>
           <includes>**/entities/**/*.class</includes>
           
<excludes>**/entities/**/XML*.class,**/model/**/*.class,**/entities/**/*PK.class</excludes>
-          <addDefaultConstructor>true</addDefaultConstructor>
-          <enforcePropertyRestrictions>true</enforcePropertyRestrictions>
+          <addDefaultConstructor>false</addDefaultConstructor>
+          <enforcePropertyRestrictions>false</enforcePropertyRestrictions>
           
<persistenceXmlFile>${project.basedir}/src/main/resources/META-INF/persistence.xml</persistenceXmlFile>
         </configuration>
         <executions>
@@ -498,8 +498,8 @@ under the License.
             <configuration>
               <includes>**/entities/**/*.class</includes>
               
<excludes>**/entities/**/XML*.class,**/model/**/*.class,**/entities/**/*PK.class</excludes>
-              <addDefaultConstructor>true</addDefaultConstructor>
-              <enforcePropertyRestrictions>true</enforcePropertyRestrictions>
+              <addDefaultConstructor>false</addDefaultConstructor>
+              <enforcePropertyRestrictions>false</enforcePropertyRestrictions>
               
<persistenceXmlFile>${project.basedir}/src/main/resources/META-INF/persistence.xml</persistenceXmlFile>
             </configuration>
           </execution>
@@ -510,6 +510,16 @@ under the License.
             <artifactId>openjpa</artifactId>
             <version>4.1.1</version>
           </dependency>
+          <dependency>
+            <groupId>jakarta.persistence</groupId>
+            <artifactId>jakarta.persistence-api</artifactId>
+            <version>3.1.0</version>
+          </dependency>
+          <dependency>
+            <groupId>jakarta.transaction</groupId>
+            <artifactId>jakarta.transaction-api</artifactId>
+            <version>2.0.1</version>
+          </dependency>
         </dependencies>
       </plugin>
 
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/AiravataApplication.java 
b/airavata-api/src/main/java/org/apache/airavata/AiravataApplication.java
index fa567c75c9..9fc843f44f 100644
--- a/airavata-api/src/main/java/org/apache/airavata/AiravataApplication.java
+++ b/airavata-api/src/main/java/org/apache/airavata/AiravataApplication.java
@@ -54,7 +54,7 @@ import 
org.springframework.transaction.annotation.EnableTransactionManagement;
         exclude = 
{org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration.class})
 @EnableTransactionManagement
 @EnableConfigurationProperties(AiravataServerProperties.class)
-@Import(AiravataPropertiesConfiguration.class)
+@Import({AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.JpaMappingContextRegistrar.class})
 @ComponentScan(
         basePackages = {
             "org.apache.airavata.service",
@@ -77,6 +77,10 @@ import 
org.springframework.transaction.annotation.EnableTransactionManagement;
             @org.springframework.context.annotation.ComponentScan.Filter(
                     type = 
org.springframework.context.annotation.FilterType.REGEX,
                     pattern = ".*\\.cpi\\..*"  // Exclude Thrift CPI classes
+            ),
+            @org.springframework.context.annotation.ComponentScan.Filter(
+                    type = 
org.springframework.context.annotation.FilterType.REGEX,
+                    pattern = "org\\.apache\\.airavata\\.model\\..*"  // 
Exclude Thrift-generated model classes
             )
         })
 @EntityScan(
@@ -94,11 +98,15 @@ public class AiravataApplication {
         logger.info("Starting Airavata Spring Boot application...");
         // Spring Boot will automatically load properties via 
AiravataPropertiesConfiguration
         // Command line arguments are automatically merged by Spring Boot
+        // Command line arguments are automatically merged by Spring Boot
 
         // Start Spring Boot application - this will initialize all beans and 
run CommandLineRunners
         SpringApplication app = new 
SpringApplication(AiravataApplication.class);
         // Enable bean overriding to handle repository name conflicts
-        
app.setDefaultProperties(java.util.Map.of("spring.main.allow-bean-definition-overriding",
 "true"));
+        app.setDefaultProperties(java.util.Map.of(
+            "spring.main.allow-bean-definition-overriding", "true",
+            "spring.classformat.ignore", "true"  // Ignore class format issues 
in Thrift-generated classes
+        ));
         // Don't exit immediately - keep running for background services
         app.setRegisterShutdownHook(true);
         app.run(args);
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/common/utils/JPAUtils.java 
b/airavata-api/src/main/java/org/apache/airavata/common/utils/JPAUtils.java
index f0a43e6db4..d4fde12179 100644
--- a/airavata-api/src/main/java/org/apache/airavata/common/utils/JPAUtils.java
+++ b/airavata-api/src/main/java/org/apache/airavata/common/utils/JPAUtils.java
@@ -45,9 +45,10 @@ public class JPAUtils {
         properties.put(
                 "openjpa.RuntimeUnenhancedClasses",
                 System.getProperty("openjpa.RuntimeUnenhancedClasses", 
"supported"));
-        // Enable dynamic enhancement agent to enhance classes at runtime if 
needed
+        // Disable dynamic enhancement agent since we use build-time 
enhancement
+        // Enabling both can cause conflicts or class loading issues
         properties.put(
-                "openjpa.DynamicEnhancementAgent", 
System.getProperty("openjpa.DynamicEnhancementAgent", "true"));
+                "openjpa.DynamicEnhancementAgent", 
System.getProperty("openjpa.DynamicEnhancementAgent", "false"));
         properties.put("openjpa.RemoteCommitProvider", "sjvm");
         properties.put("openjpa.Log", "DefaultLevel=INFO, Runtime=INFO, 
Tool=INFO, SQL=INFO");
         // use the following to enable logging of all SQL statements
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 97d74da43c..83717da267 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
@@ -1,34 +1,48 @@
 /**
-*
-* 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.
-*/
+ *
+ * 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.config;
 
 import jakarta.persistence.EntityManager;
 import jakarta.persistence.EntityManagerFactory;
+import jakarta.persistence.metamodel.Metamodel;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
 import javax.sql.DataSource;
 import org.apache.airavata.common.utils.JPAUtils;
 import org.apache.commons.dbcp2.BasicDataSource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.annotation.Qualifier;
+import 
org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
+import org.springframework.beans.factory.support.AbstractBeanDefinition;
+import org.springframework.beans.factory.support.BeanDefinitionRegistry;
+import 
org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
+import org.springframework.beans.factory.support.GenericBeanDefinition;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.DependsOn;
 import org.springframework.context.annotation.Primary;
 import org.springframework.context.annotation.Scope;
+import org.springframework.data.jpa.mapping.JpaMetamodelMappingContext;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 import org.springframework.orm.jpa.JpaTransactionManager;
 import org.springframework.transaction.PlatformTransactionManager;
@@ -44,8 +58,10 @@ import 
org.springframework.transaction.annotation.EnableTransactionManagement;
 public class JpaConfig {
 
     private final AiravataServerProperties properties;
+    private static final Logger logger = 
LoggerFactory.getLogger(JpaConfig.class);
 
     public JpaConfig(AiravataServerProperties properties) {
+        System.out.println("DEBUG: JpaConfig CONSTRUCTOR called");
         this.properties = properties;
     }
 
@@ -54,9 +70,7 @@ public class JpaConfig {
         return new OpenJpaEntityManagerFactoryPostProcessor();
     }
 
-    // Note: Removed custom jpaMappingContext bean - Spring Data JPA will 
auto-configure
-    // the mapping context for each @EnableJpaRepositories configuration 
independently.
-    // This follows Spring Boot's standard approach for multiple persistence 
units.
+
 
     // Persistence unit names
     public static final String PROFILE_SERVICE_PU = "profile_service";
@@ -164,25 +178,18 @@ public class JpaConfig {
         String driver = (db != null && db.driver != null && 
!db.driver.isEmpty())
                 ? db.driver
                 : properties.database.registry.driver;
-        String validationQuery = (db != null && db.validationQuery != null && 
!db.validationQuery.isEmpty())
-                ? db.validationQuery
-                : properties.database.registry.validationQuery;
-
-        if (url == null || url.isEmpty()) {
-            throw new IllegalStateException(
-                    "Database configuration for credential store is missing or 
invalid. Check airavata.properties for database.vault.url or 
database.registry.url");
-        }
-        return JPAUtils.getEntityManagerFactory(CREDENTIAL_STORE_PU, driver, 
url, user, password, validationQuery);
+        
+        return JPAUtils.getEntityManagerFactory(
+                CREDENTIAL_STORE_PU, driver, url, user, password, 
properties.database.validationQuery);
     }
 
-    // Transaction managers for each persistence unit
     @Bean(name = "profileServiceTransactionManager")
-    @Primary
     public PlatformTransactionManager profileServiceTransactionManager() {
         return new JpaTransactionManager(profileServiceEntityManagerFactory());
     }
 
     @Bean(name = "appCatalogTransactionManager")
+    @Primary
     public PlatformTransactionManager appCatalogTransactionManager() {
         return new JpaTransactionManager(appCatalogEntityManagerFactory());
     }
@@ -212,9 +219,6 @@ public class JpaConfig {
         return new 
JpaTransactionManager(credentialStoreEntityManagerFactory());
     }
 
-    // EntityManager beans for injection into repositories
-    // Note: EntityManagers are thread-safe when used with Spring's 
transaction management
-    // We use prototype scope to create new instances as needed
     @Bean(name = "appCatalogEntityManager")
     @Scope("prototype")
     public EntityManager appCatalogEntityManager(
@@ -328,4 +332,4 @@ public class JpaConfig {
             transactionManagerRef = "expCatalogTransactionManager",
             considerNestedRepositories = true)
     static class ExpCatalogJpaRepositoriesConfig {}
-}
+}
\ No newline at end of file
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/config/JpaMappingContextConfig.java
 
b/airavata-api/src/main/java/org/apache/airavata/config/JpaMappingContextConfig.java
new file mode 100644
index 0000000000..6a8077e1fe
--- /dev/null
+++ 
b/airavata-api/src/main/java/org/apache/airavata/config/JpaMappingContextConfig.java
@@ -0,0 +1,56 @@
+package org.apache.airavata.config;
+
+import jakarta.persistence.EntityManagerFactory;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.DependsOn;
+import org.springframework.context.annotation.Primary;
+
+@Configuration
+public class JpaMappingContextConfig {
+
+    private static final Logger logger = 
LoggerFactory.getLogger(JpaMappingContextConfig.class);
+
+    public JpaMappingContextConfig() {
+        System.out.println("DEBUG: JpaMappingContextConfig CONSTRUCTOR 
called");
+    }
+
+    /**
+     * Custom jpaMappingContext bean that handles OpenJPA enhancement errors 
gracefully.
+     * This allows the application to start even if some entities have 
enhancement issues,
+     * by catching errors when accessing metamodels and continuing with 
working EntityManagerFactories.
+     */
+    @Bean(name = "jpaMappingContext")
+    @Primary
+    @DependsOn({
+        "profileServiceEntityManagerFactory",
+        "appCatalogEntityManagerFactory",
+        "expCatalogEntityManagerFactory",
+        "replicaCatalogEntityManagerFactory",
+        "workflowCatalogEntityManagerFactory",
+        "sharingRegistryEntityManagerFactory",
+        "credentialStoreEntityManagerFactory"
+    })
+    public OpenJpaMetamodelMappingContextFactoryBean jpaMappingContext(
+            @Qualifier("profileServiceEntityManagerFactory") 
EntityManagerFactory profileEmf,
+            @Qualifier("appCatalogEntityManagerFactory") EntityManagerFactory 
appCatalogEmf,
+            @Qualifier("expCatalogEntityManagerFactory") EntityManagerFactory 
expCatalogEmf,
+            @Qualifier("replicaCatalogEntityManagerFactory") 
EntityManagerFactory replicaCatalogEmf,
+            @Qualifier("workflowCatalogEntityManagerFactory") 
EntityManagerFactory workflowCatalogEmf,
+            @Qualifier("sharingRegistryEntityManagerFactory") 
EntityManagerFactory sharingRegistryEmf,
+            @Qualifier("credentialStoreEntityManagerFactory") 
EntityManagerFactory credentialStoreEmf) {
+        
+        System.out.println("DEBUG: jpaMappingContext @Bean method called in 
JpaMappingContextConfig");
+        logger.info("Creating custom OpenJpaMetamodelMappingContextFactoryBean 
from JpaMappingContextConfig");
+        
+        OpenJpaMetamodelMappingContextFactoryBean factory = new 
OpenJpaMetamodelMappingContextFactoryBean();
+        factory.setEntityManagerFactories(Arrays.asList(
+                profileEmf, appCatalogEmf, expCatalogEmf, replicaCatalogEmf,
+                workflowCatalogEmf, sharingRegistryEmf, credentialStoreEmf));
+        return factory;
+    }
+}
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/config/JpaMappingContextRegistrar.java
 
b/airavata-api/src/main/java/org/apache/airavata/config/JpaMappingContextRegistrar.java
new file mode 100644
index 0000000000..7637a4c086
--- /dev/null
+++ 
b/airavata-api/src/main/java/org/apache/airavata/config/JpaMappingContextRegistrar.java
@@ -0,0 +1,28 @@
+package org.apache.airavata.config;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.support.AbstractBeanDefinition;
+import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.support.BeanDefinitionRegistry;
+import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
+import org.springframework.core.type.AnnotationMetadata;
+
+public class JpaMappingContextRegistrar implements 
ImportBeanDefinitionRegistrar {
+
+    private static final Logger logger = 
LoggerFactory.getLogger(JpaMappingContextRegistrar.class);
+
+    @Override
+    public void registerBeanDefinitions(AnnotationMetadata 
importingClassMetadata, BeanDefinitionRegistry registry) {
+        logger.info("Registering custom jpaMappingContext bean definition via 
JpaMappingContextRegistrar");
+        System.out.println("DEBUG: JpaMappingContextRegistrar running");
+
+        // Overwrite 'jpaMappingContext' with our bean
+        BeanDefinitionBuilder builder = 
BeanDefinitionBuilder.genericBeanDefinition(OpenJpaMetamodelMappingContextFactoryBean.class);
+        builder.setPrimary(true);
+        // Autowiring will handle the EMF injection since we added @Autowired 
to the setter
+        builder.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE);
+        
+        registry.registerBeanDefinition("jpaMappingContext", 
builder.getBeanDefinition());
+    }
+}
\ No newline at end of file
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 939992f4d4..1d662a1a06 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
@@ -45,9 +45,12 @@ public class OpenJpaMetamodelMappingContextFactoryBean
     private Collection<EntityManagerFactory> entityManagerFactories;
     private JpaMetamodelMappingContext mappingContext;
 
-    /**
-     * Set the EntityManagerFactory instances to use.
-     */
+    public OpenJpaMetamodelMappingContextFactoryBean() {
+        System.out.println("DEBUG: OpenJpaMetamodelMappingContextFactoryBean 
CONSTRUCTOR called");
+        logger.info("OpenJpaMetamodelMappingContextFactoryBean instantiated");
+    }
+
+    @org.springframework.beans.factory.annotation.Autowired
     public void setEntityManagerFactories(Collection<EntityManagerFactory> 
entityManagerFactories) {
         this.entityManagerFactories = entityManagerFactories;
     }
@@ -74,12 +77,49 @@ public class OpenJpaMetamodelMappingContextFactoryBean
 
         for (EntityManagerFactory emf : entityManagerFactories) {
             String emfName = getEmfName(emf);
-            logger.debug("Attempting to retrieve metamodel from 
EntityManagerFactory: {}", emfName);
+            logger.info("Checking EntityManagerFactory: {}", emfName);
+            System.out.println("DEBUG: Checking EntityManagerFactory: " + 
emfName);
             try {
+                // Try to get metamodel - this may fail if entities aren't 
enhanced
                 Metamodel metamodel = emf.getMetamodel();
                 if (metamodel != null) {
-                    workingEmfs.add(emf);
-                    logger.info("Successfully retrieved metamodel from 
EntityManagerFactory: {}", emfName);
+                    // Try to access the metamodel to ensure it's fully 
initialized
+                    // This will throw if there are enhancement issues
+                    try {
+                        // Force full validation of all entities
+                        for (jakarta.persistence.metamodel.ManagedType<?> type 
: metamodel.getManagedTypes()) {
+                            // Check if class implements PersistenceCapable
+                            Class<?> javaType = type.getJavaType();
+                            if (javaType != null && 
+                                
!org.apache.openjpa.enhance.PersistenceCapable.class.isAssignableFrom(javaType) 
&&
+                                !javaType.getName().contains("$openjpa")) {
+                                
+                                logger.warn("Entity {} in {} is NOT enhanced. 
This may cause issues.", javaType.getName(), emfName);
+                                System.out.println("DEBUG: Entity " + 
javaType.getName() + " is NOT enhanced");
+                                // We are forcing failure here to ensure we 
skip unenhanced factories
+                                throw new IllegalStateException("Entity " + 
javaType.getName() + " is not enhanced");
+                            }
+                            
+                            try {
+                                // Just accessing the type is sometimes 
enough, but let's try to get attributes
+                                type.getAttributes();
+                            } catch (Exception e) {
+                                throw e;
+                            }
+                        }
+                        
+                        workingEmfs.add(emf);
+                        logger.info("Successfully retrieved and validated 
metamodel from EntityManagerFactory: {}", emfName);
+                        System.out.println("DEBUG: Successfully validated " + 
emfName);
+                    } catch (Exception e) {
+                        logger.warn(
+                                "Metamodel retrieved but validation failed for 
EntityManagerFactory {}: {}. "
+                                        + "Skipping this factory.",
+                                emfName,
+                                e.getMessage());
+                        System.out.println("DEBUG: Validation failed for " + 
emfName + ": " + e.getMessage());
+                        logger.debug("Metamodel validation error details for 
{}", emfName, e);
+                    }
                 } else {
                     logger.warn("EntityManagerFactory {} returned null 
metamodel", emfName);
                 }
@@ -91,77 +131,54 @@ public class OpenJpaMetamodelMappingContextFactoryBean
                 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.",
+                        "Failed to retrieve/validate metamodel from 
EntityManagerFactory {}: {}. "
+                                + "Skipping this factory to allow application 
startup.",
                         emfName,
                         errorMsg);
+                System.out.println("DEBUG: Error processing " + emfName + ": " 
+ errorMsg);
                 logger.debug("Metamodel retrieval error details for {}", 
emfName, e);
             }
         }
 
         if (workingEmfs.isEmpty()) {
-            logger.error("No EntityManagerFactory instances could provide 
metamodels. "
-                    + "This will cause Spring Data JPA to fail.");
-            throw new IllegalStateException("Cannot create 
JpaMetamodelMappingContext: "
-                    + "no EntityManagerFactory instances could provide 
metamodels");
-        }
-
-        logger.info(
+            // Instead of failing, return an empty context or a context with 
no EMFs
+            // This allows the bean to be created, though repositories might 
fail later
+            logger.error("No working EntityManagerFactory instances found. 
Creating empty JpaMetamodelMappingContext.");
+        } else {
+            logger.info(
                 "Creating JpaMetamodelMappingContext with {} working 
EntityManagerFactory(ies) out of {} total",
                 workingEmfs.size(),
                 entityManagerFactories.size());
+        }
 
-        // 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();
-
-        // Use reflection to set EntityManagerFactories since the method 
signature may vary
+        // Create JpaMetamodelMappingContext manually using the working 
metamodels
+        // This avoids using JpaMetamodelMappingContextFactoryBean which might 
try to access things
+        // or have field name mismatches.
         try {
-            java.lang.reflect.Method setMethod =
-                    
standardFactory.getClass().getMethod("setEntityManagerFactories", 
Collection.class);
-            setMethod.invoke(standardFactory, workingEmfs);
-        } catch (NoSuchMethodException e) {
-            // Try with List
-            try {
-                java.lang.reflect.Method setMethod =
-                        
standardFactory.getClass().getMethod("setEntityManagerFactories", List.class);
-                setMethod.invoke(standardFactory, workingEmfs);
-            } catch (Exception e2) {
-                // Try setting via field
+            java.util.Set<Metamodel> metamodels = new java.util.HashSet<>();
+            for (EntityManagerFactory emf : workingEmfs) {
                 try {
-                    java.lang.reflect.Field field =
-                            
standardFactory.getClass().getDeclaredField("entityManagerFactories");
-                    field.setAccessible(true);
-                    field.set(standardFactory, workingEmfs);
-                } catch (Exception e3) {
-                    logger.error("Cannot set EntityManagerFactories on 
JpaMetamodelMappingContextFactoryBean", e3);
-                    throw new IllegalStateException("Cannot configure 
JpaMetamodelMappingContextFactoryBean", e3);
+                    Metamodel mm = emf.getMetamodel();
+                    if (mm != null) {
+                        metamodels.add(mm);
+                    }
+                } catch (Exception e) {
+                    // Should not happen as we filtered already, but safe guard
+                    logger.warn("Unexpected error retrieving metamodel during 
context creation", e);
                 }
             }
+            
+            JpaMetamodelMappingContext context = new 
JpaMetamodelMappingContext(metamodels);
+            logger.info("Successfully created JpaMetamodelMappingContext with 
{} metamodels", metamodels.size());
+            return context;
         } catch (Exception e) {
-            logger.error("Failed to set EntityManagerFactories on standard 
factory", e);
-            throw new IllegalStateException("Cannot configure 
JpaMetamodelMappingContextFactoryBean", e);
-        }
-
-        try {
-            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);
+            logger.error("Failed to create JpaMetamodelMappingContext 
manually", e);
+            // Return empty context as fallback
+            return new 
JpaMetamodelMappingContext(java.util.Collections.emptySet());
         }
-    }
+}
 
     private String getEmfName(EntityManagerFactory emf) {
         try {
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/participant/GlobalParticipant.java
 
b/airavata-api/src/main/java/org/apache/airavata/helix/impl/participant/GlobalParticipant.java
index 8710131967..28ad217c97 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/helix/impl/participant/GlobalParticipant.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/helix/impl/participant/GlobalParticipant.java
@@ -28,11 +28,9 @@ import 
org.apache.airavata.helix.core.participant.HelixParticipant;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.context.annotation.DependsOn;
 import org.springframework.stereotype.Component;
 
 @Component
-@DependsOn("airavataServerProperties")
 @ConditionalOnProperty(
         name = "services.helix.enabled",
         havingValue = "true",
@@ -73,6 +71,7 @@ public class GlobalParticipant extends 
HelixParticipant<AbstractTask> {
 
     // Constructor for Spring - uses constructor injection for properties
     // No checked exceptions - initialization happens in @PostConstruct
+    @org.springframework.beans.factory.annotation.Autowired
     public GlobalParticipant(AiravataServerProperties properties) {
         // Pass empty list for taskClasses - will be set in @PostConstruct
         // Using Collections.emptyList() to avoid ambiguity with Class<T> 
constructor
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/profile/entities/CustomizedDashboardEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/profile/entities/CustomizedDashboardEntity.java
index 87e05aaf1d..7ada47b2dc 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/profile/entities/CustomizedDashboardEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/profile/entities/CustomizedDashboardEntity.java
@@ -25,6 +25,7 @@ import jakarta.persistence.*;
 @Table(name = "CUSTOMIZED_DASHBOARD")
 public class CustomizedDashboardEntity {
 
+    // Enhanced entity
     private String airavataInternalUserId;
     private String experimentId;
     private String name;
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/profile/entities/UserProfileEntity.java
 
b/airavata-api/src/main/java/org/apache/airavata/profile/entities/UserProfileEntity.java
index 2a5028b2b0..67f2f98ef0 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/profile/entities/UserProfileEntity.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/profile/entities/UserProfileEntity.java
@@ -51,7 +51,7 @@ public class UserProfileEntity {
     private List<String> nationality;
     private List<String> emails;
     private List<String> phones;
-    private NSFDemographicsEntity nsfDemographics;
+    // private NSFDemographicsEntity nsfDemographics;
     private CustomizedDashboardEntity customizedDashboardEntity;
 
     @Id
@@ -281,6 +281,7 @@ public class UserProfileEntity {
         this.timeZone = timeZone;
     }
 
+    /*
     @OneToOne(
             targetEntity = NSFDemographicsEntity.class,
             cascade = CascadeType.ALL,
@@ -293,6 +294,7 @@ public class UserProfileEntity {
     public void setNsfDemographics(NSFDemographicsEntity nsfDemographics) {
         this.nsfDemographics = nsfDemographics;
     }
+    */
 
     @OneToOne(
             targetEntity = CustomizedDashboardEntity.class,
@@ -345,7 +347,6 @@ public class UserProfileEntity {
                 + getTimeZone() + '\'' + ", nationality="
                 + getNationality() + ", emails="
                 + getEmails() + ", phones="
-                + getPhones() + ", nsfDemographics="
-                + getNsfDemographics() + '}';
+                + getPhones() + '}';
     }
 }
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/messaging/RegistryServiceDBEventHandler.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/messaging/RegistryServiceDBEventHandler.java
index 51e0e8ddc8..ed380ebc00 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/messaging/RegistryServiceDBEventHandler.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/registry/messaging/RegistryServiceDBEventHandler.java
@@ -39,12 +39,14 @@ import 
org.apache.airavata.registry.api.exception.RegistryServiceException;
 import org.apache.airavata.service.RegistryService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.stereotype.Component;
 
 /**
  * Created by goshenoy on 3/30/17.
  */
 @Component
+@ConditionalOnProperty(name = "services.registryService.enabled", havingValue 
= "true", matchIfMissing = true)
 public class RegistryServiceDBEventHandler implements MessageHandler {
 
     private static final Logger logger = 
LoggerFactory.getLogger(RegistryServiceDBEventHandler.class);
diff --git 
a/airavata-api/src/main/java/org/apache/airavata/registry/messaging/RegistryServiceDBEventMessagingFactory.java
 
b/airavata-api/src/main/java/org/apache/airavata/registry/messaging/RegistryServiceDBEventMessagingFactory.java
index fba5e0387f..beb3f3462f 100644
--- 
a/airavata-api/src/main/java/org/apache/airavata/registry/messaging/RegistryServiceDBEventMessagingFactory.java
+++ 
b/airavata-api/src/main/java/org/apache/airavata/registry/messaging/RegistryServiceDBEventMessagingFactory.java
@@ -36,12 +36,14 @@ import 
org.apache.airavata.registry.api.exception.RegistryServiceException;
 import org.apache.airavata.service.RegistryService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.stereotype.Component;
 
 /**
  * Created by goshenoy on 3/30/17.
  */
 @Component
+@ConditionalOnProperty(name = "services.registryService.enabled", havingValue 
= "true", matchIfMissing = true)
 public class RegistryServiceDBEventMessagingFactory {
 
     private static final Logger logger = 
LoggerFactory.getLogger(RegistryServiceDBEventMessagingFactory.class);
diff --git a/airavata-api/src/main/resources/META-INF/persistence.xml 
b/airavata-api/src/main/resources/META-INF/persistence.xml
index 9649e449f9..4f1cff8098 100644
--- a/airavata-api/src/main/resources/META-INF/persistence.xml
+++ b/airavata-api/src/main/resources/META-INF/persistence.xml
@@ -23,7 +23,7 @@
   <persistence-unit name="profile_service">
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
     <class>org.apache.airavata.profile.entities.UserProfileEntity</class>
-    <class>org.apache.airavata.profile.entities.NSFDemographicsEntity</class>
+    <!-- 
<class>org.apache.airavata.profile.entities.NSFDemographicsEntity</class> -->
     
<class>org.apache.airavata.profile.entities.CustomizedDashboardEntity</class>
     <class>org.apache.airavata.profile.entities.GatewayEntity</class>
     <exclude-unlisted-classes>true</exclude-unlisted-classes>
@@ -32,7 +32,7 @@
         value="ForeignKeyDeleteAction=cascade, 
JoinForeignKeyDeleteAction=cascade" />
       <property name="openjpa.jdbc.DBDictionary" value="mysql" />
       <property name="openjpa.RuntimeUnenhancedClasses" value="supported" />
-      <property name="openjpa.DynamicEnhancementAgent" value="true" />
+      <property name="openjpa.DynamicEnhancementAgent" value="false" />
     </properties>
   </persistence-unit>
   <persistence-unit name="appcatalog_data_new">
@@ -103,7 +103,7 @@
         value="ForeignKeyDeleteAction=cascade, 
JoinForeignKeyDeleteAction=cascade" />
       <property name="openjpa.jdbc.DBDictionary" value="mysql" />
       <property name="openjpa.RuntimeUnenhancedClasses" value="supported" />
-      <property name="openjpa.DynamicEnhancementAgent" value="true" />
+      <property name="openjpa.DynamicEnhancementAgent" value="false" />
     </properties>
   </persistence-unit>
   <persistence-unit name="replicacatalog_data_new">
@@ -119,7 +119,7 @@
         value="ForeignKeyDeleteAction=cascade, 
JoinForeignKeyDeleteAction=cascade" />
       <property name="openjpa.jdbc.DBDictionary" value="mysql" />
       <property name="openjpa.RuntimeUnenhancedClasses" value="supported" />
-      <property name="openjpa.DynamicEnhancementAgent" value="true" />
+      <property name="openjpa.DynamicEnhancementAgent" value="false" />
     </properties>
   </persistence-unit>
   <persistence-unit name="workflowcatalog_data_new">
@@ -149,7 +149,7 @@
         value="ForeignKeyDeleteAction=cascade, 
JoinForeignKeyDeleteAction=cascade" />
       <property name="openjpa.jdbc.DBDictionary" value="mysql" />
       <property name="openjpa.RuntimeUnenhancedClasses" value="supported" />
-      <property name="openjpa.DynamicEnhancementAgent" value="true" />
+      <property name="openjpa.DynamicEnhancementAgent" value="false" />
     </properties>
   </persistence-unit>
   <persistence-unit name="experiment_data_new">
@@ -189,7 +189,7 @@
         value="ForeignKeyDeleteAction=cascade, 
JoinForeignKeyDeleteAction=cascade" />
       <property name="openjpa.jdbc.DBDictionary" value="mysql" />
       <property name="openjpa.RuntimeUnenhancedClasses" value="supported" />
-      <property name="openjpa.DynamicEnhancementAgent" value="true" />
+      <property name="openjpa.DynamicEnhancementAgent" value="false" />
     </properties>
   </persistence-unit>
   <persistence-unit name="airavata-sharing-registry">
@@ -209,7 +209,7 @@
         value="ForeignKeyDeleteAction=cascade, 
JoinForeignKeyDeleteAction=cascade" />
       <property name="openjpa.jdbc.DBDictionary" value="mysql" />
       <property name="openjpa.RuntimeUnenhancedClasses" value="supported" />
-      <property name="openjpa.DynamicEnhancementAgent" value="true" />
+      <property name="openjpa.DynamicEnhancementAgent" value="false" />
     </properties>
   </persistence-unit>
   <persistence-unit name="credential_store">
@@ -222,7 +222,7 @@
         value="ForeignKeyDeleteAction=cascade, 
JoinForeignKeyDeleteAction=cascade" />
       <property name="openjpa.jdbc.DBDictionary" value="mysql" />
       <property name="openjpa.RuntimeUnenhancedClasses" value="supported" />
-      <property name="openjpa.DynamicEnhancementAgent" value="true" />
+      <property name="openjpa.DynamicEnhancementAgent" value="false" />
     </properties>
   </persistence-unit>
 </persistence>
\ No newline at end of file
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/WorkspaceRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/WorkspaceRepositoryTest.java
index 5035c66fec..062548c4c3 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/WorkspaceRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/WorkspaceRepositoryTest.java
@@ -24,7 +24,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestPropertySource;
 import org.springframework.transaction.annotation.Transactional;
@@ -39,6 +38,7 @@ import 
org.springframework.transaction.annotation.Transactional;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -72,13 +72,17 @@ public class WorkspaceRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     //    private final static Logger logger = 
LoggerFactory.getLogger(WorkspaceRepositoryTest.class);
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/ApplicationDeploymentRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/ApplicationDeploymentRepositoryTest.java
index 3d80865e24..036506503a 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/ApplicationDeploymentRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/ApplicationDeploymentRepositoryTest.java
@@ -58,6 +58,7 @@ import org.springframework.test.context.TestConstructor;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/ApplicationInterfaceRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/ApplicationInterfaceRepositoryTest.java
index d8b67eb101..9442baa3b6 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/ApplicationInterfaceRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/ApplicationInterfaceRepositoryTest.java
@@ -44,7 +44,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -62,6 +61,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -95,13 +95,17 @@ public class ApplicationInterfaceRepositoryTest extends 
TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final ApplicationInterfaceService applicationInterfaceService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/ComputeResourceRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/ComputeResourceRepositoryTest.java
index 62302cb411..f235810e50 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/ComputeResourceRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/ComputeResourceRepositoryTest.java
@@ -51,6 +51,7 @@ import org.springframework.context.annotation.Import;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/GatewayGroupsRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/GatewayGroupsRepositoryTest.java
index 2714ede7c4..98f9e05e45 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/GatewayGroupsRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/GatewayGroupsRepositoryTest.java
@@ -44,6 +44,7 @@ import org.springframework.test.context.TestConstructor;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/GatewayProfileRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/GatewayProfileRepositoryTest.java
index 69c267b17e..c67e445a32 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/GatewayProfileRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/GatewayProfileRepositoryTest.java
@@ -61,6 +61,7 @@ import org.springframework.test.context.TestConstructor;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/GroupResourceProfileRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/GroupResourceProfileRepositoryTest.java
index 008a41e5b8..15c3aadd80 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/GroupResourceProfileRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/GroupResourceProfileRepositoryTest.java
@@ -59,6 +59,7 @@ import org.springframework.test.context.TestConstructor;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/JobSubmissionInterfaceRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/JobSubmissionInterfaceRepositoryTest.java
index b37a0ec87d..043cf6c01b 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/JobSubmissionInterfaceRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/JobSubmissionInterfaceRepositoryTest.java
@@ -53,6 +53,7 @@ import org.springframework.test.context.TestConstructor;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/StorageResourceRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/StorageResourceRepositoryTest.java
index 43dee5ec3d..07a584428c 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/StorageResourceRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/StorageResourceRepositoryTest.java
@@ -47,7 +47,6 @@ import org.springframework.test.context.TestConstructor;
 import 
org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 
 @SpringBootTest(
@@ -55,12 +54,12 @@ import org.springframework.context.annotation.Import;
         properties = {
             "spring.main.allow-bean-definition-overriding=true",
             
"spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration",
-            "spring.aop.proxy-target-class=true"
-        ,
+            "spring.aop.proxy-target-class=true",
             "services.background.enabled=false",
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/UserResourceProfileRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/UserResourceProfileRepositoryTest.java
index 8c16a7b75d..b6a8cab5c7 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/UserResourceProfileRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/appcatalog/UserResourceProfileRepositoryTest.java
@@ -51,6 +51,7 @@ import org.springframework.context.annotation.Import;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentErrorRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentErrorRepositoryTest.java
index 6764436c6c..0489cbda0c 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentErrorRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentErrorRepositoryTest.java
@@ -39,7 +39,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -54,6 +53,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -87,13 +87,17 @@ public class ExperimentErrorRepositoryTest extends TestBase 
{
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentInputRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentInputRepositoryTest.java
index 9278351e57..03c469fbf0 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentInputRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentInputRepositoryTest.java
@@ -41,7 +41,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -56,6 +55,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -89,13 +89,17 @@ public class ExperimentInputRepositoryTest extends TestBase 
{
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentOutputRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentOutputRepositoryTest.java
index b7c7b3d294..ecc14c68f2 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentOutputRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentOutputRepositoryTest.java
@@ -41,7 +41,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -56,6 +55,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -89,13 +89,17 @@ public class ExperimentOutputRepositoryTest extends 
TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentRepositoryTest.java
index 64d39535ff..b82931b465 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentRepositoryTest.java
@@ -40,7 +40,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -55,6 +54,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -88,13 +88,17 @@ public class ExperimentRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentStatusRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentStatusRepositoryTest.java
index 994750b199..4b7dd0f300 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentStatusRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentStatusRepositoryTest.java
@@ -39,7 +39,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -54,6 +53,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -87,13 +87,17 @@ public class ExperimentStatusRepositoryTest extends 
TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentSummaryRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentSummaryRepositoryTest.java
index e9d7c5948e..001167e661 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentSummaryRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ExperimentSummaryRepositoryTest.java
@@ -46,7 +46,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -61,6 +60,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -94,13 +94,17 @@ public class ExperimentSummaryRepositoryTest extends 
TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/GatewayRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/GatewayRepositoryTest.java
index 2ba388447f..922f4596fd 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/GatewayRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/GatewayRepositoryTest.java
@@ -50,6 +50,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -83,16 +84,19 @@ public class GatewayRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning|registry\\.messaging)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning|registry\\.messaging)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
-
     private final GatewayService gatewayService;
     private final AiravataServerProperties properties;
 
@@ -114,7 +118,7 @@ public class GatewayRepositoryTest extends TestBase {
             
defaultGateway.setOauthClientSecret(properties.security.iam.oauthClientSecret);
             gatewayService.addGateway(defaultGateway);
         }
-        
+
         // Verify that default Gateway is already created
         List<Gateway> defaultGatewayList = gatewayService.getAllGateways();
         assertEquals(1, defaultGatewayList.size());
@@ -123,7 +127,7 @@ public class GatewayRepositoryTest extends TestBase {
 
         // Generate unique test gateway ID for this test run
         String testGatewayId = "testGateway-" + 
UUID.randomUUID().toString().substring(0, 8);
-        
+
         Gateway gateway = new Gateway();
         gateway.setGatewayId(testGatewayId);
         gateway.setDomain("SEAGRID");
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/JobRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/JobRepositoryTest.java
index 1236947e69..bf7ed058d1 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/JobRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/JobRepositoryTest.java
@@ -49,7 +49,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -64,6 +63,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -97,13 +97,17 @@ public class JobRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/JobStatusRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/JobStatusRepositoryTest.java
index 75060d6f9f..b208e6cf1c 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/JobStatusRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/JobStatusRepositoryTest.java
@@ -47,7 +47,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -62,6 +61,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -95,13 +95,17 @@ public class JobStatusRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/NotificationRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/NotificationRepositoryTest.java
index c667714b97..1631859731 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/NotificationRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/NotificationRepositoryTest.java
@@ -32,7 +32,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -47,6 +46,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -80,13 +80,17 @@ public class NotificationRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private String testGateway = "testGateway";
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessErrorRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessErrorRepositoryTest.java
index 3b86749a3f..13ba0cd0d9 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessErrorRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessErrorRepositoryTest.java
@@ -41,7 +41,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -56,6 +55,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -89,13 +89,17 @@ public class ProcessErrorRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessInputRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessInputRepositoryTest.java
index 36f152aae8..66d93cbb20 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessInputRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessInputRepositoryTest.java
@@ -43,7 +43,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -58,6 +57,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -91,13 +91,17 @@ public class ProcessInputRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessOutputRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessOutputRepositoryTest.java
index 955545da67..0eb71d6cce 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessOutputRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessOutputRepositoryTest.java
@@ -43,7 +43,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -58,6 +57,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -91,13 +91,17 @@ public class ProcessOutputRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessRepositoryTest.java
index 9f06f6e9b8..6fd2435e30 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessRepositoryTest.java
@@ -44,7 +44,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -59,6 +58,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -92,13 +92,17 @@ public class ProcessRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessStatusRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessStatusRepositoryTest.java
index acd5274060..ec1c2d19a2 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessStatusRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProcessStatusRepositoryTest.java
@@ -42,7 +42,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -57,6 +56,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -90,13 +90,17 @@ public class ProcessStatusRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProjectRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProjectRepositoryTest.java
index e6382eeb66..3402d598c9 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProjectRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/ProjectRepositoryTest.java
@@ -51,6 +51,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -84,13 +85,20 @@ public class ProjectRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning|registry\\.messaging)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                @org.springframework.context.annotation.ComponentScan.Filter(
+                        type = 
org.springframework.context.annotation.FilterType.REGEX,
+                        pattern = 
"org\\.apache\\.airavata\\.registry\\.messaging\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
@@ -104,7 +112,8 @@ public class ProjectRepositoryTest extends TestBase {
 
     @Test
     public void testProjectRepository() throws RegistryException {
-        String testGateway = "testGateway";
+        String testGateway =
+                "testGateway-" + 
java.util.UUID.randomUUID().toString().substring(0, 8);
         Gateway gateway = new Gateway();
         gateway.setGatewayId(testGateway);
         gateway.setDomain("SEAGRID");
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/QueueStatusRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/QueueStatusRepositoryTest.java
index 64a521a2d9..81b53f5554 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/QueueStatusRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/QueueStatusRepositoryTest.java
@@ -33,7 +33,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -48,6 +47,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -81,13 +81,17 @@ public class QueueStatusRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final QueueStatusService queueStatusService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/TaskErrorRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/TaskErrorRepositoryTest.java
index 2a1033da11..b99b8b952d 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/TaskErrorRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/TaskErrorRepositoryTest.java
@@ -44,7 +44,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -59,6 +58,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -92,13 +92,17 @@ public class TaskErrorRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/TaskRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/TaskRepositoryTest.java
index 6030726f46..75473a9c9c 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/TaskRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/TaskRepositoryTest.java
@@ -46,7 +46,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -61,6 +60,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -94,13 +94,17 @@ public class TaskRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/TaskStatusRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/TaskStatusRepositoryTest.java
index 865bc6196d..ea00fb83f6 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/TaskStatusRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/TaskStatusRepositoryTest.java
@@ -44,7 +44,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -59,6 +58,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -92,13 +92,17 @@ public class TaskStatusRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/UserRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/UserRepositoryTest.java
index a9b3bd1e0a..2579b46dbe 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/UserRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/expcatalog/UserRepositoryTest.java
@@ -39,7 +39,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -54,6 +53,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -87,13 +87,17 @@ public class UserRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final GatewayService gatewayService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/replicacatalog/DataProductRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/replicacatalog/DataProductRepositoryTest.java
index 0ab8d881ed..333a3fb5ad 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/replicacatalog/DataProductRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/replicacatalog/DataProductRepositoryTest.java
@@ -40,7 +40,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -55,6 +54,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -88,13 +88,17 @@ public class DataProductRepositoryTest extends TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final DataProductService dataProductService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/replicacatalog/DataReplicaLocationRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/replicacatalog/DataReplicaLocationRepositoryTest.java
index 2ebe9a1ad9..f9dd4dfed3 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/replicacatalog/DataReplicaLocationRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/replicacatalog/DataReplicaLocationRepositoryTest.java
@@ -40,7 +40,6 @@ import 
org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestConstructor;
 import org.springframework.test.context.TestPropertySource;
@@ -56,6 +55,7 @@ import org.springframework.test.context.TestPropertySource;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
@@ -89,13 +89,17 @@ public class DataReplicaLocationRepositoryTest extends 
TestBase {
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
+                        pattern =
+                                
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|credential|profile|security|accountprovisioning)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = "org\\.apache\\.airavata\\.service\\..*")
             })
     
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
-    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    @Import({
+        org.apache.airavata.config.AiravataPropertiesConfiguration.class,
+        org.apache.airavata.config.DozerMapperConfig.class
+    })
     static class TestConfiguration {}
 
     private final DataProductService dataProductService;
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/workflowcatalog/WorkflowRepositoryTest.java
 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/workflowcatalog/WorkflowRepositoryTest.java
index af89150222..1a73e6ef53 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/registry/repositories/workflowcatalog/WorkflowRepositoryTest.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/registry/repositories/workflowcatalog/WorkflowRepositoryTest.java
@@ -49,6 +49,7 @@ import org.springframework.test.context.TestConstructor;
             "services.thrift.enabled=false",
             "services.helix.enabled=false",
             "services.airavata.enabled=false",
+            "services.registryService.enabled=false",
             "services.userprofile.enabled=false",
             "services.groupmanager.enabled=false",
             "services.iam.enabled=false",
diff --git 
a/airavata-api/src/test/java/org/apache/airavata/service/integration/ServiceIntegrationTestBase.java
 
b/airavata-api/src/test/java/org/apache/airavata/service/integration/ServiceIntegrationTestBase.java
index b380f1cd82..60ff05619c 100644
--- 
a/airavata-api/src/test/java/org/apache/airavata/service/integration/ServiceIntegrationTestBase.java
+++ 
b/airavata-api/src/test/java/org/apache/airavata/service/integration/ServiceIntegrationTestBase.java
@@ -46,7 +46,16 @@ import 
org.springframework.transaction.annotation.Transactional;
             "spring.aop.proxy-target-class=true",
             "services.background.enabled=false",
             "services.thrift.enabled=false",
-            "services.helix.enabled=false"
+            "services.helix.enabled=false",
+            "services.airavata.enabled=false",
+            "services.userprofile.enabled=true",
+            "services.groupmanager.enabled=true",
+            "services.iam.enabled=true",
+            "services.orchestrator.enabled=false",
+            "services.registryService.enabled=true",
+            "services.credentialstore.enabled=true",
+            "services.sharingregistry.enabled=true",
+            "security.manager.enabled=false"
         })
 @TestPropertySource(locations = "classpath:airavata.properties")
 
@EnableConfigurationProperties(org.apache.airavata.config.AiravataServerProperties.class)
@@ -97,19 +106,32 @@ public abstract class ServiceIntegrationTestBase {
     @org.springframework.context.annotation.Configuration
     @ComponentScan(
             basePackages = {
+                "org.apache.airavata.registry.services",
+                "org.apache.airavata.registry.repositories",
+                "org.apache.airavata.registry.utils",
                 "org.apache.airavata.service",
-                "org.apache.airavata.registry",
                 "org.apache.airavata.profile",
                 "org.apache.airavata.sharing",
                 "org.apache.airavata.credential",
                 "org.apache.airavata.messaging",
-                "org.apache.airavata.config"
+                "org.apache.airavata.config",
+                "org.apache.airavata.common.utils"
+            },
+            useDefaultFilters = false,
+            includeFilters = {
+                @org.springframework.context.annotation.ComponentScan.Filter(
+                        type = 
org.springframework.context.annotation.FilterType.ANNOTATION,
+                        classes = {
+                            org.springframework.stereotype.Component.class,
+                            org.springframework.stereotype.Service.class,
+                            org.springframework.stereotype.Repository.class,
+                            
org.springframework.context.annotation.Configuration.class
+                        })
             },
             excludeFilters = {
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
-                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|config\\.(Background|Thrift)|sharing\\.migrator).*"
-                ),
+                        pattern = 
"org\\.apache\\.airavata\\.(monitor|helix|sharing\\.migrator|registry\\.messaging)\\..*"),
                 @org.springframework.context.annotation.ComponentScan.Filter(
                         type = 
org.springframework.context.annotation.FilterType.REGEX,
                         pattern = ".*\\$.*"  // Exclude inner classes 
(Thrift-generated)
@@ -119,6 +141,47 @@ public abstract class ServiceIntegrationTestBase {
                         pattern = ".*\\.cpi\\..*"  // Exclude Thrift CPI 
classes
                 )
             })
-    @Import(org.apache.airavata.config.AiravataPropertiesConfiguration.class)
-    static class TestConfiguration {}
+    @Import({org.apache.airavata.config.AiravataPropertiesConfiguration.class, 
org.apache.airavata.config.DozerMapperConfig.class})
+    static class TestConfiguration {
+        @org.springframework.context.annotation.Bean
+        public 
org.apache.airavata.common.utils.DefaultKeyStorePasswordCallback 
defaultKeyStorePasswordCallback(
+                org.apache.airavata.config.AiravataServerProperties 
properties) {
+            return new 
org.apache.airavata.common.utils.DefaultKeyStorePasswordCallback(properties);
+        }
+
+        @org.springframework.context.annotation.Bean
+        @org.springframework.context.annotation.Primary
+        public org.apache.airavata.security.AiravataSecurityManager 
airavataSecurityManager() {
+            return new org.apache.airavata.security.AiravataSecurityManager() {
+                @Override
+                public boolean 
isUserAuthorized(org.apache.airavata.model.security.AuthzToken authzToken, 
java.util.Map<String, String> metaData) throws 
org.apache.airavata.security.AiravataSecurityException {
+                    return true;
+                }
+
+                @Override
+                public org.apache.airavata.model.security.AuthzToken 
getUserManagementServiceAccountAuthzToken(String gatewayId) throws 
org.apache.airavata.security.AiravataSecurityException {
+                    org.apache.airavata.model.security.AuthzToken token = new 
org.apache.airavata.model.security.AuthzToken("test-service-token");
+                    java.util.Map<String, String> claims = new 
java.util.HashMap<>();
+                    claims.put("gatewayId", gatewayId);
+                    token.setClaimsMap(claims);
+                    return token;
+                }
+
+                @Override
+                public org.apache.airavata.security.UserInfo 
getUserInfoFromAuthzToken(org.apache.airavata.model.security.AuthzToken 
authzToken) throws org.apache.airavata.security.AiravataSecurityException {
+                    // Extract from token if available, otherwise use defaults
+                    String userId = "test-user";
+                    String gatewayId = "test-gateway";
+                    if (authzToken != null && authzToken.getClaimsMap() != 
null) {
+                        userId = 
authzToken.getClaimsMap().getOrDefault("userName", userId);
+                        gatewayId = 
authzToken.getClaimsMap().getOrDefault("gatewayId", gatewayId);
+                    }
+                    org.apache.airavata.security.UserInfo userInfo = new 
org.apache.airavata.security.UserInfo();
+                    userInfo.setUsername(userId);
+                    userInfo.setSub(gatewayId + "@" + userId);
+                    return userInfo;
+                }
+            };
+        }
+    }
 }

Reply via email to