You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2023/05/03 14:12:01 UTC

[airavata-data-catalog] branch custos-integration updated (381a452 -> 6399bed)

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

machristie pushed a change to branch custos-integration
in repository https://gitbox.apache.org/repos/asf/airavata-data-catalog.git


    from 381a452  Checking if user already exists
     new eacc78d  Add spring jpa auditing
     new d13e11b  Class name based configuration of sharing manager
     new bf71050  Refactored projects splitting out core and simple sharing impl and custos sharing impl
     new e7570f2  Make usePlainText a property
     new 25a3eae  Don't need to call onCompleted after onError
     new a65085d  Don't start a web server port, unneeded
     new e4adca5  Custos sdk dependency fixes
     new 9260d2d  Make tenantId and userId configurable
     new 6399bed  Utility class to generate test Custos user for local testing and development

The 9 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 README.md                                          |   2 +-
 .../api/client/DataCatalogAPIClient.java           |   8 +-
 data-catalog-api/server/core/pom.xml               |  39 ++++++
 .../datacatalog/api/model/DataProductEntity.java   |   0
 .../api/model/MetadataSchemaEntity.java            |   0
 .../api/model/MetadataSchemaFieldEntity.java       |   0
 .../datacatalog/api/model/TenantEntity.java        |   0
 .../airavata/datacatalog/api/model/UserEntity.java |   0
 .../api/repository/DataProductRepository.java      |   0
 .../repository/MetadataSchemaFieldRepository.java  |   0
 .../api/repository/MetadataSchemaRepository.java   |   0
 .../api/repository/TenantRepository.java           |   0
 .../datacatalog/api/repository/UserRepository.java |   0
 .../datacatalog/api/sharing/SharingManager.java    |   2 +-
 .../api/sharing}/exception/SharingException.java   |   2 +-
 data-catalog-api/server/custos-sharing/pom.xml     |  52 ++++++++
 .../api/sharing/CustosTestDataBootstrap.java       |  36 ++++++
 .../api/sharing/SharingManagerImpl.java            |  23 +++-
 .../resources/custos_data_product_sharing_view.sql |   0
 data-catalog-api/server/pom.xml                    | 143 +++++++--------------
 data-catalog-api/server/{ => service}/pom.xml      |  64 +++------
 .../api/DataCatalogApiServiceApplication.java      |  50 +++++++
 .../api/exception/EntityNotFoundException.java     |   0
 .../exception/MetadataSchemaSqlParseException.java |   0
 .../MetadataSchemaSqlValidateException.java        |   0
 .../datacatalog/api/mapper/DataProductMapper.java  |   0
 .../api/mapper/MetadataSchemaFieldMapper.java      |   0
 .../api/mapper/MetadataSchemaMapper.java           |   0
 .../datacatalog/api/mapper/UserInfoMapper.java     |   0
 .../api/query/MetadataSchemaQueryExecutor.java     |   0
 .../api/query/MetadataSchemaQueryResult.java       |   0
 .../api/query/MetadataSchemaQueryWriter.java       |   0
 .../impl/MetadataSchemaQueryExecutorImpl.java      |   0
 .../PostgresqlMetadataSchemaQueryWriterImpl.java   |   0
 .../api/service/DataCatalogAPIService.java         |  14 +-
 .../api/service/DataCatalogService.java            |   2 +-
 .../api/service/impl/DataCatalogServiceImpl.java   |   2 +-
 .../src/main/resources/application.properties      |  20 ++-
 .../{ => service}/src/main/resources/logback.xml   |   0
 .../api/DataCatalogApiServerApplicationTests.java  |   0
 .../{client => server/simple-sharing}/pom.xml      |  22 ++--
 .../model/sharing/simple/SimpleGroupEntity.java    |   0
 .../sharing/simple/SimpleGroupSharingEntity.java   |   0
 .../sharing/simple/SimplePublicSharingEntity.java  |   0
 .../model/sharing/simple/SimpleTenantEntity.java   |   0
 .../api/model/sharing/simple/SimpleUserEntity.java |   0
 .../sharing/simple/SimpleUserSharingEntity.java    |   0
 .../sharing/simple/SimpleGroupRepository.java      |   0
 .../simple/SimpleGroupSharingRepository.java       |   0
 .../simple/SimplePublicSharingRepository.java      |   0
 .../sharing/simple/SimpleTenantRepository.java     |   0
 .../sharing/simple/SimpleUserRepository.java       |   0
 .../simple/SimpleUserSharingRepository.java        |   0
 .../api/sharing/SimpleSharingManagerImpl.java      |   4 +-
 .../src/main/resources/schema.sql                  |   0
 .../api/sharing/SimpleSharingManagerImplTest.java  |  20 ++-
 .../src/test}/resources/application.properties     |   8 --
 .../api/DataCatalogApiServiceApplication.java      |  35 -----
 58 files changed, 315 insertions(+), 233 deletions(-)
 create mode 100644 data-catalog-api/server/core/pom.xml
 rename data-catalog-api/server/{ => core}/src/main/java/org/apache/airavata/datacatalog/api/model/DataProductEntity.java (100%)
 rename data-catalog-api/server/{ => core}/src/main/java/org/apache/airavata/datacatalog/api/model/MetadataSchemaEntity.java (100%)
 rename data-catalog-api/server/{ => core}/src/main/java/org/apache/airavata/datacatalog/api/model/MetadataSchemaFieldEntity.java (100%)
 rename data-catalog-api/server/{ => core}/src/main/java/org/apache/airavata/datacatalog/api/model/TenantEntity.java (100%)
 rename data-catalog-api/server/{ => core}/src/main/java/org/apache/airavata/datacatalog/api/model/UserEntity.java (100%)
 rename data-catalog-api/server/{ => core}/src/main/java/org/apache/airavata/datacatalog/api/repository/DataProductRepository.java (100%)
 rename data-catalog-api/server/{ => core}/src/main/java/org/apache/airavata/datacatalog/api/repository/MetadataSchemaFieldRepository.java (100%)
 rename data-catalog-api/server/{ => core}/src/main/java/org/apache/airavata/datacatalog/api/repository/MetadataSchemaRepository.java (100%)
 rename data-catalog-api/server/{ => core}/src/main/java/org/apache/airavata/datacatalog/api/repository/TenantRepository.java (100%)
 rename data-catalog-api/server/{ => core}/src/main/java/org/apache/airavata/datacatalog/api/repository/UserRepository.java (100%)
 rename data-catalog-api/server/{ => core}/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManager.java (98%)
 rename data-catalog-api/server/{src/main/java/org/apache/airavata/datacatalog/api => core/src/main/java/org/apache/airavata/datacatalog/api/sharing}/exception/SharingException.java (89%)
 create mode 100644 data-catalog-api/server/custos-sharing/pom.xml
 create mode 100644 data-catalog-api/server/custos-sharing/src/main/java/org/apache/airavata/datacatalog/api/sharing/CustosTestDataBootstrap.java
 rename data-catalog-api/server/{ => custos-sharing}/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java (92%)
 rename data-catalog-api/server/{ => custos-sharing}/src/main/resources/custos_data_product_sharing_view.sql (100%)
 copy data-catalog-api/server/{ => service}/pom.xml (52%)
 create mode 100644 data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
 rename data-catalog-api/server/{ => service}/src/main/java/org/apache/airavata/datacatalog/api/exception/EntityNotFoundException.java (100%)
 rename data-catalog-api/server/{ => service}/src/main/java/org/apache/airavata/datacatalog/api/exception/MetadataSchemaSqlParseException.java (100%)
 rename data-catalog-api/server/{ => service}/src/main/java/org/apache/airavata/datacatalog/api/exception/MetadataSchemaSqlValidateException.java (100%)
 rename data-catalog-api/server/{ => service}/src/main/java/org/apache/airavata/datacatalog/api/mapper/DataProductMapper.java (100%)
 rename data-catalog-api/server/{ => service}/src/main/java/org/apache/airavata/datacatalog/api/mapper/MetadataSchemaFieldMapper.java (100%)
 rename data-catalog-api/server/{ => service}/src/main/java/org/apache/airavata/datacatalog/api/mapper/MetadataSchemaMapper.java (100%)
 rename data-catalog-api/server/{ => service}/src/main/java/org/apache/airavata/datacatalog/api/mapper/UserInfoMapper.java (100%)
 rename data-catalog-api/server/{ => service}/src/main/java/org/apache/airavata/datacatalog/api/query/MetadataSchemaQueryExecutor.java (100%)
 rename data-catalog-api/server/{ => service}/src/main/java/org/apache/airavata/datacatalog/api/query/MetadataSchemaQueryResult.java (100%)
 rename data-catalog-api/server/{ => service}/src/main/java/org/apache/airavata/datacatalog/api/query/MetadataSchemaQueryWriter.java (100%)
 rename data-catalog-api/server/{ => service}/src/main/java/org/apache/airavata/datacatalog/api/query/impl/MetadataSchemaQueryExecutorImpl.java (100%)
 rename data-catalog-api/server/{ => service}/src/main/java/org/apache/airavata/datacatalog/api/query/impl/PostgresqlMetadataSchemaQueryWriterImpl.java (100%)
 rename data-catalog-api/server/{ => service}/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogAPIService.java (96%)
 rename data-catalog-api/server/{ => service}/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogService.java (96%)
 rename data-catalog-api/server/{ => service}/src/main/java/org/apache/airavata/datacatalog/api/service/impl/DataCatalogServiceImpl.java (99%)
 copy data-catalog-api/server/{ => service}/src/main/resources/application.properties (53%)
 rename data-catalog-api/server/{ => service}/src/main/resources/logback.xml (100%)
 rename data-catalog-api/server/{ => service}/src/test/java/org/apache/airavata/datacatalog/api/DataCatalogApiServerApplicationTests.java (100%)
 copy data-catalog-api/{client => server/simple-sharing}/pom.xml (53%)
 rename data-catalog-api/server/{ => simple-sharing}/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleGroupEntity.java (100%)
 rename data-catalog-api/server/{ => simple-sharing}/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleGroupSharingEntity.java (100%)
 rename data-catalog-api/server/{ => simple-sharing}/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimplePublicSharingEntity.java (100%)
 rename data-catalog-api/server/{ => simple-sharing}/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleTenantEntity.java (100%)
 rename data-catalog-api/server/{ => simple-sharing}/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleUserEntity.java (100%)
 rename data-catalog-api/server/{ => simple-sharing}/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleUserSharingEntity.java (100%)
 rename data-catalog-api/server/{ => simple-sharing}/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleGroupRepository.java (100%)
 rename data-catalog-api/server/{ => simple-sharing}/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleGroupSharingRepository.java (100%)
 rename data-catalog-api/server/{ => simple-sharing}/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimplePublicSharingRepository.java (100%)
 rename data-catalog-api/server/{ => simple-sharing}/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleTenantRepository.java (100%)
 rename data-catalog-api/server/{ => simple-sharing}/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleUserRepository.java (100%)
 rename data-catalog-api/server/{ => simple-sharing}/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleUserSharingRepository.java (100%)
 rename data-catalog-api/server/{ => simple-sharing}/src/main/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImpl.java (98%)
 rename data-catalog-api/server/{ => simple-sharing}/src/main/resources/schema.sql (100%)
 rename data-catalog-api/server/{ => simple-sharing}/src/test/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImplTest.java (96%)
 rename data-catalog-api/server/{src/main => simple-sharing/src/test}/resources/application.properties (71%)
 delete mode 100644 data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java


[airavata-data-catalog] 04/09: Make usePlainText a property

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch custos-integration
in repository https://gitbox.apache.org/repos/asf/airavata-data-catalog.git

commit e7570f290094f0d79e7cb6cda8d753a8f81ced5a
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed May 3 09:35:34 2023 -0400

    Make usePlainText a property
---
 .../apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java | 6 +++++-
 .../server/service/src/main/resources/application.properties        | 5 +++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/data-catalog-api/server/custos-sharing/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java b/data-catalog-api/server/custos-sharing/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
index d576560..9bd3f18 100644
--- a/data-catalog-api/server/custos-sharing/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
+++ b/data-catalog-api/server/custos-sharing/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
@@ -63,6 +63,8 @@ public class SharingManagerImpl implements SharingManager {
     String clientId;
     @Value("${identity.server.clientSec}")
     String clientSec;
+    @Value("${identity.server.usePlainText:false}")
+    boolean usePlainText;
 
     @PostConstruct
     public void initializeTenants() throws SharingException {
@@ -78,7 +80,9 @@ public class SharingManagerImpl implements SharingManager {
                 .setServerHost(hostname)
                 .setServerPort(port)
                 .setClientId(clientId)
-                .setClientSec(clientSec).build();
+                .setClientSec(clientSec)
+                .usePlainText(usePlainText)
+                .build();
 
     }
 
diff --git a/data-catalog-api/server/service/src/main/resources/application.properties b/data-catalog-api/server/service/src/main/resources/application.properties
index d56da73..9495cd5 100644
--- a/data-catalog-api/server/service/src/main/resources/application.properties
+++ b/data-catalog-api/server/service/src/main/resources/application.properties
@@ -17,7 +17,8 @@ sharing.manager.class.name=org.apache.airavata.datacatalog.api.sharing.SimpleSha
 ## Custos Sharing
 # sharing.manager.class.name=org.apache.airavata.datacatalog.api.sharing.SharingManagerImpl
 
-# identity.server.hostname=
-# identity.server.port=0
+# identity.server.hostname=localhost
+# identity.server.port=7000
 # identity.server.clientId=
 # identity.server.clientSec=
+# identity.server.usePlainText=true


[airavata-data-catalog] 03/09: Refactored projects splitting out core and simple sharing impl and custos sharing impl

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch custos-integration
in repository https://gitbox.apache.org/repos/asf/airavata-data-catalog.git

commit bf71050dc0de667a2a636015a6b9f6ad9f3e9364
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Tue May 2 10:27:18 2023 -0400

    Refactored projects splitting out core and simple sharing impl and custos sharing impl
---
 README.md                                          |   2 +-
 data-catalog-api/server/core/pom.xml               |  39 ++++++
 .../datacatalog/api/model/DataProductEntity.java   |   0
 .../api/model/MetadataSchemaEntity.java            |   0
 .../api/model/MetadataSchemaFieldEntity.java       |   0
 .../datacatalog/api/model/TenantEntity.java        |   0
 .../airavata/datacatalog/api/model/UserEntity.java |   0
 .../api/repository/DataProductRepository.java      |   0
 .../repository/MetadataSchemaFieldRepository.java  |   0
 .../api/repository/MetadataSchemaRepository.java   |   0
 .../api/repository/TenantRepository.java           |   0
 .../datacatalog/api/repository/UserRepository.java |   0
 .../datacatalog/api/sharing/SharingManager.java    |   2 +-
 .../api/sharing}/exception/SharingException.java   |   2 +-
 data-catalog-api/server/custos-sharing/pom.xml     |  51 ++++++++
 .../api/sharing/SharingManagerImpl.java            |   2 +-
 .../resources/custos_data_product_sharing_view.sql |   0
 data-catalog-api/server/pom.xml                    | 143 +++++++--------------
 data-catalog-api/server/{ => service}/pom.xml      |  64 +++------
 .../api/DataCatalogApiServiceApplication.java      |   0
 .../api/exception/EntityNotFoundException.java     |   0
 .../exception/MetadataSchemaSqlParseException.java |   0
 .../MetadataSchemaSqlValidateException.java        |   0
 .../datacatalog/api/mapper/DataProductMapper.java  |   0
 .../api/mapper/MetadataSchemaFieldMapper.java      |   0
 .../api/mapper/MetadataSchemaMapper.java           |   0
 .../datacatalog/api/mapper/UserInfoMapper.java     |   0
 .../api/query/MetadataSchemaQueryExecutor.java     |   0
 .../api/query/MetadataSchemaQueryResult.java       |   0
 .../api/query/MetadataSchemaQueryWriter.java       |   0
 .../impl/MetadataSchemaQueryExecutorImpl.java      |   0
 .../PostgresqlMetadataSchemaQueryWriterImpl.java   |   0
 .../api/service/DataCatalogAPIService.java         |   2 +-
 .../api/service/DataCatalogService.java            |   2 +-
 .../api/service/impl/DataCatalogServiceImpl.java   |   2 +-
 .../src/main/resources/application.properties      |   0
 .../{ => service}/src/main/resources/logback.xml   |   0
 .../api/DataCatalogApiServerApplicationTests.java  |   0
 data-catalog-api/server/simple-sharing/pom.xml     |  35 +++++
 .../model/sharing/simple/SimpleGroupEntity.java    |   0
 .../sharing/simple/SimpleGroupSharingEntity.java   |   0
 .../sharing/simple/SimplePublicSharingEntity.java  |   0
 .../model/sharing/simple/SimpleTenantEntity.java   |   0
 .../api/model/sharing/simple/SimpleUserEntity.java |   0
 .../sharing/simple/SimpleUserSharingEntity.java    |   0
 .../sharing/simple/SimpleGroupRepository.java      |   0
 .../simple/SimpleGroupSharingRepository.java       |   0
 .../simple/SimplePublicSharingRepository.java      |   0
 .../sharing/simple/SimpleTenantRepository.java     |   0
 .../sharing/simple/SimpleUserRepository.java       |   0
 .../simple/SimpleUserSharingRepository.java        |   0
 .../api/sharing/SimpleSharingManagerImpl.java      |   2 +-
 .../src/main/resources/schema.sql                  |   0
 .../api/sharing/SimpleSharingManagerImplTest.java  |  20 ++-
 .../src/test}/resources/application.properties     |  13 --
 55 files changed, 211 insertions(+), 170 deletions(-)

diff --git a/README.md b/README.md
index 0f57854..b376cc5 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ Run the API server
 
 ```
 mvn install
-cd data-catalog-api/server
+cd data-catalog-api/server/service
 mvn spring-boot:run
 ```
 
diff --git a/data-catalog-api/server/core/pom.xml b/data-catalog-api/server/core/pom.xml
new file mode 100644
index 0000000..d554be7
--- /dev/null
+++ b/data-catalog-api/server/core/pom.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.airavata</groupId>
+        <artifactId>data-catalog-api-server</artifactId>
+        <version>0.1-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>data-catalog-api-server-core</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>data-catalog-api-stubs</artifactId>
+            <version>0.1-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>io.hypersistence</groupId>
+            <artifactId>hypersistence-utils-hibernate-60</artifactId>
+            <version>3.1.1</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.module</groupId>
+            <artifactId>jackson-module-jakarta-xmlbind-annotations</artifactId>
+            <version>2.14.1</version>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/DataProductEntity.java b/data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/model/DataProductEntity.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/DataProductEntity.java
rename to data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/model/DataProductEntity.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/MetadataSchemaEntity.java b/data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/model/MetadataSchemaEntity.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/MetadataSchemaEntity.java
rename to data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/model/MetadataSchemaEntity.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/MetadataSchemaFieldEntity.java b/data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/model/MetadataSchemaFieldEntity.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/MetadataSchemaFieldEntity.java
rename to data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/model/MetadataSchemaFieldEntity.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/TenantEntity.java b/data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/model/TenantEntity.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/TenantEntity.java
rename to data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/model/TenantEntity.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/UserEntity.java b/data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/model/UserEntity.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/UserEntity.java
rename to data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/model/UserEntity.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/DataProductRepository.java b/data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/repository/DataProductRepository.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/DataProductRepository.java
rename to data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/repository/DataProductRepository.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/MetadataSchemaFieldRepository.java b/data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/repository/MetadataSchemaFieldRepository.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/MetadataSchemaFieldRepository.java
rename to data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/repository/MetadataSchemaFieldRepository.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/MetadataSchemaRepository.java b/data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/repository/MetadataSchemaRepository.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/MetadataSchemaRepository.java
rename to data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/repository/MetadataSchemaRepository.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/TenantRepository.java b/data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/repository/TenantRepository.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/TenantRepository.java
rename to data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/repository/TenantRepository.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/UserRepository.java b/data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/repository/UserRepository.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/UserRepository.java
rename to data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/repository/UserRepository.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManager.java b/data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManager.java
similarity index 98%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManager.java
rename to data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManager.java
index 6e0fbf3..a44c649 100644
--- a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManager.java
+++ b/data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManager.java
@@ -4,8 +4,8 @@ import org.apache.airavata.datacatalog.api.DataProduct;
 import org.apache.airavata.datacatalog.api.GroupInfo;
 import org.apache.airavata.datacatalog.api.Permission;
 import org.apache.airavata.datacatalog.api.UserInfo;
-import org.apache.airavata.datacatalog.api.exception.SharingException;
 import org.apache.airavata.datacatalog.api.model.UserEntity;
+import org.apache.airavata.datacatalog.api.sharing.exception.SharingException;
 
 public interface SharingManager {
 
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/exception/SharingException.java b/data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/sharing/exception/SharingException.java
similarity index 89%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/exception/SharingException.java
rename to data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/sharing/exception/SharingException.java
index d8b0368..7bff3bc 100644
--- a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/exception/SharingException.java
+++ b/data-catalog-api/server/core/src/main/java/org/apache/airavata/datacatalog/api/sharing/exception/SharingException.java
@@ -1,4 +1,4 @@
-package org.apache.airavata.datacatalog.api.exception;
+package org.apache.airavata.datacatalog.api.sharing.exception;
 
 public class SharingException extends Exception {
 
diff --git a/data-catalog-api/server/custos-sharing/pom.xml b/data-catalog-api/server/custos-sharing/pom.xml
new file mode 100644
index 0000000..7181e95
--- /dev/null
+++ b/data-catalog-api/server/custos-sharing/pom.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.airavata</groupId>
+        <artifactId>data-catalog-api-server</artifactId>
+        <version>0.1-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>data-catalog-api-server-custos-sharing</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>data-catalog-api-server-core</artifactId>
+            <version>0.1-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.custos</groupId>
+            <artifactId>sharing-core-impl</artifactId>
+            <version>1.1-SNAPSHOT</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.mysql</groupId>
+                    <artifactId>mysql-connector-j</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>jakarta.persistence</groupId>
+                    <artifactId>jakarta.persistence-api</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.custos</groupId>
+            <artifactId>custos-java-sdk</artifactId>
+            <version>1.1-SNAPSHOT</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>io.grpc</groupId>
+                    <artifactId>grpc-netty</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>io.grpc</groupId>
+                    <artifactId>grpc-core</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java b/data-catalog-api/server/custos-sharing/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
similarity index 99%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
rename to data-catalog-api/server/custos-sharing/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
index 3a90c3d..d576560 100644
--- a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
+++ b/data-catalog-api/server/custos-sharing/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
@@ -12,11 +12,11 @@ import org.apache.airavata.datacatalog.api.DataProduct;
 import org.apache.airavata.datacatalog.api.GroupInfo;
 import org.apache.airavata.datacatalog.api.Permission;
 import org.apache.airavata.datacatalog.api.UserInfo;
-import org.apache.airavata.datacatalog.api.exception.SharingException;
 import org.apache.airavata.datacatalog.api.model.TenantEntity;
 import org.apache.airavata.datacatalog.api.model.UserEntity;
 import org.apache.airavata.datacatalog.api.repository.TenantRepository;
 import org.apache.airavata.datacatalog.api.repository.UserRepository;
+import org.apache.airavata.datacatalog.api.sharing.exception.SharingException;
 import org.apache.custos.clients.CustosClientProvider;
 import org.apache.custos.group.management.client.GroupManagementClient;
 import org.apache.custos.iam.service.FindUsersResponse;
diff --git a/data-catalog-api/server/src/main/resources/custos_data_product_sharing_view.sql b/data-catalog-api/server/custos-sharing/src/main/resources/custos_data_product_sharing_view.sql
similarity index 100%
rename from data-catalog-api/server/src/main/resources/custos_data_product_sharing_view.sql
rename to data-catalog-api/server/custos-sharing/src/main/resources/custos_data_product_sharing_view.sql
diff --git a/data-catalog-api/server/pom.xml b/data-catalog-api/server/pom.xml
index 20ca602..58261a9 100644
--- a/data-catalog-api/server/pom.xml
+++ b/data-catalog-api/server/pom.xml
@@ -1,107 +1,52 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
+
 <project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.airavata</groupId>
-        <artifactId>data-catalog-api</artifactId>
-        <version>0.1-SNAPSHOT</version>
-    </parent>
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
-    <artifactId>data-catalog-api-server</artifactId>
+  <parent>
+    <groupId>org.apache.airavata</groupId>
+    <artifactId>data-catalog-api</artifactId>
+    <version>0.1-SNAPSHOT</version>
+  </parent>
 
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-starter-parent</artifactId>
-                <version>${spring.boot.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
+  <artifactId>data-catalog-api-server</artifactId>
+  <modelVersion>4.0.0</modelVersion>
 
+  <packaging>pom</packaging>
+
+  <dependencyManagement>
     <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-jpa</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.github.lognet</groupId>
-            <artifactId>grpc-spring-boot-starter</artifactId>
-            <version>${grpc.spring.boot}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springframework.boot</groupId>
-                    <artifactId>spring-boot-starter</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-devtools</artifactId>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>org.postgresql</groupId>
-            <artifactId>postgresql</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>data-catalog-api-stubs</artifactId>
-            <version>0.1-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.custos</groupId>
-            <artifactId>sharing-core-impl</artifactId>
-            <version>1.1-SNAPSHOT</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.mysql</groupId>
-                    <artifactId>mysql-connector-j</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>jakarta.persistence</groupId>
-                    <artifactId>jakarta.persistence-api</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>io.hypersistence</groupId>
-            <artifactId>hypersistence-utils-hibernate-60</artifactId>
-            <version>3.1.1</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.module</groupId>
-            <artifactId>jackson-module-jakarta-xmlbind-annotations</artifactId>
-            <version>2.14.1</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.calcite</groupId>
-            <artifactId>calcite-core</artifactId>
-            <version>1.32.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.custos</groupId>
-            <artifactId>custos-java-sdk</artifactId>
-            <version>1.1-SNAPSHOT</version>
-        </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>${spring.boot.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
     </dependencies>
+  </dependencyManagement>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>${spring.boot.version}</version>
-            </plugin>
-        </plugins>
-    </build>
-
+  <modules>
+    <module>core</module>
+    <module>service</module>
+    <module>simple-sharing</module>
+    <module>custos-sharing</module>
+  </modules>
 </project>
diff --git a/data-catalog-api/server/pom.xml b/data-catalog-api/server/service/pom.xml
similarity index 52%
copy from data-catalog-api/server/pom.xml
copy to data-catalog-api/server/service/pom.xml
index 20ca602..9263f7b 100644
--- a/data-catalog-api/server/pom.xml
+++ b/data-catalog-api/server/service/pom.xml
@@ -4,29 +4,13 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.airavata</groupId>
-        <artifactId>data-catalog-api</artifactId>
+        <artifactId>data-catalog-api-server</artifactId>
         <version>0.1-SNAPSHOT</version>
     </parent>
 
-    <artifactId>data-catalog-api-server</artifactId>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-starter-parent</artifactId>
-                <version>${spring.boot.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
+    <artifactId>data-catalog-api-service</artifactId>
 
     <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-jpa</artifactId>
-        </dependency>
         <dependency>
             <groupId>io.github.lognet</groupId>
             <artifactId>grpc-spring-boot-starter</artifactId>
@@ -48,49 +32,31 @@
             <artifactId>spring-boot-devtools</artifactId>
             <optional>true</optional>
         </dependency>
-        <dependency>
-            <groupId>org.postgresql</groupId>
-            <artifactId>postgresql</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.apache.airavata</groupId>
-            <artifactId>data-catalog-api-stubs</artifactId>
+            <artifactId>data-catalog-api-server-core</artifactId>
             <version>0.1-SNAPSHOT</version>
         </dependency>
         <dependency>
-            <groupId>org.apache.custos</groupId>
-            <artifactId>sharing-core-impl</artifactId>
-            <version>1.1-SNAPSHOT</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.mysql</groupId>
-                    <artifactId>mysql-connector-j</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>jakarta.persistence</groupId>
-                    <artifactId>jakarta.persistence-api</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>io.hypersistence</groupId>
-            <artifactId>hypersistence-utils-hibernate-60</artifactId>
-            <version>3.1.1</version>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>data-catalog-api-server-simple-sharing</artifactId>
+            <version>0.1-SNAPSHOT</version>
         </dependency>
         <dependency>
-            <groupId>com.fasterxml.jackson.module</groupId>
-            <artifactId>jackson-module-jakarta-xmlbind-annotations</artifactId>
-            <version>2.14.1</version>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>data-catalog-api-server-custos-sharing</artifactId>
+            <version>0.1-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.calcite</groupId>
             <artifactId>calcite-core</artifactId>
             <version>1.32.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.custos</groupId>
-            <artifactId>custos-java-sdk</artifactId>
-            <version>1.1-SNAPSHOT</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.google.protobuf</groupId>
+                    <artifactId>protobuf-java</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
     </dependencies>
 
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/exception/EntityNotFoundException.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/exception/EntityNotFoundException.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/exception/EntityNotFoundException.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/exception/EntityNotFoundException.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/exception/MetadataSchemaSqlParseException.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/exception/MetadataSchemaSqlParseException.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/exception/MetadataSchemaSqlParseException.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/exception/MetadataSchemaSqlParseException.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/exception/MetadataSchemaSqlValidateException.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/exception/MetadataSchemaSqlValidateException.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/exception/MetadataSchemaSqlValidateException.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/exception/MetadataSchemaSqlValidateException.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/mapper/DataProductMapper.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/mapper/DataProductMapper.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/mapper/DataProductMapper.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/mapper/DataProductMapper.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/mapper/MetadataSchemaFieldMapper.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/mapper/MetadataSchemaFieldMapper.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/mapper/MetadataSchemaFieldMapper.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/mapper/MetadataSchemaFieldMapper.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/mapper/MetadataSchemaMapper.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/mapper/MetadataSchemaMapper.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/mapper/MetadataSchemaMapper.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/mapper/MetadataSchemaMapper.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/mapper/UserInfoMapper.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/mapper/UserInfoMapper.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/mapper/UserInfoMapper.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/mapper/UserInfoMapper.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/query/MetadataSchemaQueryExecutor.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/query/MetadataSchemaQueryExecutor.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/query/MetadataSchemaQueryExecutor.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/query/MetadataSchemaQueryExecutor.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/query/MetadataSchemaQueryResult.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/query/MetadataSchemaQueryResult.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/query/MetadataSchemaQueryResult.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/query/MetadataSchemaQueryResult.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/query/MetadataSchemaQueryWriter.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/query/MetadataSchemaQueryWriter.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/query/MetadataSchemaQueryWriter.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/query/MetadataSchemaQueryWriter.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/query/impl/MetadataSchemaQueryExecutorImpl.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/query/impl/MetadataSchemaQueryExecutorImpl.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/query/impl/MetadataSchemaQueryExecutorImpl.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/query/impl/MetadataSchemaQueryExecutorImpl.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/query/impl/PostgresqlMetadataSchemaQueryWriterImpl.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/query/impl/PostgresqlMetadataSchemaQueryWriterImpl.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/query/impl/PostgresqlMetadataSchemaQueryWriterImpl.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/query/impl/PostgresqlMetadataSchemaQueryWriterImpl.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogAPIService.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogAPIService.java
similarity index 99%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogAPIService.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogAPIService.java
index e658fc4..77b5bda 100644
--- a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogAPIService.java
+++ b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogAPIService.java
@@ -41,9 +41,9 @@ import org.apache.airavata.datacatalog.api.UserInfo;
 import org.apache.airavata.datacatalog.api.exception.EntityNotFoundException;
 import org.apache.airavata.datacatalog.api.exception.MetadataSchemaSqlParseException;
 import org.apache.airavata.datacatalog.api.exception.MetadataSchemaSqlValidateException;
-import org.apache.airavata.datacatalog.api.exception.SharingException;
 import org.apache.airavata.datacatalog.api.query.MetadataSchemaQueryResult;
 import org.apache.airavata.datacatalog.api.sharing.SharingManager;
+import org.apache.airavata.datacatalog.api.sharing.exception.SharingException;
 import org.lognet.springboot.grpc.GRpcService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogService.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogService.java
similarity index 96%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogService.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogService.java
index 0e514ce..9e48ff5 100644
--- a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogService.java
+++ b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogService.java
@@ -8,8 +8,8 @@ import org.apache.airavata.datacatalog.api.MetadataSchemaField;
 import org.apache.airavata.datacatalog.api.UserInfo;
 import org.apache.airavata.datacatalog.api.exception.MetadataSchemaSqlParseException;
 import org.apache.airavata.datacatalog.api.exception.MetadataSchemaSqlValidateException;
-import org.apache.airavata.datacatalog.api.exception.SharingException;
 import org.apache.airavata.datacatalog.api.query.MetadataSchemaQueryResult;
+import org.apache.airavata.datacatalog.api.sharing.exception.SharingException;
 
 /**
  * Transactional service layer for CRUD operations on data catalog database.
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/impl/DataCatalogServiceImpl.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/service/impl/DataCatalogServiceImpl.java
similarity index 99%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/impl/DataCatalogServiceImpl.java
rename to data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/service/impl/DataCatalogServiceImpl.java
index fb23e02..89bcc15 100644
--- a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/impl/DataCatalogServiceImpl.java
+++ b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/service/impl/DataCatalogServiceImpl.java
@@ -13,7 +13,6 @@ import org.apache.airavata.datacatalog.api.UserInfo;
 import org.apache.airavata.datacatalog.api.exception.EntityNotFoundException;
 import org.apache.airavata.datacatalog.api.exception.MetadataSchemaSqlParseException;
 import org.apache.airavata.datacatalog.api.exception.MetadataSchemaSqlValidateException;
-import org.apache.airavata.datacatalog.api.exception.SharingException;
 import org.apache.airavata.datacatalog.api.mapper.DataProductMapper;
 import org.apache.airavata.datacatalog.api.mapper.MetadataSchemaFieldMapper;
 import org.apache.airavata.datacatalog.api.mapper.MetadataSchemaMapper;
@@ -28,6 +27,7 @@ import org.apache.airavata.datacatalog.api.repository.MetadataSchemaFieldReposit
 import org.apache.airavata.datacatalog.api.repository.MetadataSchemaRepository;
 import org.apache.airavata.datacatalog.api.service.DataCatalogService;
 import org.apache.airavata.datacatalog.api.sharing.SharingManager;
+import org.apache.airavata.datacatalog.api.sharing.exception.SharingException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
diff --git a/data-catalog-api/server/src/main/resources/application.properties b/data-catalog-api/server/service/src/main/resources/application.properties
similarity index 100%
copy from data-catalog-api/server/src/main/resources/application.properties
copy to data-catalog-api/server/service/src/main/resources/application.properties
diff --git a/data-catalog-api/server/src/main/resources/logback.xml b/data-catalog-api/server/service/src/main/resources/logback.xml
similarity index 100%
rename from data-catalog-api/server/src/main/resources/logback.xml
rename to data-catalog-api/server/service/src/main/resources/logback.xml
diff --git a/data-catalog-api/server/src/test/java/org/apache/airavata/datacatalog/api/DataCatalogApiServerApplicationTests.java b/data-catalog-api/server/service/src/test/java/org/apache/airavata/datacatalog/api/DataCatalogApiServerApplicationTests.java
similarity index 100%
rename from data-catalog-api/server/src/test/java/org/apache/airavata/datacatalog/api/DataCatalogApiServerApplicationTests.java
rename to data-catalog-api/server/service/src/test/java/org/apache/airavata/datacatalog/api/DataCatalogApiServerApplicationTests.java
diff --git a/data-catalog-api/server/simple-sharing/pom.xml b/data-catalog-api/server/simple-sharing/pom.xml
new file mode 100644
index 0000000..d2b85d8
--- /dev/null
+++ b/data-catalog-api/server/simple-sharing/pom.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.airavata</groupId>
+        <artifactId>data-catalog-api-server</artifactId>
+        <version>0.1-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>data-catalog-api-server-simple-sharing</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>data-catalog-api-stubs</artifactId>
+            <version>0.1-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>data-catalog-api-server-core</artifactId>
+            <version>0.1-SNAPSHOT</version>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleGroupEntity.java b/data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleGroupEntity.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleGroupEntity.java
rename to data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleGroupEntity.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleGroupSharingEntity.java b/data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleGroupSharingEntity.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleGroupSharingEntity.java
rename to data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleGroupSharingEntity.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimplePublicSharingEntity.java b/data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimplePublicSharingEntity.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimplePublicSharingEntity.java
rename to data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimplePublicSharingEntity.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleTenantEntity.java b/data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleTenantEntity.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleTenantEntity.java
rename to data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleTenantEntity.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleUserEntity.java b/data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleUserEntity.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleUserEntity.java
rename to data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleUserEntity.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleUserSharingEntity.java b/data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleUserSharingEntity.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleUserSharingEntity.java
rename to data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/model/sharing/simple/SimpleUserSharingEntity.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleGroupRepository.java b/data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleGroupRepository.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleGroupRepository.java
rename to data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleGroupRepository.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleGroupSharingRepository.java b/data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleGroupSharingRepository.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleGroupSharingRepository.java
rename to data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleGroupSharingRepository.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimplePublicSharingRepository.java b/data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimplePublicSharingRepository.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimplePublicSharingRepository.java
rename to data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimplePublicSharingRepository.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleTenantRepository.java b/data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleTenantRepository.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleTenantRepository.java
rename to data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleTenantRepository.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleUserRepository.java b/data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleUserRepository.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleUserRepository.java
rename to data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleUserRepository.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleUserSharingRepository.java b/data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleUserSharingRepository.java
similarity index 100%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleUserSharingRepository.java
rename to data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/repository/sharing/simple/SimpleUserSharingRepository.java
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImpl.java b/data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImpl.java
similarity index 99%
rename from data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImpl.java
rename to data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImpl.java
index 8b98573..293ae6e 100644
--- a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImpl.java
+++ b/data-catalog-api/server/simple-sharing/src/main/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImpl.java
@@ -7,7 +7,6 @@ import org.apache.airavata.datacatalog.api.DataProduct;
 import org.apache.airavata.datacatalog.api.GroupInfo;
 import org.apache.airavata.datacatalog.api.Permission;
 import org.apache.airavata.datacatalog.api.UserInfo;
-import org.apache.airavata.datacatalog.api.exception.SharingException;
 import org.apache.airavata.datacatalog.api.model.DataProductEntity;
 import org.apache.airavata.datacatalog.api.model.TenantEntity;
 import org.apache.airavata.datacatalog.api.model.UserEntity;
@@ -26,6 +25,7 @@ import org.apache.airavata.datacatalog.api.repository.sharing.simple.SimplePubli
 import org.apache.airavata.datacatalog.api.repository.sharing.simple.SimpleTenantRepository;
 import org.apache.airavata.datacatalog.api.repository.sharing.simple.SimpleUserRepository;
 import org.apache.airavata.datacatalog.api.repository.sharing.simple.SimpleUserSharingRepository;
+import org.apache.airavata.datacatalog.api.sharing.exception.SharingException;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import jakarta.persistence.EntityManager;
diff --git a/data-catalog-api/server/src/main/resources/schema.sql b/data-catalog-api/server/simple-sharing/src/main/resources/schema.sql
similarity index 100%
rename from data-catalog-api/server/src/main/resources/schema.sql
rename to data-catalog-api/server/simple-sharing/src/main/resources/schema.sql
diff --git a/data-catalog-api/server/src/test/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImplTest.java b/data-catalog-api/server/simple-sharing/src/test/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImplTest.java
similarity index 96%
rename from data-catalog-api/server/src/test/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImplTest.java
rename to data-catalog-api/server/simple-sharing/src/test/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImplTest.java
index fe8240b..956c504 100644
--- a/data-catalog-api/server/src/test/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImplTest.java
+++ b/data-catalog-api/server/simple-sharing/src/test/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImplTest.java
@@ -14,7 +14,6 @@ import org.apache.airavata.datacatalog.api.DataProduct;
 import org.apache.airavata.datacatalog.api.GroupInfo;
 import org.apache.airavata.datacatalog.api.Permission;
 import org.apache.airavata.datacatalog.api.UserInfo;
-import org.apache.airavata.datacatalog.api.exception.SharingException;
 import org.apache.airavata.datacatalog.api.model.DataProductEntity;
 import org.apache.airavata.datacatalog.api.model.TenantEntity;
 import org.apache.airavata.datacatalog.api.model.UserEntity;
@@ -27,15 +26,34 @@ import org.apache.airavata.datacatalog.api.repository.UserRepository;
 import org.apache.airavata.datacatalog.api.repository.sharing.simple.SimpleGroupRepository;
 import org.apache.airavata.datacatalog.api.repository.sharing.simple.SimpleTenantRepository;
 import org.apache.airavata.datacatalog.api.repository.sharing.simple.SimpleUserRepository;
+import org.apache.airavata.datacatalog.api.sharing.SimpleSharingManagerImplTest.MyConfiguration;
+import org.apache.airavata.datacatalog.api.sharing.exception.SharingException;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.domain.EntityScan;
 import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
 import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase.Replace;
 import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import org.springframework.test.context.ContextConfiguration;
 
 @DataJpaTest
 @AutoConfigureTestDatabase(replace = Replace.NONE)
+@ContextConfiguration(classes = MyConfiguration.class)
 public class SimpleSharingManagerImplTest {
+
+    @Configuration
+    @EnableJpaRepositories("org.apache.airavata.datacatalog.api.repository")
+    @EntityScan("org.apache.airavata.datacatalog.api.model")
+    public static class MyConfiguration {
+        @Bean
+        public SharingManager getSharingManager() {
+            return new SimpleSharingManagerImpl();
+        }
+    }
+
     @Autowired
     SimpleSharingManagerImpl simpleSharingManagerImpl;
 
diff --git a/data-catalog-api/server/src/main/resources/application.properties b/data-catalog-api/server/simple-sharing/src/test/resources/application.properties
similarity index 56%
rename from data-catalog-api/server/src/main/resources/application.properties
rename to data-catalog-api/server/simple-sharing/src/test/resources/application.properties
index d56da73..914f6da 100644
--- a/data-catalog-api/server/src/main/resources/application.properties
+++ b/data-catalog-api/server/simple-sharing/src/test/resources/application.properties
@@ -8,16 +8,3 @@ spring.jpa.show-sql=true
 # https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto.data-initialization.using-basic-sql-scripts
 spring.jpa.defer-datasource-initialization=true
 spring.sql.init.mode=always
-
-# Sharing configuration
-
-## Simple Sharing
-sharing.manager.class.name=org.apache.airavata.datacatalog.api.sharing.SimpleSharingManagerImpl
-
-## Custos Sharing
-# sharing.manager.class.name=org.apache.airavata.datacatalog.api.sharing.SharingManagerImpl
-
-# identity.server.hostname=
-# identity.server.port=0
-# identity.server.clientId=
-# identity.server.clientSec=


[airavata-data-catalog] 02/09: Class name based configuration of sharing manager

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch custos-integration
in repository https://gitbox.apache.org/repos/asf/airavata-data-catalog.git

commit d13e11b3088445867def9d031ee15709b4aca39a
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Mon May 1 10:37:44 2023 -0400

    Class name based configuration of sharing manager
---
 .../api/DataCatalogApiServiceApplication.java      | 26 ++++++++++++++++------
 .../api/sharing/SharingManagerImpl.java            | 15 +++++++++++--
 .../api/sharing/SimpleSharingManagerImpl.java      |  2 --
 .../src/main/resources/application.properties      | 19 ++++++++++------
 4 files changed, 44 insertions(+), 18 deletions(-)

diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
index 3722a66..e8aeb56 100644
--- a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
+++ b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
@@ -1,12 +1,13 @@
 package org.apache.airavata.datacatalog.api;
 
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+
 import org.apache.airavata.datacatalog.api.sharing.SharingManager;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Primary;
@@ -22,16 +23,27 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
         "org.apache.custos.sharing.core.persistance.model" })
 public class DataCatalogApiServiceApplication {
 
-    @Autowired
-    private ApplicationContext applicationContext;
-
     public static void main(String[] args) {
         SpringApplication.run(DataCatalogApiServiceApplication.class, args);
     }
 
     @Bean
     @Primary
-    public SharingManager getSharingManager(@Value("${sharing.manager.bean}") String sharingManagerBeanName) {
-        return applicationContext.getBean(sharingManagerBeanName, SharingManager.class);
+    public SharingManager getSharingManager(
+            @Value("${sharing.manager.class.name:org.apache.airavata.datacatalog.api.sharing.SimpleSharingManagerImpl}") String sharingManagerClassName) {
+        try {
+            Class<?> sharingManagerClass = (Class<?>) Class.forName(sharingManagerClassName);
+            Constructor<?> constructor = sharingManagerClass.getConstructor();
+            try {
+                return (SharingManager) constructor.newInstance();
+            } catch (InstantiationException | IllegalAccessException | IllegalArgumentException
+                    | InvocationTargetException e) {
+                throw new RuntimeException("Failed to instantiated sharing manager " + sharingManagerClass, e);
+            }
+        } catch (ClassNotFoundException e) {
+            throw new RuntimeException("Unable to load the sharing manager class " + sharingManagerClassName, e);
+        } catch (NoSuchMethodException | SecurityException e) {
+            throw new RuntimeException("Failed to find no-arg constructor for " + sharingManagerClassName, e);
+        }
     }
 }
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
index 0ec0f80..3a90c3d 100644
--- a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
+++ b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
@@ -18,6 +18,7 @@ import org.apache.airavata.datacatalog.api.model.UserEntity;
 import org.apache.airavata.datacatalog.api.repository.TenantRepository;
 import org.apache.airavata.datacatalog.api.repository.UserRepository;
 import org.apache.custos.clients.CustosClientProvider;
+import org.apache.custos.group.management.client.GroupManagementClient;
 import org.apache.custos.iam.service.FindUsersResponse;
 import org.apache.custos.iam.service.UserRepresentation;
 import org.apache.custos.sharing.core.Entity;
@@ -27,15 +28,14 @@ import org.apache.custos.sharing.core.exceptions.CustosSharingException;
 import org.apache.custos.sharing.core.impl.SharingImpl;
 import org.apache.custos.sharing.core.utils.Constants;
 import org.apache.custos.user.management.client.UserManagementClient;
+import org.apache.custos.user.profile.service.Group;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
 
 import jakarta.annotation.PostConstruct;
 
-@Component("custosSharingManager")
 public class SharingManagerImpl implements SharingManager {
 
     private static final Logger logger = LoggerFactory.getLogger(SharingManagerImpl.class);
@@ -305,4 +305,15 @@ public class SharingManagerImpl implements SharingManager {
             return newTenantEntity;
         }
     }
+
+    private void createPublicGroup(String tenantId) throws SharingException {
+
+        try (GroupManagementClient groupManagementClient = custosClientProvider.getGroupManagementClient()) {
+            // TODO: but how do I specify the tenantId to search in?
+            Group findGroupsResponse = groupManagementClient.findGroup(clientId, PUBLIC_ACCESS_GROUP, null);
+        } catch (IOException e) {
+            throw new SharingException("Error occurred while resolving public group " + PUBLIC_ACCESS_GROUP
+                    + " tenant " + tenantId, e);
+        }
+    }
 }
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImpl.java b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImpl.java
index 05e26f6..8b98573 100644
--- a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImpl.java
+++ b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SimpleSharingManagerImpl.java
@@ -27,13 +27,11 @@ import org.apache.airavata.datacatalog.api.repository.sharing.simple.SimpleTenan
 import org.apache.airavata.datacatalog.api.repository.sharing.simple.SimpleUserRepository;
 import org.apache.airavata.datacatalog.api.repository.sharing.simple.SimpleUserSharingRepository;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
 
 import jakarta.persistence.EntityManager;
 import jakarta.persistence.PersistenceContext;
 import jakarta.persistence.Query;
 
-@Component("simpleSharingManager")
 public class SimpleSharingManagerImpl implements SharingManager {
 
     @Autowired
diff --git a/data-catalog-api/server/src/main/resources/application.properties b/data-catalog-api/server/src/main/resources/application.properties
index b559331..d56da73 100644
--- a/data-catalog-api/server/src/main/resources/application.properties
+++ b/data-catalog-api/server/src/main/resources/application.properties
@@ -4,15 +4,20 @@ spring.datasource.password=example
 spring.jpa.hibernate.ddl-auto=update
 spring.jpa.show-sql=true
 
-identity.server.hostname=
-identity.server.port=
-identity.server.clientId=
-identity.server.clientSec=
-
 # Run schema.sql after schema creation performed by Hibernate
 # https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto.data-initialization.using-basic-sql-scripts
 spring.jpa.defer-datasource-initialization=true
 spring.sql.init.mode=always
 
-sharing.manager.bean=simpleSharingManager
-# sharing.manager.bean=custosSharingManager
+# Sharing configuration
+
+## Simple Sharing
+sharing.manager.class.name=org.apache.airavata.datacatalog.api.sharing.SimpleSharingManagerImpl
+
+## Custos Sharing
+# sharing.manager.class.name=org.apache.airavata.datacatalog.api.sharing.SharingManagerImpl
+
+# identity.server.hostname=
+# identity.server.port=0
+# identity.server.clientId=
+# identity.server.clientSec=


[airavata-data-catalog] 09/09: Utility class to generate test Custos user for local testing and development

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch custos-integration
in repository https://gitbox.apache.org/repos/asf/airavata-data-catalog.git

commit 6399bedf21e357901b1cf3096f7226ab001d39dc
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed May 3 10:00:14 2023 -0400

    Utility class to generate test Custos user for local testing and development
---
 .../api/sharing/CustosTestDataBootstrap.java       | 36 ++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/data-catalog-api/server/custos-sharing/src/main/java/org/apache/airavata/datacatalog/api/sharing/CustosTestDataBootstrap.java b/data-catalog-api/server/custos-sharing/src/main/java/org/apache/airavata/datacatalog/api/sharing/CustosTestDataBootstrap.java
new file mode 100644
index 0000000..02b26dc
--- /dev/null
+++ b/data-catalog-api/server/custos-sharing/src/main/java/org/apache/airavata/datacatalog/api/sharing/CustosTestDataBootstrap.java
@@ -0,0 +1,36 @@
+package org.apache.airavata.datacatalog.api.sharing;
+
+import java.io.IOException;
+
+import org.apache.custos.clients.CustosClientProvider;
+import org.apache.custos.iam.service.FindUsersResponse;
+import org.apache.custos.user.management.client.UserManagementClient;
+
+public class CustosTestDataBootstrap {
+    public static void main(String[] args) throws IOException {
+
+        // Super tenant
+        // String clientId = System.getenv("CUSTOS_SUPER_CLIENT_ID");
+        // String clientSec = System.getenv("CUSTOS_SUPER_CLIENT_SEC");
+        String childClientId = System.getenv("CUSTOS_CLIENT_ID");
+        String clientId = System.getenv("CUSTOS_CLIENT_ID");
+        String clientSec = System.getenv("CUSTOS_CLIENT_SEC");
+        CustosClientProvider custosClientProvider = new CustosClientProvider.Builder().setServerHost("localhost")
+                .setServerPort(7000)
+                .setClientId(clientId) // client Id generated from above step or any active tenant id
+                .setClientSec(clientSec)
+                .usePlainText(true) // Don't use this in production setup
+                .build();
+        UserManagementClient userManagementClient = custosClientProvider.getUserManagementClient();
+        String testUsername = "demouser";
+        // userManagementClient.registerUser(testUsername, "Demo", "User",
+        // "testpassword", "demouser@gmail.com", false);
+        // userManagementClient.enableUser(testUsername);
+        // FindUsersResponse findUsersResponse =
+        // userManagementClient.findUser(testUsername, null, null, null, 0, 1);
+        FindUsersResponse findUsersResponse = userManagementClient.findUser(childClientId, testUsername, null, null,
+                null, 0, 1);
+        System.out.println("findUsersResponse=" + findUsersResponse);
+    }
+
+}


[airavata-data-catalog] 08/09: Make tenantId and userId configurable

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch custos-integration
in repository https://gitbox.apache.org/repos/asf/airavata-data-catalog.git

commit 9260d2d62d379b7c15dae839640bb6b77e1b8514
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed May 3 09:53:22 2023 -0400

    Make tenantId and userId configurable
---
 .../airavata/datacatalog/api/client/DataCatalogAPIClient.java     | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/data-catalog-api/client/src/main/java/org/apache/airavata/datacatalog/api/client/DataCatalogAPIClient.java b/data-catalog-api/client/src/main/java/org/apache/airavata/datacatalog/api/client/DataCatalogAPIClient.java
index c24fb07..026cc82 100644
--- a/data-catalog-api/client/src/main/java/org/apache/airavata/datacatalog/api/client/DataCatalogAPIClient.java
+++ b/data-catalog-api/client/src/main/java/org/apache/airavata/datacatalog/api/client/DataCatalogAPIClient.java
@@ -44,7 +44,13 @@ import io.grpc.StatusRuntimeException;;
 public class DataCatalogAPIClient {
 
     private final DataCatalogAPIServiceBlockingStub blockingStub;
-    private final UserInfo userInfo = UserInfo.newBuilder().setUserId("demoUser").setTenantId("demoTenant").build();
+    // String tenantId = "custos-e6vgzgskcr0pewrejma3-10000002";
+    String tenantId = "demotenant";
+    String userId = "demouser";
+    private final UserInfo userInfo = UserInfo.newBuilder()
+            .setUserId(userId)
+            .setTenantId(tenantId)
+            .build();
 
     public DataCatalogAPIClient(Channel channel) {
         blockingStub = DataCatalogAPIServiceGrpc.newBlockingStub(channel);


[airavata-data-catalog] 01/09: Add spring jpa auditing

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch custos-integration
in repository https://gitbox.apache.org/repos/asf/airavata-data-catalog.git

commit eacc78dac33b8f3e51f0269a1fcff92cee7523be
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Mon May 1 10:00:27 2023 -0400

    Add spring jpa auditing
---
 .../airavata/datacatalog/api/DataCatalogApiServiceApplication.java      | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
index 86a0aa8..3722a66 100644
--- a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
+++ b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
@@ -10,12 +10,14 @@ import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Primary;
+import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 
 @ComponentScan(basePackages = { "org.apache.airavata.datacatalog.api", "org.apache.custos.sharing.core" })
 @SpringBootApplication
 @EnableJpaRepositories({ "org.apache.custos.sharing.core.persistance.repository",
         "org.apache.airavata.datacatalog.api.repository" })
+@EnableJpaAuditing
 @EntityScan(basePackages = { "org.apache.airavata.datacatalog.api.model",
         "org.apache.custos.sharing.core.persistance.model" })
 public class DataCatalogApiServiceApplication {


[airavata-data-catalog] 07/09: Custos sdk dependency fixes

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch custos-integration
in repository https://gitbox.apache.org/repos/asf/airavata-data-catalog.git

commit e4adca5b71984b4f9a2cf8cc9e17df8760e7cea1
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed May 3 09:49:38 2023 -0400

    Custos sdk dependency fixes
---
 data-catalog-api/server/custos-sharing/pom.xml | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/data-catalog-api/server/custos-sharing/pom.xml b/data-catalog-api/server/custos-sharing/pom.xml
index 7181e95..f26280f 100644
--- a/data-catalog-api/server/custos-sharing/pom.xml
+++ b/data-catalog-api/server/custos-sharing/pom.xml
@@ -36,16 +36,17 @@
             <artifactId>custos-java-sdk</artifactId>
             <version>1.1-SNAPSHOT</version>
             <exclusions>
-                <exclusion>
-                    <groupId>io.grpc</groupId>
-                    <artifactId>grpc-netty</artifactId>
-                </exclusion>
                 <exclusion>
                     <groupId>io.grpc</groupId>
                     <artifactId>grpc-core</artifactId>
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-core</artifactId>
+            <version>${grpc.version}</version>
+        </dependency>
     </dependencies>
 
 </project>


[airavata-data-catalog] 05/09: Don't need to call onCompleted after onError

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch custos-integration
in repository https://gitbox.apache.org/repos/asf/airavata-data-catalog.git

commit 25a3eae6dedd30977608ec7328a83592aae06cf2
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed May 3 09:39:14 2023 -0400

    Don't need to call onCompleted after onError
---
 .../datacatalog/api/service/DataCatalogAPIService.java       | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogAPIService.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogAPIService.java
index 77b5bda..ef532d5 100644
--- a/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogAPIService.java
+++ b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogAPIService.java
@@ -80,7 +80,6 @@ public class DataCatalogAPIService extends DataCatalogAPIServiceGrpc.DataCatalog
         } catch (SharingException e) {
             logger.error("Sharing error when trying to create data product", e);
             responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
-            responseObserver.onCompleted();
         }
 
     }
@@ -102,7 +101,6 @@ public class DataCatalogAPIService extends DataCatalogAPIServiceGrpc.DataCatalog
             responseObserver.onCompleted();
         } catch (EntityNotFoundException e) {
             responseObserver.onError(Status.NOT_FOUND.withDescription(e.getMessage()).asException());
-            responseObserver.onCompleted();
         }
     }
 
@@ -120,7 +118,6 @@ public class DataCatalogAPIService extends DataCatalogAPIServiceGrpc.DataCatalog
             responseObserver.onCompleted();
         } catch (EntityNotFoundException e) {
             responseObserver.onError(Status.NOT_FOUND.asException());
-            responseObserver.onCompleted();
         }
     }
 
@@ -139,7 +136,6 @@ public class DataCatalogAPIService extends DataCatalogAPIServiceGrpc.DataCatalog
             responseObserver.onCompleted();
         } catch (EntityNotFoundException e) {
             responseObserver.onError(Status.NOT_FOUND.asException());
-            responseObserver.onCompleted();
         }
     }
 
@@ -164,7 +160,6 @@ public class DataCatalogAPIService extends DataCatalogAPIServiceGrpc.DataCatalog
             responseObserver.onCompleted();
         } catch (EntityNotFoundException e) {
             responseObserver.onError(Status.NOT_FOUND.withDescription(e.getMessage()).asException());
-            responseObserver.onCompleted();
         }
     }
 
@@ -189,7 +184,6 @@ public class DataCatalogAPIService extends DataCatalogAPIServiceGrpc.DataCatalog
             responseObserver.onCompleted();
         } catch (EntityNotFoundException e) {
             responseObserver.onError(Status.NOT_FOUND.withDescription(e.getMessage()).asException());
-            responseObserver.onCompleted();
         }
     }
 
@@ -206,11 +200,9 @@ public class DataCatalogAPIService extends DataCatalogAPIServiceGrpc.DataCatalog
         } catch (MetadataSchemaSqlParseException e) {
             responseObserver
                     .onError(Status.INVALID_ARGUMENT.withDescription("Failed to parse SQL query.").asException());
-            responseObserver.onCompleted();
         } catch (MetadataSchemaSqlValidateException e) {
             responseObserver
                     .onError(Status.INVALID_ARGUMENT.withDescription("Failed to validate SQL query.").asException());
-            responseObserver.onCompleted();
         }
     }
 
@@ -224,7 +216,6 @@ public class DataCatalogAPIService extends DataCatalogAPIServiceGrpc.DataCatalog
             responseObserver.onCompleted();
         } catch (EntityNotFoundException e) {
             responseObserver.onError(Status.NOT_FOUND.asException());
-            responseObserver.onCompleted();
         }
     }
 
@@ -249,7 +240,6 @@ public class DataCatalogAPIService extends DataCatalogAPIServiceGrpc.DataCatalog
             responseObserver.onCompleted();
         } catch (EntityNotFoundException e) {
             responseObserver.onError(Status.NOT_FOUND.asException());
-            responseObserver.onCompleted();
         }
     }
 
@@ -318,14 +308,12 @@ public class DataCatalogAPIService extends DataCatalogAPIServiceGrpc.DataCatalog
                 responseObserver.onError(Status.PERMISSION_DENIED
                         .withDescription("user does not have " + permission + " permission")
                         .asException());
-                responseObserver.onCompleted();
                 return false;
             } else {
                 return true;
             }
         } catch (SharingException e) {
             responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
-            responseObserver.onCompleted();
         }
         return false;
     }


[airavata-data-catalog] 06/09: Don't start a web server port, unneeded

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch custos-integration
in repository https://gitbox.apache.org/repos/asf/airavata-data-catalog.git

commit a65085d5535191f8641837974812de165612323f
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed May 3 09:47:34 2023 -0400

    Don't start a web server port, unneeded
---
 .../airavata/datacatalog/api/DataCatalogApiServiceApplication.java   | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
index e8aeb56..d00a704 100644
--- a/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
+++ b/data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
@@ -5,9 +5,10 @@ import java.lang.reflect.InvocationTargetException;
 
 import org.apache.airavata.datacatalog.api.sharing.SharingManager;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.SpringApplication;
+import org.springframework.boot.WebApplicationType;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.boot.builder.SpringApplicationBuilder;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Primary;
@@ -24,7 +25,7 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 public class DataCatalogApiServiceApplication {
 
     public static void main(String[] args) {
-        SpringApplication.run(DataCatalogApiServiceApplication.class, args);
+        new SpringApplicationBuilder(DataCatalogApiServiceApplication.class).web(WebApplicationType.NONE).run(args);
     }
 
     @Bean