This is an automated email from the ASF dual-hosted git repository. isjarana pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/airavata-data-lake.git
commit 2c0ae9104c448d4b49ae23d28fde9b0efe1dcb9d Author: Isuru Ranawaka <[email protected]> AuthorDate: Tue Apr 6 15:39:24 2021 -0400 db service improvements --- airavata-data-lake.ipr | 1 + airavata-data-lake.iws | 121 +++- .../apache/airavata/drms/api/DRMSApiRunner.java | 2 - .../drms/api/handlers/ResourceServiceHandler.java | 12 +- .../handlers/StoragePreferenceServiceHandler.java | 9 +- .../drms/api/handlers/StorageServiceHandler.java | 15 +- metadata-service/data-builders/data-builders.iml | 770 +++------------------ .../airavata/datalake/metadata/clients/Test.java | 38 +- metadata-service/db-service/db-service.iml | 740 +++----------------- metadata-service/db-service/server/pom.xml | 10 +- .../airavata/datalake/metadata/AppConfig.java | 106 +-- .../neo4j/curd/operators/CustomNodeService.java | 8 + .../neo4j/curd/operators/GenericService.java | 7 +- .../neo4j/curd/operators/GroupServiceImpl.java | 3 +- .../neo4j/curd/operators/ResourceService.java | 6 + .../neo4j/curd/operators/ResourceServiceImpl.java | 69 +- .../metadata/handlers/ResourceServiceHandler.java | 36 +- .../metadata/interceptors/Authenticator.java | 103 ++- .../interceptors/InterceptorPipelineExecutor.java | 2 +- .../metadata/interceptors/ServiceInterceptor.java | 2 +- .../src/main/resources/application.properties | 4 + metadata-service/db-service/stub/pom.xml | 21 +- .../stub/src/main/proto/common/Common.proto | 8 +- metadata-service/pom.xml | 38 - 24 files changed, 589 insertions(+), 1542 deletions(-) diff --git a/airavata-data-lake.ipr b/airavata-data-lake.ipr index f4e8cf9..a04514a 100644 --- a/airavata-data-lake.ipr +++ b/airavata-data-lake.ipr @@ -16,6 +16,7 @@ </profile> </annotationProcessing> <bytecodeTargetLevel> + <module name="commons" target="11" /> <module name="drms-rest-proxy" target="11" /> </bytecodeTargetLevel> </component> diff --git a/airavata-data-lake.iws b/airavata-data-lake.iws index 750b531..fc21df4 100644 --- a/airavata-data-lake.iws +++ b/airavata-data-lake.iws @@ -5,29 +5,29 @@ </component> <component name="ChangeListManager"> <list default="true" id="1d1ef003-bfaa-49fa-837e-dc14d1daa977" name="Default Changelist" comment=""> - <change afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/utils/Utils.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/resources/tartget.tmp" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/metadata-service/db-rest-proxy/Dockerfile" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/metadata-service/db-rest-proxy/pom.xml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/metadata-service/db-rest-proxy/src/main/resources/README.MD" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/metadata-service/db-rest-proxy/src/main/resources/envoy.yaml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/metadata-service/db-rest-proxy/src/main/resources/metadata.pb" afterDir="false" /> <change beforePath="$PROJECT_DIR$/airavata-data-lake.ipr" beforeDir="false" afterPath="$PROJECT_DIR$/airavata-data-lake.ipr" afterDir="false" /> <change beforePath="$PROJECT_DIR$/airavata-data-lake.iws" beforeDir="false" afterPath="$PROJECT_DIR$/airavata-data-lake.iws" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/pom.xml" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Config.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Config.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/DRMSApiRunner.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/DRMSApiRunner.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/InterceptorPipelineExecutor.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/InterceptorPipelineExecutor.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/resources/application.properties" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/resources/application.properties" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-stubs/src/main/proto/Common.proto" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-stubs/src/main/proto/Common.proto" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/metadata-service/data-builders/data-builders.iml" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/data-builders/data-builders.iml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/metadata-service/db-service/db-service.iml" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/db-service.iml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/pom.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/AppConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/AppConfig.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GroupServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GroupServiceImpl.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceService.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceService.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/Authenticator.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/Authenticator.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/InterceptorPipelineExecutor.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/InterceptorPipelineExecutor.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/ServiceInterceptor.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/ServiceInterceptor.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/resources/application.properties" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/resources/application.properties" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/stub/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/stub/pom.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/stub/src/main/proto/common/Common.proto" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/stub/src/main/proto/common/Common.proto" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/pom.xml" afterDir="false" /> </list> <option name="SHOW_DIALOG" value="false" /> <option name="HIGHLIGHT_CONFLICTS" value="true" /> @@ -199,6 +199,7 @@ <option name="RECENT_TEMPLATES"> <list> <option value="Class" /> + <option value="Interface" /> </list> </option> </component> @@ -280,11 +281,13 @@ <property name="RunOnceActivity.ShowReadmeOnStart" value="true" /> <property name="WebServerToolWindowFactoryState" value="false" /> <property name="aspect.path.notification.shown" value="true" /> - <property name="last_opened_file_path" value="$PROJECT_DIR$/metadata-service" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$/commons/src/main/java/org/apache/airavata/datalake/commons" /> <property name="nodejs_package_manager_path" value="npm" /> </component> <component name="RecentsManager"> <key name="CopyFile.RECENT_KEYS"> + <recent name="$PROJECT_DIR$/commons/src/main/java/org/apache/airavata/datalake/commons" /> + <recent name="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors" /> <recent name="$PROJECT_DIR$/metadata-service" /> </key> <key name="MoveFile.RECENT_KEYS"> @@ -292,7 +295,7 @@ <recent name="$PROJECT_DIR$/data-resource-management-service/drms-rest-proxy/src/main/resources" /> </key> </component> - <component name="RunManager" selected="Application.Test"> + <component name="RunManager" selected="Spring Boot.Neo4JServiceInitializer"> <configuration selected="false" default="true" type="Applet" factoryName="Applet"> <module name="" /> <option name="MAIN_CLASS_NAME" /> @@ -337,13 +340,15 @@ <option name="Make" enabled="true" /> </method> </configuration> - <configuration default="true" type="ArquillianJUnit" factoryName="" nameIsGenerated="true"> + <configuration default="true" type="ArquillianTestNG" factoryName="" nameIsGenerated="true"> <option name="arquillianRunConfiguration"> <value> <option name="containerStateName" value="" /> </value> </option> - <option name="TEST_OBJECT" value="class" /> + <option name="TEST_OBJECT" value="CLASS" /> + <properties /> + <listeners /> <method v="2"> <option name="Make" enabled="true" /> </method> @@ -387,8 +392,8 @@ </configuration> <recent_temporary> <list> - <item itemvalue="Application.Test" /> <item itemvalue="Spring Boot.Neo4JServiceInitializer" /> + <item itemvalue="Application.Test" /> <item itemvalue="Spring Boot.DRMSApiRunner" /> <item itemvalue="Application.Client" /> </list> @@ -437,7 +442,8 @@ <workItem from="1616938907343" duration="738000" /> <workItem from="1616955618046" duration="1487000" /> <workItem from="1616977751983" duration="68000" /> - <workItem from="1617213356776" duration="25360000" /> + <workItem from="1617213356776" duration="28852000" /> + <workItem from="1617717367883" duration="12574000" /> </task> <servers /> </component> @@ -606,24 +612,89 @@ </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java</url> - <line>48</line> + <line>54</line> <option name="timeStamp" value="31" /> </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java</url> - <line>52</line> + <line>58</line> <option name="timeStamp" value="32" /> </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java</url> - <line>50</line> + <line>56</line> <option name="timeStamp" value="33" /> </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java</url> - <line>58</line> + <line>64</line> <option name="timeStamp" value="34" /> </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url> + <line>59</line> + <option name="timeStamp" value="36" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url> + <line>60</line> + <option name="timeStamp" value="37" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url> + <line>53</line> + <option name="timeStamp" value="38" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url> + <line>55</line> + <option name="timeStamp" value="39" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url> + <line>69</line> + <option name="timeStamp" value="40" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java</url> + <line>57</line> + <option name="timeStamp" value="45" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java</url> + <line>60</line> + <option name="timeStamp" value="46" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java</url> + <line>65</line> + <option name="timeStamp" value="48" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url> + <line>35</line> + <option name="timeStamp" value="49" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url> + <line>37</line> + <option name="timeStamp" value="50" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url> + <line>36</line> + <option name="timeStamp" value="51" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url> + <line>42</line> + <option name="timeStamp" value="52" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/UserServiceImpl.java</url> + <line>18</line> + <option name="timeStamp" value="57" /> + </line-breakpoint> </breakpoints> </breakpoint-manager> </component> diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/DRMSApiRunner.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/DRMSApiRunner.java index 57f69a5..21df7ec 100644 --- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/DRMSApiRunner.java +++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/DRMSApiRunner.java @@ -26,6 +26,4 @@ public class DRMSApiRunner { public static void main(String[] args) { SpringApplication.run(DRMSApiRunner.class, args); } - - } diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java index cb0d2e4..75ee2a9 100644 --- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java +++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java @@ -110,13 +110,13 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI @Override public void searchResource(ResourceSearchRequest request, StreamObserver<ResourceSearchResponse> responseObserver) { - User callUser = getUser(request.getAuthToken()); + AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser(); // TODO review (u)-[r4:MEMBER_OF]->(g2:Group)<-[r5:SHARED_WITH]-(sp), List<Record> records = this.neo4JConnector.searchNodes( "MATCH (u:User)-[r1:MEMBER_OF]->(g:Group)<-[r2:SHARED_WITH]-(s:Storage)-[r3:HAS_PREFERENCE]->(sp:StoragePreference)-[r6:HAS_RESOURCE]->(res:Resource), " + "(u)-[r7:MEMBER_OF]->(g3:Group)<-[r8:SHARED_WITH]-(res) " + - "where u.userId = '" + callUser.getUserId() + "' return distinct res, sp, s"); + "where u.userId = '" + callUser.getUsername() + "' return distinct res, sp, s"); try { List<GenericResource> genericResourceList = GenericResourceDeserializer.deserializeList(records); ResourceSearchResponse.Builder builder = ResourceSearchResponse.newBuilder(); @@ -132,9 +132,9 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI @Override public void addResourceMetadata(AddResourceMetadataRequest request, StreamObserver<Empty> responseObserver) { - User callUser = getUser(request.getAuthToken()); + AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser(); this.neo4JConnector.createMetadataNode(ResourceConstants.RESOURCE_LABEL, "resourceId", - request.getResourceId(), callUser.getUserId(), + request.getResourceId(), callUser.getUsername(), request.getMetadata().getKey(), request.getMetadata().getValue()); responseObserver.onNext(Empty.getDefaultInstance()); responseObserver.onCompleted(); @@ -142,9 +142,9 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI @Override public void fetchResourceMetadata(FetchResourceMetadataRequest request, StreamObserver<FetchResourceMetadataResponse> responseObserver) { - User callUser = getUser(request.getAuthToken()); + AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser(); List<Record> records = neo4JConnector.searchNodes("match (u:User)-[MEMBER_OF]->(g:Group)<-[SHARED_WITH]-(res:Resource)-[r:HAS_METADATA]->(m:Metadata) " + - "where u.userId ='" + callUser.getUserId() + "' and res.resourceId = '" + request.getResourceId() + "' return distinct m"); + "where u.userId ='" + callUser.getUsername() + "' and res.resourceId = '" + request.getResourceId() + "' return distinct m"); try { List<MetadataNode> metadataNodes = MetadataDeserializer.deserializeList(records); if (metadataNodes.size() == 1) { diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java index ab560c3..1a68e6a 100644 --- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java +++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java @@ -20,6 +20,7 @@ import com.google.protobuf.Empty; import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; import io.grpc.stub.StreamObserver; +import org.apache.airavata.datalake.drms.AuthenticatedUser; import org.apache.airavata.datalake.drms.DRMSServiceAuthToken; import org.apache.airavata.datalake.drms.groups.FetchCurrentUserRequest; import org.apache.airavata.datalake.drms.groups.FetchCurrentUserResponse; @@ -62,13 +63,13 @@ public class StoragePreferenceServiceHandler extends StoragePreferenceServiceGrp @Override public void fetchStoragePreference(StoragePreferenceFetchRequest request, StreamObserver<StoragePreferenceFetchResponse> responseObserver) { - User callUser = getUser(request.getAuthToken()); + AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser(); List<Record> records = this.neo4JConnector.searchNodes( "MATCH (u:User)-[r1:MEMBER_OF]->(g:Group)<-[r2:SHARED_WITH]-(s:Storage)-[r3:HAS_PREFERENCE]->(sp:StoragePreference), " + "(u)-[r4:MEMBER_OF]->(g2:Group)<-[r5:SHARED_WITH]-(sp) " + "where sp.storagePreferenceId = '" + request.getStoragePreferenceId() + "' and u.userId = '" - + callUser.getUserId() + "' return distinct sp, s"); + + callUser.getUsername() + "' return distinct sp, s"); if (!records.isEmpty()) { try { @@ -106,12 +107,12 @@ public class StoragePreferenceServiceHandler extends StoragePreferenceServiceGrp @Override public void searchStoragePreference(StoragePreferenceSearchRequest request, StreamObserver<StoragePreferenceSearchResponse> responseObserver) { - User callUser = getUser(request.getAuthToken()); + AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser(); List<Record> records = this.neo4JConnector.searchNodes( "MATCH (u:User)-[r1:MEMBER_OF]->(g:Group)<-[r2:SHARED_WITH]-(s:Storage)-[r3:HAS_PREFERENCE]->(sp:StoragePreference), " + "(u)-[r4:MEMBER_OF]->(g2:Group)<-[r5:SHARED_WITH]-(sp)" + - " where u.userId ='" + callUser.getUserId() + "' return distinct sp, s"); + " where u.userId ='" + callUser.getUsername() + "' return distinct sp, s"); try { List<AnyStoragePreference> storagePrefList = AnyStoragePreferenceDeserializer.deserializeList(records); StoragePreferenceSearchResponse.Builder builder = StoragePreferenceSearchResponse.newBuilder(); diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java index a00b7ca..b078944 100644 --- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java +++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java @@ -20,6 +20,7 @@ import com.google.protobuf.Empty; import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; import io.grpc.stub.StreamObserver; +import org.apache.airavata.datalake.drms.AuthenticatedUser; import org.apache.airavata.datalake.drms.DRMSServiceAuthToken; import org.apache.airavata.datalake.drms.groups.FetchCurrentUserRequest; import org.apache.airavata.datalake.drms.groups.FetchCurrentUserResponse; @@ -27,8 +28,8 @@ import org.apache.airavata.datalake.drms.groups.GroupServiceGrpc; import org.apache.airavata.datalake.drms.groups.User; import org.apache.airavata.datalake.drms.storage.*; import org.apache.airavata.drms.core.Neo4JConnector; -import org.apache.airavata.drms.core.deserializer.AnyStorageDeserializer; import org.apache.airavata.drms.core.constants.StorageConstants; +import org.apache.airavata.drms.core.deserializer.AnyStorageDeserializer; import org.apache.airavata.drms.core.serializer.AnyStorageSerializer; import org.lognet.springboot.grpc.GRpcService; import org.neo4j.driver.Record; @@ -65,11 +66,11 @@ public class StorageServiceHandler extends StorageServiceGrpc.StorageServiceImpl @Override public void fetchStorage(StorageFetchRequest request, StreamObserver<StorageFetchResponse> responseObserver) { - User callUser = getUser(request.getAuthToken()); + AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser(); List<Record> records = this.neo4JConnector.searchNodes( "MATCH (u:User)-[r1:MEMBER_OF]->(g:Group)<-[r2:SHARED_WITH]-(s:Storage) where " + - "s.storageId = '" + request.getStorageId() + "' and u.userId = '" + callUser.getUserId() + + "s.storageId = '" + request.getStorageId() + "' and u.userId = '" + callUser.getUsername() + "' return distinct s"); if (!records.isEmpty()) { @@ -109,9 +110,9 @@ public class StorageServiceHandler extends StorageServiceGrpc.StorageServiceImpl @Override public void addStorageMetadata(AddStorageMetadataRequest request, StreamObserver<Empty> responseObserver) { - User callUser = getUser(request.getAuthToken()); + AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser(); this.neo4JConnector.createMetadataNode(StorageConstants.STORAGE_LABEL, "storageId", - request.getStorageId(), callUser.getUserId(), + request.getStorageId(), callUser.getUsername(), request.getKey(), request.getValue()); responseObserver.onNext(Empty.getDefaultInstance()); responseObserver.onCompleted(); @@ -119,11 +120,11 @@ public class StorageServiceHandler extends StorageServiceGrpc.StorageServiceImpl @Override public void searchStorage(StorageSearchRequest request, StreamObserver<StorageSearchResponse> responseObserver) { - User callUser = getUser(request.getAuthToken()); + AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser(); List<Record> records = this.neo4JConnector.searchNodes( "MATCH (u:User)-[r1:MEMBER_OF]->(g:Group)<-[r2:SHARED_WITH]-(s:Storage) where u.userId ='" + - callUser.getUserId() + "' return distinct s"); + callUser.getUsername() + "' return distinct s"); try { List<AnyStorage> storageList = AnyStorageDeserializer.deserializeList(records); StorageSearchResponse.Builder builder = StorageSearchResponse.newBuilder(); diff --git a/metadata-service/data-builders/data-builders.iml b/metadata-service/data-builders/data-builders.iml index be087cb..e09a31d 100644 --- a/metadata-service/data-builders/data-builders.iml +++ b/metadata-service/data-builders/data-builders.iml @@ -1,663 +1,109 @@ <?xml version="1.0" encoding="UTF-8"?> - -<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> - <component name="FacetManager"> - <facet type="web" name="Web"> - <configuration> - <webroots/> - <sourceRoots> - <root url="file://$MODULE_DIR$/src/main/java"/> - <root url="file://$MODULE_DIR$/src/main/resources"/> - </sourceRoots> - </configuration> - </facet> - <facet type="Spring" name="Spring"> - <configuration/> - </facet> - </component> - <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11"> - <output url="file://$MODULE_DIR$/target/classes"/> - <output-test url="file://$MODULE_DIR$/target/test-classes"/> - <content url="file://$MODULE_DIR$"> - <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="false"/> - <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="true"/> - <excludeFolder url="file://$MODULE_DIR$/target/classes"/> - <excludeFolder url="file://$MODULE_DIR$/target/maven-archiver"/> - <excludeFolder url="file://$MODULE_DIR$/target/test-classes"/> - </content> - <orderEntry type="inheritedJdk"/> - <orderEntry type="sourceFolder" forTests="false"/> - <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-core:3.2.20" level="project"/> - <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-api:3.2.20" level="project"/> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.9" level="project"/> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project"/> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.9" level="project"/> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.9" level="project"/> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.9" level="project"/> - <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8" level="project"/> - <orderEntry type="library" name="Maven: io.github.classgraph:classgraph:4.8.86" level="project"/> - <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-bolt-driver:3.2.20" level="project"/> - <orderEntry type="library" name="Maven: org.neo4j.driver:neo4j-java-driver:4.0.2" level="project"/> - <orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project"/> - <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.10.0" level="project"/> - <orderEntry type="library" name="Maven: io.github.lognet:grpc-spring-boot-starter:3.5.1" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-netty:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-core:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-api:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-context:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.3" level="project"/> - <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project"/> - <orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.17" level="project"/> - <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project"/> - <orderEntry type="library" name="Maven: com.google.android:annotations:4.1.1.4" level="project"/> - <orderEntry type="library" name="Maven: io.perfmark:perfmark-api:0.19.0" level="project"/> - <orderEntry type="library" name="Maven: io.opencensus:opencensus-api:0.21.0" level="project"/> - <orderEntry type="library" name="Maven: io.opencensus:opencensus-contrib-grpc-metrics:0.21.0" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-services:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: com.google.guava:guava:28.1-android" level="project"/> - <orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project"/> - <orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project"/> - <orderEntry type="library" name="Maven: org.checkerframework:checker-compat-qual:2.5.5" level="project"/> - <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project"/> - <orderEntry type="library" name="Maven: com.google.api.grpc:proto-google-common-protos:1.12.0" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf-lite:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-stub:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java-util:3.10.0" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-tcnative-boringssl-static:2.0.25.Final" level="project"/> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.4.2" level="project"/> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.4.2" level="project"/> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.4.2" level="project"/> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.4.2" level="project"/> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.4.2" level="project"/> - <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project"/> - <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project"/> - <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project"/> - <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project"/> - <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project"/> - <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.27" level="project"/> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.4.2" level="project"/> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.4" level="project"/> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.4.2" level="project"/> - <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.41" level="project"/> - <orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project"/> - <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.41" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: net.sf.dozer:dozer:5.5.1" level="project"/> - <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.1" level="project"/> - <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project"/> - <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.5" level="project"/> - <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.5" level="project"/> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/github/lognet/grpc-spring-boot-starter/3.5.1/grpc-spring-boot-starter-3.5.1.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-netty/1.25.0/grpc-netty-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-core/1.25.0/grpc-core-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-api/1.25.0/grpc-api-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-context/1.25.0/grpc-context-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/errorprone/error_prone_annotations/2.3.3/error_prone_annotations-2.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/guava/guava/28.1-android/guava-28.1-android.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/opencensus/opencensus-api/0.21.0/opencensus-api-0.21.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/opencensus/opencensus-contrib-grpc-metrics/0.21.0/opencensus-contrib-grpc-metrics-0.21.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec-http2/4.1.42.Final/netty-codec-http2-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-common/4.1.42.Final/netty-common-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-buffer/4.1.42.Final/netty-buffer-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-transport/4.1.42.Final/netty-transport-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-resolver/4.1.42.Final/netty-resolver-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec/4.1.42.Final/netty-codec-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-handler/4.1.42.Final/netty-handler-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec-http/4.1.42.Final/netty-codec-http-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-handler-proxy/4.1.42.Final/netty-handler-proxy-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec-socks/4.1.42.Final/netty-codec-socks-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-services/1.25.0/grpc-services-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-protobuf/1.25.0/grpc-protobuf-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/protobuf/protobuf-java/3.10.0/protobuf-java-3.10.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-protobuf-lite/1.25.0/grpc-protobuf-lite-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-stub/1.25.0/grpc-stub-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/protobuf/protobuf-java-util/3.10.0/protobuf-java-util-3.10.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-tcnative-boringssl-static/2.0.25.Final/netty-tcnative-boringssl-static-2.0.25.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/neo4j/neo4j-ogm-bolt-driver/3.2.20/neo4j-ogm-bolt-driver-3.2.20.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/neo4j/neo4j-ogm-api/3.2.20/neo4j-ogm-api-3.2.20.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/core/jackson-databind/2.9.9/jackson-databind-2.9.9.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/core/jackson-core/2.9.9/jackson-core-2.9.9.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.9/jackson-datatype-jdk8-2.9.9.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.9/jackson-datatype-jsr310-2.9.9.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/neo4j/driver/neo4j-java-driver/4.0.2/neo4j-java-driver-4.0.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/neo4j/neo4j-ogm-core/3.2.20/neo4j-ogm-core-3.2.20.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/apache/commons/commons-lang3/3.8/commons-lang3-3.8.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/github/classgraph/classgraph/4.8.86/classgraph-4.8.86.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/net/sf/dozer/dozer/5.5.1/dozer-5.5.1.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/commons-beanutils/commons-beanutils/1.9.1/commons-beanutils-1.9.1.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-web/2.4.2/spring-boot-starter-web-2.4.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter/2.4.2/spring-boot-starter-2.4.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot/2.4.2/spring-boot-2.4.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-core/5.3.3/spring-core-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-jcl/5.3.3/spring-jcl-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-context/5.3.3/spring-context-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-aop/5.3.3/spring-aop-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-beans/5.3.3/spring-beans-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-expression/5.3.3/spring-expression-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-autoconfigure/2.4.2/spring-boot-autoconfigure-2.4.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-logging/2.4.2/spring-boot-starter-logging-2.4.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/yaml/snakeyaml/1.27/snakeyaml-1.27.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-json/2.4.2/spring-boot-starter-json-2.4.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-web/5.3.3/spring-web-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-tomcat/2.4.2/spring-boot-starter-tomcat-2.4.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/apache/tomcat/embed/tomcat-embed-core/9.0.41/tomcat-embed-core-9.0.41.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.41/tomcat-embed-websocket-9.0.41.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-webmvc/5.3.3/spring-webmvc-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - </component> -</module> +<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> + <component name="FacetManager"> + <facet type="web" name="Web"> + <configuration> + <webroots /> + <sourceRoots> + <root url="file://$MODULE_DIR$/src/main/java" /> + <root url="file://$MODULE_DIR$/src/main/resources" /> + </sourceRoots> + </configuration> + </facet> + <facet type="Spring" name="Spring"> + <configuration /> + </facet> + </component> + <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11"> + <output url="file://$MODULE_DIR$/target/classes" /> + <output-test url="file://$MODULE_DIR$/target/test-classes" /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="true" /> + <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="false" /> + <excludeFolder url="file://$MODULE_DIR$/target/classes" /> + <excludeFolder url="file://$MODULE_DIR$/target/maven-archiver" /> + <excludeFolder url="file://$MODULE_DIR$/target/test-classes" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-core:3.2.20" level="project" /> + <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-api:3.2.20" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.9" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.9" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.9" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.9" level="project" /> + <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8" level="project" /> + <orderEntry type="library" name="Maven: io.github.classgraph:classgraph:4.8.86" level="project" /> + <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-bolt-driver:3.2.20" level="project" /> + <orderEntry type="library" name="Maven: org.neo4j.driver:neo4j-java-driver:4.0.2" level="project" /> + <orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project" /> + <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.10.0" level="project" /> + <orderEntry type="library" name="Maven: io.github.lognet:grpc-spring-boot-starter:3.5.1" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-netty:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-core:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-api:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-context:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.3" level="project" /> + <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" /> + <orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.17" level="project" /> + <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" /> + <orderEntry type="library" name="Maven: com.google.android:annotations:4.1.1.4" level="project" /> + <orderEntry type="library" name="Maven: io.perfmark:perfmark-api:0.19.0" level="project" /> + <orderEntry type="library" name="Maven: io.opencensus:opencensus-api:0.21.0" level="project" /> + <orderEntry type="library" name="Maven: io.opencensus:opencensus-contrib-grpc-metrics:0.21.0" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-services:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: com.google.guava:guava:28.1-android" level="project" /> + <orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" /> + <orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" /> + <orderEntry type="library" name="Maven: org.checkerframework:checker-compat-qual:2.5.5" level="project" /> + <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" /> + <orderEntry type="library" name="Maven: com.google.api.grpc:proto-google-common-protos:1.12.0" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf-lite:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-stub:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java-util:3.10.0" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-tcnative-boringssl-static:2.0.25.Final" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.4.2" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.4.2" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.4.2" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.4.2" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.4.2" level="project" /> + <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" /> + <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" /> + <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.27" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.4.2" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.4" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.4.2" level="project" /> + <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.41" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.41" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: net.sf.dozer:dozer:5.5.1" level="project" /> + <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.1" level="project" /> + <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.5" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.5" level="project" /> + </component> +</module> \ No newline at end of file diff --git a/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java b/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java index cf50fdc..4ddd116 100644 --- a/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java +++ b/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java @@ -300,17 +300,17 @@ public class Test { // stub.createTenant(request); // - ResourceMetadataServiceGrpc.ResourceMetadataServiceBlockingStub resourceMetadataServiceBlockingStub = serviceClient.resource(); - - ResourcePermissionRequest permissionRequest = ResourcePermissionRequest - .newBuilder() - .setPermissionType("READ") - .setUsername("testuser") - .setResourceName("FileA") - .setTenantId("custos-cmcdclbywlxmc2ktzv0d-10000702") - .build(); - ResourcePermissionResponse response = resourceMetadataServiceBlockingStub.hasAccess(permissionRequest); - System.out.println(response.getAccessible()); +// ResourceMetadataServiceGrpc.ResourceMetadataServiceBlockingStub resourceMetadataServiceBlockingStub = serviceClient.resource(); +// +// ResourcePermissionRequest permissionRequest = ResourcePermissionRequest +// .newBuilder() +// .setPermissionType("READ") +// .setUsername("testuser") +// .setResourceName("FileA") +// .setTenantId("custos-cmcdclbywlxmc2ktzv0d-10000702") +// .build(); +// ResourcePermissionResponse response = resourceMetadataServiceBlockingStub.hasAccess(permissionRequest); +// System.out.println(response.getAccessible()); // TenantMetadataAPIRequest tenantMetadataAPIRequest = TenantMetadataAPIRequest @@ -319,14 +319,14 @@ public class Test { // .build(); // // stub.deleteTenant(tenantMetadataAPIRequest); - - tenant = tenant.toBuilder().setDomain("testing.com").build(); - - TenantMetadataAPIRequest tenantMetadataAPIRequest = TenantMetadataAPIRequest - .newBuilder() - .setTenant(tenant) - .build(); - stub.createTenant(tenantMetadataAPIRequest); +// +// tenant = tenant.toBuilder().setDomain("testing.com").build(); +// +// TenantMetadataAPIRequest tenantMetadataAPIRequest = TenantMetadataAPIRequest +// .newBuilder() +// .setTenant(tenant) +// .build(); +// stub.createTenant(tenantMetadataAPIRequest); } } diff --git a/metadata-service/db-service/db-service.iml b/metadata-service/db-service/db-service.iml index bb91897..6cdc5c0 100644 --- a/metadata-service/db-service/db-service.iml +++ b/metadata-service/db-service/db-service.iml @@ -1,648 +1,94 @@ <?xml version="1.0" encoding="UTF-8"?> - -<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> - <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11"> - <output url="file://$MODULE_DIR$/target/classes"/> - <output-test url="file://$MODULE_DIR$/target/test-classes"/> - <content url="file://$MODULE_DIR$"> - <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="false"/> - <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="true"/> - <excludeFolder url="file://$MODULE_DIR$/target/classes"/> - <excludeFolder url="file://$MODULE_DIR$/target/test-classes"/> - </content> - <orderEntry type="inheritedJdk"/> - <orderEntry type="sourceFolder" forTests="false"/> - <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-core:3.2.20" level="project"/> - <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-api:3.2.20" level="project"/> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.9" level="project"/> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project"/> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.9" level="project"/> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.9" level="project"/> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.9" level="project"/> - <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8" level="project"/> - <orderEntry type="library" name="Maven: io.github.classgraph:classgraph:4.8.86" level="project"/> - <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-bolt-driver:3.2.20" level="project"/> - <orderEntry type="library" name="Maven: org.neo4j.driver:neo4j-java-driver:4.0.2" level="project"/> - <orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project"/> - <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.10.0" level="project"/> - <orderEntry type="library" name="Maven: io.github.lognet:grpc-spring-boot-starter:3.5.1" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-netty:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-core:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-api:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-context:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.3" level="project"/> - <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project"/> - <orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.17" level="project"/> - <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project"/> - <orderEntry type="library" name="Maven: com.google.android:annotations:4.1.1.4" level="project"/> - <orderEntry type="library" name="Maven: io.perfmark:perfmark-api:0.19.0" level="project"/> - <orderEntry type="library" name="Maven: io.opencensus:opencensus-api:0.21.0" level="project"/> - <orderEntry type="library" name="Maven: io.opencensus:opencensus-contrib-grpc-metrics:0.21.0" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.42.Final" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-services:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: com.google.guava:guava:28.1-android" level="project"/> - <orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project"/> - <orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project"/> - <orderEntry type="library" name="Maven: org.checkerframework:checker-compat-qual:2.5.5" level="project"/> - <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project"/> - <orderEntry type="library" name="Maven: com.google.api.grpc:proto-google-common-protos:1.12.0" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf-lite:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: io.grpc:grpc-stub:1.25.0" level="project"/> - <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java-util:3.10.0" level="project"/> - <orderEntry type="library" name="Maven: io.netty:netty-tcnative-boringssl-static:2.0.25.Final" level="project"/> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.4.2" level="project"/> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.4.2" level="project"/> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.4.2" level="project"/> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.4.2" level="project"/> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.4.2" level="project"/> - <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project"/> - <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project"/> - <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project"/> - <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project"/> - <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project"/> - <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.27" level="project"/> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.4.2" level="project"/> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.4" level="project"/> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.4.2" level="project"/> - <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.41" level="project"/> - <orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project"/> - <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.41" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.3" level="project"/> - <orderEntry type="library" name="Maven: net.sf.dozer:dozer:5.5.1" level="project"/> - <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.1" level="project"/> - <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project"/> - <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.5" level="project"/> - <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.5" level="project"/> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/github/lognet/grpc-spring-boot-starter/3.5.1/grpc-spring-boot-starter-3.5.1.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-netty/1.25.0/grpc-netty-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-core/1.25.0/grpc-core-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-api/1.25.0/grpc-api-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-context/1.25.0/grpc-context-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/errorprone/error_prone_annotations/2.3.3/error_prone_annotations-2.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/guava/guava/28.1-android/guava-28.1-android.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/opencensus/opencensus-api/0.21.0/opencensus-api-0.21.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/opencensus/opencensus-contrib-grpc-metrics/0.21.0/opencensus-contrib-grpc-metrics-0.21.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec-http2/4.1.42.Final/netty-codec-http2-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-common/4.1.42.Final/netty-common-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-buffer/4.1.42.Final/netty-buffer-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-transport/4.1.42.Final/netty-transport-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-resolver/4.1.42.Final/netty-resolver-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec/4.1.42.Final/netty-codec-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-handler/4.1.42.Final/netty-handler-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec-http/4.1.42.Final/netty-codec-http-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-handler-proxy/4.1.42.Final/netty-handler-proxy-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec-socks/4.1.42.Final/netty-codec-socks-4.1.42.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-services/1.25.0/grpc-services-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-protobuf/1.25.0/grpc-protobuf-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/protobuf/protobuf-java/3.10.0/protobuf-java-3.10.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-protobuf-lite/1.25.0/grpc-protobuf-lite-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-stub/1.25.0/grpc-stub-1.25.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/google/protobuf/protobuf-java-util/3.10.0/protobuf-java-util-3.10.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-tcnative-boringssl-static/2.0.25.Final/netty-tcnative-boringssl-static-2.0.25.Final.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/neo4j/neo4j-ogm-bolt-driver/3.2.20/neo4j-ogm-bolt-driver-3.2.20.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/neo4j/neo4j-ogm-api/3.2.20/neo4j-ogm-api-3.2.20.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/core/jackson-databind/2.9.9/jackson-databind-2.9.9.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/core/jackson-core/2.9.9/jackson-core-2.9.9.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.9/jackson-datatype-jdk8-2.9.9.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.9/jackson-datatype-jsr310-2.9.9.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/neo4j/driver/neo4j-java-driver/4.0.2/neo4j-java-driver-4.0.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/neo4j/neo4j-ogm-core/3.2.20/neo4j-ogm-core-3.2.20.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/apache/commons/commons-lang3/3.8/commons-lang3-3.8.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/io/github/classgraph/classgraph/4.8.86/classgraph-4.8.86.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/net/sf/dozer/dozer/5.5.1/dozer-5.5.1.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/commons-beanutils/commons-beanutils/1.9.1/commons-beanutils-1.9.1.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-web/2.4.2/spring-boot-starter-web-2.4.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter/2.4.2/spring-boot-starter-2.4.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot/2.4.2/spring-boot-2.4.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-core/5.3.3/spring-core-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-jcl/5.3.3/spring-jcl-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-context/5.3.3/spring-context-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-aop/5.3.3/spring-aop-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-beans/5.3.3/spring-beans-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-expression/5.3.3/spring-expression-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-autoconfigure/2.4.2/spring-boot-autoconfigure-2.4.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-logging/2.4.2/spring-boot-starter-logging-2.4.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/yaml/snakeyaml/1.27/snakeyaml-1.27.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-json/2.4.2/spring-boot-starter-json-2.4.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-web/5.3.3/spring-web-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-tomcat/2.4.2/spring-boot-starter-tomcat-2.4.2.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/apache/tomcat/embed/tomcat-embed-core/9.0.41/tomcat-embed-core-9.0.41.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.41/tomcat-embed-websocket-9.0.41.jar!/"/> - </CLASSES> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-webmvc/5.3.3/spring-webmvc-5.3.3.jar!/"/> - </CLASSES> - </library> - </orderEntry> - </component> -</module> +<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> + <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11"> + <output url="file://$MODULE_DIR$/target/classes" /> + <output-test url="file://$MODULE_DIR$/target/test-classes" /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="false" /> + <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="true" /> + <excludeFolder url="file://$MODULE_DIR$/target/classes" /> + <excludeFolder url="file://$MODULE_DIR$/target/test-classes" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-core:3.2.20" level="project" /> + <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-api:3.2.20" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.9" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.9" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.9" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.9" level="project" /> + <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8" level="project" /> + <orderEntry type="library" name="Maven: io.github.classgraph:classgraph:4.8.86" level="project" /> + <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-bolt-driver:3.2.20" level="project" /> + <orderEntry type="library" name="Maven: org.neo4j.driver:neo4j-java-driver:4.0.2" level="project" /> + <orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project" /> + <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.10.0" level="project" /> + <orderEntry type="library" name="Maven: io.github.lognet:grpc-spring-boot-starter:3.5.1" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-netty:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-core:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-api:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-context:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.3" level="project" /> + <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" /> + <orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.17" level="project" /> + <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" /> + <orderEntry type="library" name="Maven: com.google.android:annotations:4.1.1.4" level="project" /> + <orderEntry type="library" name="Maven: io.perfmark:perfmark-api:0.19.0" level="project" /> + <orderEntry type="library" name="Maven: io.opencensus:opencensus-api:0.21.0" level="project" /> + <orderEntry type="library" name="Maven: io.opencensus:opencensus-contrib-grpc-metrics:0.21.0" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.42.Final" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-services:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: com.google.guava:guava:28.1-android" level="project" /> + <orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" /> + <orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" /> + <orderEntry type="library" name="Maven: org.checkerframework:checker-compat-qual:2.5.5" level="project" /> + <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" /> + <orderEntry type="library" name="Maven: com.google.api.grpc:proto-google-common-protos:1.12.0" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf-lite:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: io.grpc:grpc-stub:1.25.0" level="project" /> + <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java-util:3.10.0" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-tcnative-boringssl-static:2.0.25.Final" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.4.2" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.4.2" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.4.2" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.4.2" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.4.2" level="project" /> + <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" /> + <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" /> + <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.27" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.4.2" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.4" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.4.2" level="project" /> + <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.41" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.41" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.3" level="project" /> + <orderEntry type="library" name="Maven: net.sf.dozer:dozer:5.5.1" level="project" /> + <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.1" level="project" /> + <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.5" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.5" level="project" /> + </component> +</module> \ No newline at end of file diff --git a/metadata-service/db-service/server/pom.xml b/metadata-service/db-service/server/pom.xml index 29ccc22..85659e6 100644 --- a/metadata-service/db-service/server/pom.xml +++ b/metadata-service/db-service/server/pom.xml @@ -51,8 +51,8 @@ </dependency> <dependency> <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - <version>2.4.2</version> + <artifactId>spring-boot-starter</artifactId> + <version>${spring.boot.data.jpa}</version> </dependency> <dependency> <groupId>net.sf.dozer</groupId> @@ -60,9 +60,9 @@ <version>${dozer}</version> </dependency> <dependency> - <groupId>io.grpc</groupId> - <artifactId>grpc-services</artifactId> - <version>1.25.0</version> + <groupId>org.apache.custos</groupId> + <artifactId>custos-java-sdk</artifactId> + <version>${custos.clients.version}</version> </dependency> </dependencies> diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/AppConfig.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/AppConfig.java index 05ee7a4..352b722 100644 --- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/AppConfig.java +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/AppConfig.java @@ -10,6 +10,7 @@ import org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.User; import org.apache.airavata.datalake.metadata.interceptors.Authenticator; import org.apache.airavata.datalake.metadata.interceptors.InterceptorPipelineExecutor; import org.apache.airavata.datalake.metadata.interceptors.ServiceInterceptor; +import org.apache.custos.clients.CustosClientProvider; import org.dozer.DozerBeanMapper; import org.dozer.loader.api.BeanMappingBuilder; import org.lognet.springboot.grpc.GRpcGlobalInterceptor; @@ -18,6 +19,7 @@ import org.neo4j.ogm.cypher.Filter; 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.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -32,6 +34,18 @@ public class AppConfig { @Autowired private Connector connector; + @Value("${custos.id}") + private String custosId; + + @Value("${custos.secret}") + private String custosSec; + + @Value("${custos.host}") + private String custosHost; + + @Value("${custos.port}") + private int custosPort; + @Bean public DozerBeanMapper dozerBeanMapper() { @@ -76,95 +90,25 @@ public class AppConfig { @Bean - Tenant getTenant() { - LOGGER.info("Calling get tenant############"); - - Tenant tenant = new Tenant(); - tenant.setTenantId("123456789"); - tenant.setName("Tenant"); - - User user = new User(); - user.setFirstName("UserA"); - user.setUsername("user_a"); - - User user1 = new User(); - user1.setFirstName("UserB"); - user1.setUsername("user_b"); - - User user2 = new User(); - user2.setFirstName("UserC"); - user2.setUsername("user_c"); - - Group group = new Group(); - group.setName("g1"); - - Group group2 = new Group(); - group2.setName("g2"); - - Group group3 = new Group(); - group3.setName("g3"); - - group.addChildGroup(group2, 0, 0, null); - group2.addChildGroup(group3, 0, 0, null); - - Resource resource = new Resource(); - resource.setName("R1"); - - Resource resource1 = new Resource(); - resource1.setName("R2"); - - Resource resource2 = new Resource(); - resource2.setName("R3"); - - Resource resource3 = new Resource(); - resource3.setName("R4"); - - group.addChildUser(user, "ADMIN", 0, 0, null); - resource.addChildResource(resource1, 0, 0, null); - resource.shareWithAUser(user, "READ", 0, 0, null); - - group2.addChildUser(user1, "ADMIN", 0, 0, null); - group3.addChildUser(user2, "ADMIN", 0, 0, null); - - resource1.shareWithAGroup(group2, "WRITE", 0, 0, null); - resource2.shareWithAGroup(group3, "WRITE", 0, 0, null); - - tenant.add(user, 0, 0, null); - tenant.add(group, 0, 0, null); - tenant.add(resource, 0, 0, null); - - TenantServiceImpl tenantService = new TenantServiceImpl(connector); -// tenantService.createOrUpdate(tenant); - - Filter filter = new Filter("name", ComparisonOperator.EQUALS, "R3"); - -// ResourceServiceImpl resourceService = new ResourceServiceImpl(connector); -// SearchOperator searchOperator = new SearchOperator(); -// searchOperator.setKey("name"); -// searchOperator.setValue("R2"); -// searchOperator.setComparisonOperator(ComparisonOperator.EQUALS); -// List searchList = new ArrayList<>(); -// searchList.add(searchOperator); -// List<Resource> collections = (List<Resource>) resourceService.search(searchList); -// LOGGER.info("Size", collections.size()); -// for (Resource collection : collections) { -// LOGGER.info("#############" + collection.getName() + "Created At" + collection.getCreatedAt()); -// } - - - return tenant; - } - - @Bean public Stack<ServiceInterceptor> getInterceptorSet(Authenticator authInterceptor) { Stack<ServiceInterceptor> interceptors = new Stack<>(); interceptors.add(authInterceptor); return interceptors; } + @Bean @GRpcGlobalInterceptor - ServerInterceptor validationInterceptor(Stack<ServiceInterceptor> integrationServiceInterceptors) { + public ServerInterceptor validationInterceptor(Stack<ServiceInterceptor> integrationServiceInterceptors) { return new InterceptorPipelineExecutor(integrationServiceInterceptors); } + + + @Bean + public CustosClientProvider custosClientsFactory() { + return new CustosClientProvider.Builder().setServerHost(custosHost) + .setServerPort(custosPort) + .setClientId(custosId) + .setClientSec(custosSec).build(); + } } diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/CustomNodeService.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/CustomNodeService.java new file mode 100644 index 0000000..5b1b4b1 --- /dev/null +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/CustomNodeService.java @@ -0,0 +1,8 @@ +package org.apache.airavata.datalake.metadata.backend.neo4j.curd.operators; + +import java.util.Map; + +public interface CustomNodeService { + + Iterable<Map<String,Object>> execute(String query, Map<String, ?> parameterMap); +} diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java index 3d44dbd..389277e 100644 --- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java @@ -57,12 +57,14 @@ public abstract class GenericService<T> implements Service<T>, Closeable { LOGGER.info("Setting filter###"); filter.set(new Filter(operator.getKey(), operator.getComparisonOperator(), operator.getValue())); } else { - filter.get().and(new Filter(operator.getKey(), operator.getComparisonOperator(), operator.getValue())); + Filter oldFilter = filter.get(); + oldFilter.and(new Filter(operator.getKey(), operator.getComparisonOperator(), operator.getValue())); + filter.set(oldFilter); } }); LOGGER.info("Loading ###" + getEntityType()); - return session.loadAll(getEntityType(), filter.get(), DEPTH_ENTITY); + return session.loadAll(getEntityType(), filter.get(), 1); } @Override @@ -80,6 +82,7 @@ public abstract class GenericService<T> implements Service<T>, Closeable { @Override public Iterable<Map<String, Object>> execute(String query, Map<String, ?> parameterMap) { return session.query(query, parameterMap); + } @Override diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GroupServiceImpl.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GroupServiceImpl.java index fcdaf9e..44b2dd4 100644 --- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GroupServiceImpl.java +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GroupServiceImpl.java @@ -1,7 +1,6 @@ package org.apache.airavata.datalake.metadata.backend.neo4j.curd.operators; import org.apache.airavata.datalake.metadata.backend.Connector; -import org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Entity; import org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Group; import org.neo4j.ogm.cypher.ComparisonOperator; @@ -21,7 +20,7 @@ public class GroupServiceImpl extends GenericService<Group> implements GroupServ } @Override - public List<Group> find( Group group) { + public List<Group> find(Group group) { List<SearchOperator> searchOperatorList = new ArrayList<>(); if (group.getTenantId() != null) { SearchOperator searchOperator = new SearchOperator(); diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceService.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceService.java index 36b57eb..4d534ff 100644 --- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceService.java +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceService.java @@ -1,8 +1,14 @@ package org.apache.airavata.datalake.metadata.backend.neo4j.curd.operators; +import org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource; + +import java.util.List; + public interface ResourceService { public boolean hasAccess(String username, String resourceName, String permissionType, String tenantId); + public List<Resource> findResources(String username, String resourceName, String permissionType, String tenantId); + } diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java index fe7e2d9..05c8f52 100644 --- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java @@ -1,11 +1,12 @@ package org.apache.airavata.datalake.metadata.backend.neo4j.curd.operators; import org.apache.airavata.datalake.metadata.backend.Connector; -import org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Entity; import org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource; -import org.neo4j.ogm.cypher.ComparisonOperator; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; public class ResourceServiceImpl extends GenericService<Resource> implements ResourceService { @@ -43,24 +44,50 @@ public class ResourceServiceImpl extends GenericService<Resource> implements Res } @Override - public List<Resource> find( Resource resource) { - List<SearchOperator> searchOperatorList = new ArrayList<>(); - if (resource.getTenantId() != null) { - SearchOperator searchOperator = new SearchOperator(); - searchOperator.setKey("tenant_id"); - searchOperator.setValue(resource.getTenantId()); - searchOperator.setComparisonOperator(ComparisonOperator.EQUALS); - searchOperatorList.add(searchOperator); - } + public List<Resource> findResources(String username, String resourceName, String permissionType, String tenantId) { + String query = + "match (u:User{name:$username})-[:MEMBER_OF|HAS_CHILD_GROUP*]->(g:Group{tenant_id:$tenantId})" + + "-[r:HAS_ACCESS]->(m:Resource{tenant_id:$tenantId})-[l:HAS_CHILD_RESOURCE*]-> " + + "(p:Resource{tenant_id:$tenantId}) " + + "where r.permission_type=$permissionType and m.name=$resourceName or p.name=$resourceName return m,p"; + + Map<String, String> parameterMap = new HashMap<>(); + parameterMap.put("username", username); + parameterMap.put("permissionType", permissionType); + parameterMap.put("resourceName", resourceName); + parameterMap.put("tenantId", tenantId); + Iterable<Map<String, Object>> mapIterable = super.execute(query, parameterMap); + List<Resource> resourceList = new ArrayList<>(); + mapIterable.forEach(map -> { + if (!map.isEmpty()) { + map.forEach((key, val) -> { + if (((Resource) val).getName().equals(resourceName)) { + resourceList.add((Resource) val); + } + }); + } + }); + return resourceList; + } - if (resource.getName() != null) { - SearchOperator searchOperator = new SearchOperator(); - searchOperator.setKey("name"); - searchOperator.setValue(resource.getName()); - searchOperator.setComparisonOperator(ComparisonOperator.EQUALS); - searchOperatorList.add(searchOperator); - } - Collection<Resource> resources = super.search(searchOperatorList); - return new ArrayList<>(resources); + @Override + public List<Resource> find(Resource resource) { + String query = + "match (n:Resource) where n.tenant_id=$tenantId and n.name=$resourceName return n"; + Map<String, String> parameterMap = new HashMap<>(); + parameterMap.put("resourceName", resource.getName()); + parameterMap.put("tenantId", resource.getTenantId()); + Iterable<Map<String, Object>> mapIterable = super.execute(query, parameterMap); + List<Resource> resourceList = new ArrayList<>(); + mapIterable.forEach(map -> { + if (!map.isEmpty()) { + map.forEach((key, val) -> { + if (((Resource) val).getName().equals(resource.getName())) { + resourceList.add((Resource) val); + } + }); + } + }); + return resourceList; } } diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java index 15ef54e..d75749a 100644 --- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java @@ -43,21 +43,31 @@ public class ResourceServiceHandler extends ResourceMetadataServiceGrpc.Resource public void getResource(ResourceMetadataAPIRequest request, StreamObserver<Resource> responseObserver) { try { - + AuthenticatedUser authenticatedUser = request.getAuthToken().getAuthenticatedUser(); ResourceServiceImpl resourceService = new ResourceServiceImpl(connector); Resource resource = request.getResource(); - org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource backRes = dozerBeanMapper - .map(resource, org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource.class); - List<org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource> resourceList = - resourceService.find(backRes); - Resource foundResource = Resource - .newBuilder() - .setName(resourceList.get(0).getName()) - .setCreatedAt(resourceList.get(0).getCreatedAt()) - .setTenantId(resourceList.get(0).getTenantId()) - .build(); - responseObserver.onNext(foundResource); - responseObserver.onCompleted(); + boolean accessible = resourceService.hasAccess(authenticatedUser.getUsername(), + resource.getName(), "READ", + resource.getTenantId()); + + //TODO: move to full query + if(accessible) { + org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource backRes = dozerBeanMapper + .map(resource, org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource.class); + List<org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource> resourceList = + resourceService.find(backRes); + Resource foundResource = Resource + .newBuilder() + .setName(resourceList.get(0).getName()) + .setCreatedAt(resourceList.get(0).getCreatedAt()) + .setTenantId(resourceList.get(0).getTenantId()) + .build(); + responseObserver.onNext(foundResource); + responseObserver.onCompleted(); + } else { + responseObserver.onNext(null); + responseObserver.onCompleted(); + } } catch (Exception ex) { String msg = "Exception occurred while fetching tenant " + ex; diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/Authenticator.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/Authenticator.java index c530e73..f2f87e0 100644 --- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/Authenticator.java +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/Authenticator.java @@ -1,19 +1,114 @@ package org.apache.airavata.datalake.metadata.interceptors; import io.grpc.Metadata; -import org.apache.airavata.datalake.metadata.AppConfig; +import org.apache.airavata.datalake.metadata.service.*; +import org.apache.custos.clients.CustosClientProvider; +import org.apache.custos.identity.management.client.IdentityManagementClient; +import org.apache.custos.identity.service.User; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.io.IOException; +import java.util.Optional; + @Component public class Authenticator implements ServiceInterceptor { - private static final Logger LOGGER = LoggerFactory.getLogger(AppConfig.class); + private static final Logger LOGGER = LoggerFactory.getLogger(Authenticator.class); + + @Autowired + private CustosClientProvider custosClientProvider; + @Override - public <ReqT> ReqT intercept(String method, Metadata headers, ReqT msg) { + public <ReqT> ReqT intercept(String method, Metadata headers, ReqT msg) throws IOException { + if (msg instanceof TenantMetadataAPIRequest) { + return msg; + } + IdentityManagementClient identityManagementClient = custosClientProvider.getIdentityManagementClient(); + Optional<String> token = getAccessToken(msg); + LOGGER.info("Token " + token.get()); + User user = identityManagementClient.getUser(token.get()); + AuthenticatedUser authenticatedUser = AuthenticatedUser.newBuilder() + .setUsername(user.getUsername()) + .setFirstName(user.getFirstName()) + .setLastName(user.getLastName()) + .setEmailAddress(user.getEmailAddress()) + .build(); + return (ReqT) setAuthenticatedUser(msg, authenticatedUser); - return msg; } + + private Optional<String> getAccessToken(Object msg) { + + if (msg instanceof TenantMetadataAPIRequest) { + return Optional.of(((TenantMetadataAPIRequest) msg).getAuthToken().getAccessToken()); + } else if (msg instanceof UserMetadataAPIRequest) { + return Optional.of(((UserMetadataAPIRequest) msg).getAuthToken().getAccessToken()); + } else if (msg instanceof GroupMetadataAPIRequest) { + return Optional.of(((GroupMetadataAPIRequest) msg).getAuthToken().getAccessToken()); + } else if (msg instanceof ResourceMetadataAPIRequest) { + return Optional.of(((ResourceMetadataAPIRequest) msg).getAuthToken().getAccessToken()); + } + + return Optional.empty(); + } + + private Object setAuthenticatedUser(Object msg, AuthenticatedUser user) { + + if (msg instanceof TenantMetadataAPIRequest) { + MetadataServiceAuthToken metadataServiceAuthToken = ((TenantMetadataAPIRequest) msg) + .getAuthToken(); + metadataServiceAuthToken = metadataServiceAuthToken + .toBuilder() + .setAuthenticatedUser(user) + .build(); + + return ((TenantMetadataAPIRequest) msg) + .toBuilder() + .setAuthToken(metadataServiceAuthToken).build(); + + } else if (msg instanceof UserMetadataAPIRequest) { + MetadataServiceAuthToken metadataServiceAuthToken = ((UserMetadataAPIRequest) msg) + .getAuthToken(); + metadataServiceAuthToken = metadataServiceAuthToken + .toBuilder() + .setAuthenticatedUser(user) + .build(); + + return ((UserMetadataAPIRequest) msg) + .toBuilder() + .setAuthToken(metadataServiceAuthToken).build(); + + } else if (msg instanceof GroupMetadataAPIRequest) { + MetadataServiceAuthToken metadataServiceAuthToken = ((GroupMetadataAPIRequest) msg) + .getAuthToken(); + metadataServiceAuthToken = metadataServiceAuthToken + .toBuilder() + .setAuthenticatedUser(user) + .build(); + + return ((GroupMetadataAPIRequest) msg) + .toBuilder() + .setAuthToken(metadataServiceAuthToken).build(); + + } else if (msg instanceof ResourceMetadataAPIRequest) { + MetadataServiceAuthToken metadataServiceAuthToken = ((ResourceMetadataAPIRequest) msg) + .getAuthToken(); + metadataServiceAuthToken = metadataServiceAuthToken + .toBuilder() + .setAuthenticatedUser(user) + .build(); + + return ((ResourceMetadataAPIRequest) msg) + .toBuilder() + .setAuthToken(metadataServiceAuthToken).build(); + + } + + return msg; + + } } diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/InterceptorPipelineExecutor.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/InterceptorPipelineExecutor.java index 7e0e72a..3ccafca 100644 --- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/InterceptorPipelineExecutor.java +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/InterceptorPipelineExecutor.java @@ -27,7 +27,7 @@ public class InterceptorPipelineExecutor implements ServerInterceptor { String methodName = fullMethod.split("/")[1]; String serviceName = fullMethod.split("/")[0]; - LOGGER.debug("Calling method : " + serverCall.getMethodDescriptor().getFullMethodName()); + LOGGER.info("Calling method : " + serverCall.getMethodDescriptor().getFullMethodName()); metadata.put(Metadata.Key.of("service-name", Metadata.ASCII_STRING_MARSHALLER), serviceName); return new ForwardingServerCallListener.SimpleForwardingServerCallListener<ReqT>(serverCallHandler.startCall(serverCall, metadata)) { diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/ServiceInterceptor.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/ServiceInterceptor.java index ba05742..51f3082 100644 --- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/ServiceInterceptor.java +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/ServiceInterceptor.java @@ -3,5 +3,5 @@ package org.apache.airavata.datalake.metadata.interceptors; import io.grpc.Metadata; public interface ServiceInterceptor { - public <ReqT> ReqT intercept(String method, Metadata headers, ReqT msg); + public <ReqT> ReqT intercept(String method, Metadata headers, ReqT msg) throws Exception; } diff --git a/metadata-service/db-service/server/src/main/resources/application.properties b/metadata-service/db-service/server/src/main/resources/application.properties index 0b24325..94db252 100644 --- a/metadata-service/db-service/server/src/main/resources/application.properties +++ b/metadata-service/db-service/server/src/main/resources/application.properties @@ -21,3 +21,7 @@ grpc.port=9090 spring.neo4j.uri=bolt://neo4j:[email protected] spring.neo4j.authentication.username=neo4j spring.neo4j.authentication.password=blastcovid19 +custos.id=custos-2zuomcugra3ebgsqtzmf-10000514 +custos.secret=mupUhF4JL0S3IFHBjfhiTfLJS1NgSWfvkCj3l6c7 +custos.host=custos.scigap.org +custos.port=31499 \ No newline at end of file diff --git a/metadata-service/db-service/stub/pom.xml b/metadata-service/db-service/stub/pom.xml index a04c02b..1309d43 100644 --- a/metadata-service/db-service/stub/pom.xml +++ b/metadata-service/db-service/stub/pom.xml @@ -22,8 +22,27 @@ <artifactId>protobuf-java</artifactId> <version>${protobuf.java}</version> </dependency> + <dependency> + <groupId>io.grpc</groupId> + <artifactId>grpc-stub</artifactId> + <version>${io.grpc.version}</version> + </dependency> + <dependency> + <groupId>io.grpc</groupId> + <artifactId>grpc-protobuf</artifactId> + <version>${io.grpc.version}</version> + </dependency> + <dependency> + <groupId>io.grpc</groupId> + <artifactId>grpc-netty</artifactId> + <version>${io.grpc.version}</version> + </dependency> + <dependency> + <groupId>javax.annotation</groupId> + <artifactId>javax.annotation-api</artifactId> + <version>${javax.annotation.version}</version> + </dependency> </dependencies> - <build> <extensions> <extension> diff --git a/metadata-service/db-service/stub/src/main/proto/common/Common.proto b/metadata-service/db-service/stub/src/main/proto/common/Common.proto index b631661..f5c93b9 100644 --- a/metadata-service/db-service/stub/src/main/proto/common/Common.proto +++ b/metadata-service/db-service/stub/src/main/proto/common/Common.proto @@ -5,8 +5,14 @@ package org.apache.airavata.datalake.metadata.service; import "google/api/annotations.proto"; - +message AuthenticatedUser { + string username = 2; + string firstName = 3; + string lastName = 4; + string emailAddress = 5; +} message MetadataServiceAuthToken { string access_token = 1; + AuthenticatedUser authenticated_user = 2; } \ No newline at end of file diff --git a/metadata-service/pom.xml b/metadata-service/pom.xml index 1ea277f..c49544e 100644 --- a/metadata-service/pom.xml +++ b/metadata-service/pom.xml @@ -16,43 +16,5 @@ <module>db-service</module> <module>data-builders</module> </modules> - <dependencies> - <dependency> - <groupId>org.neo4j</groupId> - <artifactId>neo4j-ogm-core</artifactId> - <version>3.2.20</version> - </dependency> - <dependency> - <groupId>org.neo4j</groupId> - <artifactId>neo4j-ogm-bolt-driver</artifactId> - <version>3.2.20</version> - </dependency> - <dependency> - <groupId>com.google.protobuf</groupId> - <artifactId>protobuf-java</artifactId> - <version>${protobuf.java}</version> - </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-web</artifactId> - <version>2.4.2</version> - </dependency> - <dependency> - <groupId>net.sf.dozer</groupId> - <artifactId>dozer</artifactId> - <version>${dozer}</version> - </dependency> - </dependencies> </project> \ No newline at end of file
