You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ya...@apache.org on 2026/04/01 19:04:57 UTC
(airavata) 24/49: refactor: remove Thrift dependency from sharing registry subsystem
This is an automated email from the ASF dual-hosted git repository.
yasith pushed a commit to branch feat/grpc-armeria-migration
in repository https://gitbox.apache.org/repos/asf/airavata.git
commit 74bc112295d90a7d76d868484ff878eeff30f936
Author: yasithdev <ya...@icloud.com>
AuthorDate: Tue Mar 31 13:55:43 2026 -0400
refactor: remove Thrift dependency from sharing registry subsystem
- Delete dead Thrift client code (OrchestratorClientFactory,
OrchestratorClientSample, TestSSLClient)
- Remove SharingRegistryServerHandler's Thrift Iface implementation,
making it a plain Spring component
- Replace all Thrift-generated sharing registry model types (Domain,
User, UserGroup, Entity, EntityType, PermissionType, Sharing,
GroupMembership, GroupAdmin) with JPA entity types throughout
- Create plain Java replacements for Thrift-generated enums
(GroupCardinality, GroupType, SharingType, GroupChildType,
EntitySearchField, SearchCondition) and types (SearchCriteria,
SharingRegistryException, DuplicateEntryException)
- Eliminate the model-to-entity mapping layer: AbstractRepository now
works directly with JPA entities (2 type params instead of 3),
removing the need for SharingMapper
- Delete SharingMapper (MapStruct interface for Thrift<->JPA conversion)
- Update all callers (service layer, gRPC layer, event handlers) to use
JPA entity types directly
- Thrift codegen and libthrift dependency remain for now; the credential
store, dbevent messaging, and security subsystems still depend on them
---
.../compute/service/ApplicationCatalogService.java | 10 +-
.../service/GroupResourceProfileService.java | 10 +-
.../credential/service/CredentialService.java | 12 +-
.../airavata/credential/util/TestSSLClient.java | 139 --------
.../orchestrator/OrchestratorClientFactory.java | 41 ---
.../orchestrator/OrchestratorClientSample.java | 146 --------
.../execution/service/ExperimentService.java | 12 +-
.../airavata/execution/service/GatewayService.java | 24 +-
.../airavata/execution/service/ProjectService.java | 10 +-
.../security/service/GatewayGroupsInitializer.java | 20 +-
.../security/service/KeyCloakSecurityManager.java | 10 +-
.../handler/SharingRegistryServerHandler.java | 383 +++++++++------------
.../handler/SharingServiceDBEventHandler.java | 46 +--
.../SharingServiceDBEventMessagingFactory.java | 11 +-
.../airavata/sharing/mapper/SharingMapper.java | 85 -----
.../sharing/model/DuplicateEntryException.java | 16 +
.../airavata/sharing/model/EntitySearchField.java | 14 +
.../airavata/sharing/model/GroupCardinality.java | 6 +
.../airavata/sharing/model/GroupChildType.java | 6 +
.../apache/airavata/sharing/model/GroupType.java | 6 +
.../airavata/sharing/model/SearchCondition.java | 10 +
.../airavata/sharing/model/SearchCriteria.java | 37 ++
.../sharing/model/SharingRegistryException.java | 16 +
.../apache/airavata/sharing/model/SharingType.java | 7 +
.../sharing/repository/AbstractRepository.java | 73 ++--
.../sharing/repository/DomainRepository.java | 16 +-
.../sharing/repository/EntityRepository.java | 28 +-
.../sharing/repository/EntityTypeRepository.java | 16 +-
.../sharing/repository/GroupAdminRepository.java | 16 +-
.../repository/GroupMembershipRepository.java | 43 +--
.../repository/PermissionTypeRepository.java | 20 +-
.../sharing/repository/SharingRepository.java | 24 +-
.../sharing/repository/UserGroupRepository.java | 29 +-
.../sharing/repository/UserRepository.java | 28 +-
.../sharing/service/ResourceSharingService.java | 8 +-
.../airavata/sharing/service/SharingHelper.java | 11 +-
.../sharing/util/AiravataDataMigrator.java | 105 +++---
.../sharing/util/ThriftDataModelConversion.java | 26 +-
.../server/grpc/services/SharingGrpcService.java | 52 +--
39 files changed, 529 insertions(+), 1043 deletions(-)
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/service/ApplicationCatalogService.java b/airavata-api/src/main/java/org/apache/airavata/compute/service/ApplicationCatalogService.java
index 819c7504f7..65cbdbc889 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/service/ApplicationCatalogService.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/service/ApplicationCatalogService.java
@@ -38,10 +38,10 @@ import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
import org.apache.airavata.model.group.proto.ResourcePermissionType;
import org.apache.airavata.model.group.proto.ResourceType;
import org.apache.airavata.sharing.handler.SharingRegistryServerHandler;
-import org.apache.airavata.sharing.registry.models.Entity;
-import org.apache.airavata.sharing.registry.models.EntitySearchField;
-import org.apache.airavata.sharing.registry.models.SearchCondition;
-import org.apache.airavata.sharing.registry.models.SearchCriteria;
+import org.apache.airavata.sharing.model.EntityEntity;
+import org.apache.airavata.sharing.model.EntitySearchField;
+import org.apache.airavata.sharing.model.SearchCondition;
+import org.apache.airavata.sharing.model.SearchCriteria;
import org.apache.airavata.sharing.service.SharingHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -148,7 +148,7 @@ public class ApplicationCatalogService {
throws ServiceException {
try {
String result = registryHandler.registerApplicationDeployment(gatewayId, applicationDeployment);
- Entity entity = new Entity();
+ EntityEntity entity = new EntityEntity();
entity.setEntityId(result);
entity.setDomainId(gatewayId);
entity.setEntityTypeId(gatewayId + ":" + ResourceType.APPLICATION_DEPLOYMENT.name());
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/service/GroupResourceProfileService.java b/airavata-api/src/main/java/org/apache/airavata/compute/service/GroupResourceProfileService.java
index 4bfde4e4b7..0849329f8d 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/service/GroupResourceProfileService.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/service/GroupResourceProfileService.java
@@ -35,10 +35,10 @@ import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupReso
import org.apache.airavata.model.group.proto.ResourcePermissionType;
import org.apache.airavata.model.group.proto.ResourceType;
import org.apache.airavata.sharing.handler.SharingRegistryServerHandler;
-import org.apache.airavata.sharing.registry.models.Entity;
-import org.apache.airavata.sharing.registry.models.EntitySearchField;
-import org.apache.airavata.sharing.registry.models.SearchCondition;
-import org.apache.airavata.sharing.registry.models.SearchCriteria;
+import org.apache.airavata.sharing.model.EntityEntity;
+import org.apache.airavata.sharing.model.EntitySearchField;
+import org.apache.airavata.sharing.model.SearchCondition;
+import org.apache.airavata.sharing.model.SearchCriteria;
import org.apache.airavata.sharing.service.SharingHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -65,7 +65,7 @@ public class GroupResourceProfileService {
String groupResourceProfileId = registryHandler.createGroupResourceProfile(groupResourceProfile);
if (SharingHelper.isSharingEnabled()) {
try {
- Entity entity = new Entity();
+ EntityEntity entity = new EntityEntity();
entity.setEntityId(groupResourceProfileId);
final String domainId = groupResourceProfile.getGatewayId();
entity.setDomainId(domainId);
diff --git a/airavata-api/src/main/java/org/apache/airavata/credential/service/CredentialService.java b/airavata-api/src/main/java/org/apache/airavata/credential/service/CredentialService.java
index 0e7dac2013..5a5bc72d66 100644
--- a/airavata-api/src/main/java/org/apache/airavata/credential/service/CredentialService.java
+++ b/airavata-api/src/main/java/org/apache/airavata/credential/service/CredentialService.java
@@ -33,10 +33,10 @@ import org.apache.airavata.model.credential.store.SummaryType;
import org.apache.airavata.model.group.proto.ResourcePermissionType;
import org.apache.airavata.model.group.proto.ResourceType;
import org.apache.airavata.sharing.handler.SharingRegistryServerHandler;
-import org.apache.airavata.sharing.registry.models.Entity;
-import org.apache.airavata.sharing.registry.models.EntitySearchField;
-import org.apache.airavata.sharing.registry.models.SearchCondition;
-import org.apache.airavata.sharing.registry.models.SearchCriteria;
+import org.apache.airavata.sharing.model.EntityEntity;
+import org.apache.airavata.sharing.model.EntitySearchField;
+import org.apache.airavata.sharing.model.SearchCondition;
+import org.apache.airavata.sharing.model.SearchCriteria;
import org.apache.airavata.sharing.service.SharingHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -64,7 +64,7 @@ public class CredentialService {
sshCredential.setDescription(description);
String key = credentialHandler.addSSHCredential(sshCredential);
try {
- Entity entity = new Entity();
+ EntityEntity entity = new EntityEntity();
entity.setEntityId(key);
entity.setDomainId(gatewayId);
entity.setEntityTypeId(gatewayId + ":" + ResourceType.CREDENTIAL_TOKEN);
@@ -102,7 +102,7 @@ public class CredentialService {
pwdCredential.setGatewayId(gatewayId);
String key = credentialHandler.addPasswordCredential(pwdCredential);
try {
- Entity entity = new Entity();
+ EntityEntity entity = new EntityEntity();
entity.setEntityId(key);
entity.setDomainId(gatewayId);
entity.setEntityTypeId(gatewayId + ":" + ResourceType.CREDENTIAL_TOKEN);
diff --git a/airavata-api/src/main/java/org/apache/airavata/credential/util/TestSSLClient.java b/airavata-api/src/main/java/org/apache/airavata/credential/util/TestSSLClient.java
deleted file mode 100644
index 6351908e84..0000000000
--- a/airavata-api/src/main/java/org/apache/airavata/credential/util/TestSSLClient.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.credential.util;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.cert.CertificateException;
-import java.security.cert.X509Certificate;
-import org.apache.airavata.common.config.ServerSettings;
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.credential.store.cpi.CredentialStoreService;
-import org.apache.airavata.model.credential.store.CertificateCredential;
-import org.apache.airavata.model.credential.store.CommunityUser;
-import org.apache.airavata.model.credential.store.SSHCredential;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.thrift.TException;
-import org.apache.thrift.protocol.TBinaryProtocol;
-import org.apache.thrift.protocol.TProtocol;
-import org.apache.thrift.transport.TSocket;
-import org.apache.thrift.transport.TTransport;
-import org.apache.thrift.transport.TTransportException;
-
-public class TestSSLClient {
- private void invoke() {
- // TTransport transport;
- try {
-
- // TSSLTransportFactory.TSSLTransportParameters params =
- // new TSSLTransportFactory.TSSLTransportParameters();
- // String keystorePath = ServerSettings.getCredentialStoreThriftServerKeyStorePath();
- // String keystorePWD = ServerSettings.getCredentialStoreThriftServerKeyStorePassword();
- // params.setTrustStore(keystorePath, keystorePWD);
- final int serverPort = Integer.parseInt(ServerSettings.getCredentialStoreServerPort());
- final String serverHost = ServerSettings.getCredentialStoreServerHost();
- TTransport transport = new TSocket(serverHost, serverPort);
- transport.open();
- TProtocol protocol = new TBinaryProtocol(transport);
- // transport = TSSLTransportFactory.getClientSocket(serverHost, serverPort, 10000, params);
- // TProtocol protocol = new TBinaryProtocol(transport);
-
- CredentialStoreService.Client client = new CredentialStoreService.Client(protocol);
- testSSHCredential(client);
- testCertificateCredential(client);
- transport.close();
- } catch (TTransportException e) {
- e.printStackTrace();
- } catch (ApplicationSettingsException e) {
- e.printStackTrace();
- }
- }
-
- public static void testSSHCredential(CredentialStoreService.Client client) {
- try {
- SSHCredential sshCredential = new SSHCredential();
- sshCredential.setUsername("test");
- sshCredential.setGatewayId("testGateway");
- sshCredential.setPassphrase("mypassphrase");
- String token = client.addSSHCredential(sshCredential);
- System.out.println("SSH Token :" + token);
- SSHCredential credential = client.getSSHCredential(token, "testGateway");
- System.out.println("private key : " + credential.getPrivateKey());
- System.out.println("public key : " + credential.getPublicKey());
- } catch (TTransportException e) {
- e.printStackTrace();
- } catch (TException e) {
- e.printStackTrace();
- }
- }
-
- public static void testCertificateCredential(CredentialStoreService.Client client) {
- try {
- CertificateCredential certificateCredential = new CertificateCredential();
- CommunityUser communityUser = new CommunityUser("testGateway", "test", "test@ddsd");
- certificateCredential.setCommunityUser(communityUser);
- X509Certificate[] x509Certificates = new X509Certificate[1];
- KeyStore ks = KeyStore.getInstance("JKS");
- File keyStoreFile = new File(
- "/Users/smarru/code/airavata-master/modules/configuration/server/src/main/resources/airavata.p12");
- FileInputStream fis = new FileInputStream(keyStoreFile);
- char[] password = "airavata".toCharArray();
- ks.load(fis, password);
- x509Certificates[0] = (X509Certificate) ks.getCertificate("airavata");
- Base64 encoder = new Base64(64);
- String cert_begin = "-----BEGIN CERTIFICATE-----\n";
- String end_cert = "-----END CERTIFICATE-----";
- byte[] derCert = x509Certificates[0].getEncoded();
- String pemCertPre = new String(encoder.encode(derCert));
- String pemCert = cert_begin + pemCertPre + end_cert;
- certificateCredential.setX509Cert(pemCert);
- String token = client.addCertificateCredential(certificateCredential);
- System.out.println("Certificate Token :" + token);
- CertificateCredential credential = client.getCertificateCredential(token, "testGateway");
- System.out.println("certificate : " + credential.getX509Cert());
- System.out.println(
- "gateway name : " + credential.getCommunityUser().getGatewayName());
- } catch (TTransportException e) {
- e.printStackTrace();
- } catch (TException e) {
- e.printStackTrace();
- } catch (KeyStoreException e) {
- e.printStackTrace();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- } catch (CertificateException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- public static void main(String[] args) {
- TestSSLClient c = new TestSSLClient();
- c.invoke();
- }
-}
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorClientFactory.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorClientFactory.java
deleted file mode 100644
index c06816b51c..0000000000
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorClientFactory.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.execution.orchestrator;
-
-import org.apache.airavata.orchestrator.cpi.OrchestratorService;
-import org.apache.thrift.protocol.TBinaryProtocol;
-import org.apache.thrift.protocol.TProtocol;
-import org.apache.thrift.transport.TSocket;
-import org.apache.thrift.transport.TTransport;
-import org.apache.thrift.transport.TTransportException;
-
-public class OrchestratorClientFactory {
-
- public static OrchestratorService.Client createOrchestratorClient(String serverHost, int serverPort) {
- try {
- TTransport transport = new TSocket(serverHost, serverPort);
- transport.open();
- TProtocol protocol = new TBinaryProtocol(transport);
- return new OrchestratorService.Client(protocol);
- } catch (TTransportException e) {
- throw new RuntimeException("Failed to create orchestrator client", e);
- }
- }
-}
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorClientSample.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorClientSample.java
deleted file mode 100644
index 522b0c8301..0000000000
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorClientSample.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.execution.orchestrator;
-
-// import org.apache.airavata.client.AiravataAPIFactory;
-// import org.apache.airavata.client.api.AiravataAPI;
-// import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
-// import org.apache.airavata.client.tools.DocumentCreator;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.airavata.execution.util.ExperimentModelUtil;
-import org.apache.airavata.model.application.io.proto.DataType;
-import org.apache.airavata.model.application.io.proto.InputDataObjectType;
-import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
-import org.apache.airavata.model.experiment.proto.ExperimentModel;
-import org.apache.airavata.model.experiment.proto.UserConfigurationDataModel;
-import org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
-import org.apache.airavata.orchestrator.cpi.OrchestratorService;
-
-
-public class OrchestratorClientSample {
- // private static DocumentCreator documentCreator;
- private static OrchestratorService.Client orchestratorClient;
- // private static Registry registry;
- private static int NUM_CONCURRENT_REQUESTS = 1;
- private static final String DEFAULT_USER = "default.registry.user";
- private static final String DEFAULT_USER_PASSWORD = "default.registry.password";
- private static final String DEFAULT_GATEWAY = "default.registry.gateway";
- private static String sysUser;
- private static String sysUserPwd;
- private static String gateway;
- /*
-
- public static void main(String[] args) {
- try {
- AiravataUtils.setExecutionAsClient();
- sysUser = ClientSettings.getSetting(DEFAULT_USER);
- sysUserPwd = ClientSettings.getSetting(DEFAULT_USER_PASSWORD);
- gateway = ClientSettings.getSetting(DEFAULT_GATEWAY);
- orchestratorClient = OrchestratorClientFactory.createOrchestratorClient("localhost", 8940);
- registry = RegistryFactory.getRegistry(gateway, sysUser, sysUserPwd);
- documentCreator = new DocumentCreator(getAiravataAPI());
- documentCreator.createLocalHostDocs();
- documentCreator.createGramDocs();
- documentCreator.createPBSDocsForOGCE();
- storeExperimentDetail();
- } catch (ApplicationSettingsException e) {
- e.printStackTrace();
- } catch (RegistryException e) {
- e.printStackTrace();
- }
-
- }
-
- private static AiravataAPI getAiravataAPI() {
- AiravataAPI airavataAPI = null;
- try {
- airavataAPI = AiravataAPIFactory.getAPI(gateway, sysUser);
- } catch (AiravataAPIInvocationException e) {
- e.printStackTrace();
- }
- return airavataAPI;
- }
- */
-
- public static void storeExperimentDetail() {
- for (int i = 0; i < NUM_CONCURRENT_REQUESTS; i++) {
- Thread thread = new Thread() {
- public void run() {
- List<InputDataObjectType> exInputs = new ArrayList<InputDataObjectType>();
- InputDataObjectType input = InputDataObjectType.newBuilder()
- .setName("echo_input")
- .setType(DataType.STRING)
- .setValue("echo_output=Hello World")
- .build();
- exInputs.add(input);
-
- List<OutputDataObjectType> exOut = new ArrayList<OutputDataObjectType>();
- OutputDataObjectType output = OutputDataObjectType.newBuilder()
- .setName("echo_output")
- .setType(DataType.STRING)
- .setValue("")
- .build();
- exOut.add(output);
-
- ExperimentModel simpleExperiment = ExperimentModelUtil.createSimpleExperiment(
- DEFAULT_GATEWAY,
- "default",
- "admin",
- "echoExperiment",
- "SimpleEcho2",
- "SimpleEcho2",
- exInputs);
- simpleExperiment = simpleExperiment.toBuilder()
- .addAllExperimentOutputs(exOut).build();
-
- ComputationalResourceSchedulingModel scheduling =
- ExperimentModelUtil.createComputationResourceScheduling(
- "trestles.sdsc.edu", 1, 1, 1, "normal", 0, 0)
- .toBuilder().setResourceHostId("gsissh-trestles").build();
- UserConfigurationDataModel userConfigurationDataModel = UserConfigurationDataModel.newBuilder()
- .setComputationalResourceScheduling(scheduling).build();
- simpleExperiment = simpleExperiment.toBuilder()
- .setUserConfigurationData(userConfigurationDataModel).build();
- String expId = null;
- try {
- // expId = (String) registry.add(ParentDataType.EXPERIMENT,
- // simpleExperiment);
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- try {
- orchestratorClient.launchExperiment(expId, "airavataToken");
- } catch (Exception e) {
- throw new RuntimeException("Error while storing experiment details", e);
- }
- }
- };
- thread.start();
- try {
- thread.join();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
-}
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/service/ExperimentService.java b/airavata-api/src/main/java/org/apache/airavata/execution/service/ExperimentService.java
index 68a3722b3e..172ef4c403 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/service/ExperimentService.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/service/ExperimentService.java
@@ -48,10 +48,10 @@ import org.apache.airavata.model.status.proto.ProcessStatus;
import org.apache.airavata.model.task.proto.TaskTypes;
import org.apache.airavata.model.workspace.proto.Project;
import org.apache.airavata.sharing.handler.SharingRegistryServerHandler;
-import org.apache.airavata.sharing.registry.models.Entity;
-import org.apache.airavata.sharing.registry.models.EntitySearchField;
-import org.apache.airavata.sharing.registry.models.SearchCondition;
-import org.apache.airavata.sharing.registry.models.SearchCriteria;
+import org.apache.airavata.sharing.model.EntityEntity;
+import org.apache.airavata.sharing.model.EntitySearchField;
+import org.apache.airavata.sharing.model.SearchCondition;
+import org.apache.airavata.sharing.model.SearchCriteria;
import org.apache.airavata.sharing.service.SharingHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -84,7 +84,7 @@ public class ExperimentService {
if (SharingHelper.isSharingEnabled()) {
try {
- Entity entity = new Entity();
+ EntityEntity entity = new EntityEntity();
entity.setEntityId(experimentId);
String domainId = experiment.getGatewayId();
entity.setDomainId(domainId);
@@ -447,7 +447,7 @@ public class ExperimentService {
}
if (SharingHelper.isSharingEnabled()) {
try {
- Entity entity = sharingHandler.getEntity(ctx.getGatewayId(), experimentId);
+ EntityEntity entity = sharingHandler.getEntity(ctx.getGatewayId(), experimentId);
entity.setName(experiment.getExperimentName());
entity.setDescription(experiment.getDescription());
entity.setParentEntityId(experiment.getProjectId());
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/service/GatewayService.java b/airavata-api/src/main/java/org/apache/airavata/execution/service/GatewayService.java
index fbf874ad59..9fb9b2b9d6 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/service/GatewayService.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/service/GatewayService.java
@@ -24,9 +24,9 @@ import org.apache.airavata.execution.handler.RegistryServerHandler;
import org.apache.airavata.model.group.proto.ResourceType;
import org.apache.airavata.model.workspace.proto.Gateway;
import org.apache.airavata.sharing.handler.SharingRegistryServerHandler;
-import org.apache.airavata.sharing.registry.models.Domain;
-import org.apache.airavata.sharing.registry.models.EntityType;
-import org.apache.airavata.sharing.registry.models.PermissionType;
+import org.apache.airavata.sharing.model.DomainEntity;
+import org.apache.airavata.sharing.model.EntityTypeEntity;
+import org.apache.airavata.sharing.model.PermissionTypeEntity;
import org.apache.airavata.sharing.service.SharingHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -48,42 +48,42 @@ public class GatewayService {
String gatewayId = registryHandler.addGateway(gateway);
if (SharingHelper.isSharingEnabled()) {
- Domain domain = new Domain();
+ DomainEntity domain = new DomainEntity();
domain.setDomainId(gateway.getGatewayId());
domain.setName(gateway.getGatewayName());
domain.setDescription("Domain entry for " + domain.getName());
sharingHandler.createDomain(domain);
// Creating Entity Types for each domain
- EntityType entityType = new EntityType();
+ EntityTypeEntity entityType = new EntityTypeEntity();
entityType.setEntityTypeId(domain.getDomainId() + ":PROJECT");
entityType.setDomainId(domain.getDomainId());
entityType.setName("PROJECT");
entityType.setDescription("Project entity type");
sharingHandler.createEntityType(entityType);
- entityType = new EntityType();
+ entityType = new EntityTypeEntity();
entityType.setEntityTypeId(domain.getDomainId() + ":EXPERIMENT");
entityType.setDomainId(domain.getDomainId());
entityType.setName("EXPERIMENT");
entityType.setDescription("Experiment entity type");
sharingHandler.createEntityType(entityType);
- entityType = new EntityType();
+ entityType = new EntityTypeEntity();
entityType.setEntityTypeId(domain.getDomainId() + ":FILE");
entityType.setDomainId(domain.getDomainId());
entityType.setName("FILE");
entityType.setDescription("File entity type");
sharingHandler.createEntityType(entityType);
- entityType = new EntityType();
+ entityType = new EntityTypeEntity();
entityType.setEntityTypeId(domain.getDomainId() + ":" + ResourceType.APPLICATION_DEPLOYMENT.name());
entityType.setDomainId(domain.getDomainId());
entityType.setName("APPLICATION-DEPLOYMENT");
entityType.setDescription("Application Deployment entity type");
sharingHandler.createEntityType(entityType);
- entityType = new EntityType();
+ entityType = new EntityTypeEntity();
entityType.setEntityTypeId(domain.getDomainId() + ":" + ResourceType.GROUP_RESOURCE_PROFILE.name());
entityType.setDomainId(domain.getDomainId());
entityType.setName(ResourceType.GROUP_RESOURCE_PROFILE.name());
@@ -91,21 +91,21 @@ public class GatewayService {
sharingHandler.createEntityType(entityType);
// Creating Permission Types for each domain
- PermissionType permissionType = new PermissionType();
+ PermissionTypeEntity permissionType = new PermissionTypeEntity();
permissionType.setPermissionTypeId(domain.getDomainId() + ":READ");
permissionType.setDomainId(domain.getDomainId());
permissionType.setName("READ");
permissionType.setDescription("Read permission type");
sharingHandler.createPermissionType(permissionType);
- permissionType = new PermissionType();
+ permissionType = new PermissionTypeEntity();
permissionType.setPermissionTypeId(domain.getDomainId() + ":WRITE");
permissionType.setDomainId(domain.getDomainId());
permissionType.setName("WRITE");
permissionType.setDescription("Write permission type");
sharingHandler.createPermissionType(permissionType);
- permissionType = new PermissionType();
+ permissionType = new PermissionTypeEntity();
permissionType.setPermissionTypeId(domain.getDomainId() + ":MANAGE_SHARING");
permissionType.setDomainId(domain.getDomainId());
permissionType.setName("MANAGE_SHARING");
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/service/ProjectService.java b/airavata-api/src/main/java/org/apache/airavata/execution/service/ProjectService.java
index 337de1096d..4423e74622 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/service/ProjectService.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/service/ProjectService.java
@@ -28,10 +28,10 @@ import org.apache.airavata.execution.handler.RegistryServerHandler;
import org.apache.airavata.model.experiment.proto.ProjectSearchFields;
import org.apache.airavata.model.workspace.proto.Project;
import org.apache.airavata.sharing.handler.SharingRegistryServerHandler;
-import org.apache.airavata.sharing.registry.models.Entity;
-import org.apache.airavata.sharing.registry.models.EntitySearchField;
-import org.apache.airavata.sharing.registry.models.SearchCondition;
-import org.apache.airavata.sharing.registry.models.SearchCriteria;
+import org.apache.airavata.sharing.model.EntityEntity;
+import org.apache.airavata.sharing.model.EntitySearchField;
+import org.apache.airavata.sharing.model.SearchCondition;
+import org.apache.airavata.sharing.model.SearchCriteria;
import org.apache.airavata.sharing.service.SharingHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -54,7 +54,7 @@ public class ProjectService {
if (SharingHelper.isSharingEnabled()) {
try {
- Entity entity = new Entity();
+ EntityEntity entity = new EntityEntity();
entity.setEntityId(projectId);
final String domainId = project.getGatewayId();
entity.setDomainId(domainId);
diff --git a/airavata-api/src/main/java/org/apache/airavata/security/service/GatewayGroupsInitializer.java b/airavata-api/src/main/java/org/apache/airavata/security/service/GatewayGroupsInitializer.java
index 735acdf377..bf1b7069f7 100644
--- a/airavata-api/src/main/java/org/apache/airavata/security/service/GatewayGroupsInitializer.java
+++ b/airavata-api/src/main/java/org/apache/airavata/security/service/GatewayGroupsInitializer.java
@@ -28,9 +28,7 @@ import org.apache.airavata.model.appcatalog.gatewayprofile.proto.GatewayResource
import org.apache.airavata.model.credential.store.PasswordCredential;
import org.apache.airavata.execution.handler.RegistryServerHandler;
import org.apache.airavata.sharing.handler.SharingRegistryServerHandler;
-import org.apache.airavata.sharing.registry.models.*;
-import org.apache.airavata.sharing.registry.service.cpi.SharingRegistryService;
-import org.apache.thrift.TException;
+import org.apache.airavata.sharing.model.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -84,7 +82,7 @@ public class GatewayGroupsInitializer {
String adminOwnerUsername = getAdminOwnerUsername(registryClient, credentialStoreClient, gatewayId);
String ownerId = adminOwnerUsername + "@" + gatewayId;
if (!sharingRegistryClient.isUserExists(gatewayId, ownerId)) {
- User adminUser = new User();
+ UserEntity adminUser = new UserEntity();
adminUser.setUserId(ownerId);
adminUser.setDomainId(gatewayId);
adminUser.setCreatedTime(System.currentTimeMillis());
@@ -94,15 +92,15 @@ public class GatewayGroupsInitializer {
}
// Gateway Users
- UserGroup gatewayUsersGroup = createGroup(
+ UserGroupEntity gatewayUsersGroup = createGroup(
sharingRegistryClient, gatewayId, ownerId, "Gateway Users", "Default group for users of the gateway.");
gatewayGroupsBuilder.setDefaultGatewayUsersGroupId(gatewayUsersGroup.getGroupId());
// Admin Users
- UserGroup adminUsersGroup =
+ UserGroupEntity adminUsersGroup =
createGroup(sharingRegistryClient, gatewayId, ownerId, "Admin Users", "Admin users group.");
gatewayGroupsBuilder.setAdminsGroupId(adminUsersGroup.getGroupId());
// Read Only Admin Users
- UserGroup readOnlyAdminsGroup = createGroup(
+ UserGroupEntity readOnlyAdminsGroup = createGroup(
sharingRegistryClient,
gatewayId,
ownerId,
@@ -122,7 +120,7 @@ public class GatewayGroupsInitializer {
return gatewayGroups;
}
- private UserGroup createGroup(
+ private UserGroupEntity createGroup(
SharingRegistryServerHandler sharingRegistryClient,
String gatewayId,
String ownerId,
@@ -130,16 +128,16 @@ public class GatewayGroupsInitializer {
String groupDescription)
throws Exception {
- UserGroup userGroup = new UserGroup();
+ UserGroupEntity userGroup = new UserGroupEntity();
userGroup.setGroupId(AiravataUtils.getId(groupName));
userGroup.setDomainId(gatewayId);
- userGroup.setGroupCardinality(GroupCardinality.MULTI_USER);
+ userGroup.setGroupCardinality(GroupCardinality.MULTI_USER.name());
userGroup.setCreatedTime(System.currentTimeMillis());
userGroup.setUpdatedTime(System.currentTimeMillis());
userGroup.setName(groupName);
userGroup.setDescription(groupDescription);
userGroup.setOwnerId(ownerId);
- userGroup.setGroupType(GroupType.DOMAIN_LEVEL_GROUP);
+ userGroup.setGroupType(GroupType.DOMAIN_LEVEL_GROUP.name());
sharingRegistryClient.createGroup(userGroup);
return userGroup;
diff --git a/airavata-api/src/main/java/org/apache/airavata/security/service/KeyCloakSecurityManager.java b/airavata-api/src/main/java/org/apache/airavata/security/service/KeyCloakSecurityManager.java
index 8e4782ecfe..1aa416f72e 100644
--- a/airavata-api/src/main/java/org/apache/airavata/security/service/KeyCloakSecurityManager.java
+++ b/airavata-api/src/main/java/org/apache/airavata/security/service/KeyCloakSecurityManager.java
@@ -40,8 +40,7 @@ import org.apache.airavata.execution.handler.RegistryServerHandler;
import org.apache.airavata.security.service.authzcache.*;
import org.apache.airavata.security.util.AiravataSecurityException;
import org.apache.airavata.sharing.handler.SharingRegistryServerHandler;
-import org.apache.airavata.sharing.registry.models.UserGroup;
-import org.apache.airavata.sharing.registry.service.cpi.SharingRegistryService;
+import org.apache.airavata.sharing.model.UserGroupEntity;
import org.apache.http.Consts;
import org.apache.http.HttpHeaders;
import org.apache.http.NameValuePair;
@@ -52,7 +51,6 @@ import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
-import org.apache.thrift.TException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -283,10 +281,10 @@ public class KeyCloakSecurityManager implements AiravataSecurityManager {
throws Exception {
validateToken(username, token, gatewayId);
GatewayGroups gatewayGroups = getGatewayGroups(gatewayId);
- List<UserGroup> userGroups =
+ List<UserGroupEntity> userGroups =
sharingRegistryServiceClient.getAllMemberGroupsForUser(gatewayId, username + "@" + gatewayId);
List<String> userGroupIds =
- userGroups.stream().map(UserGroup::getGroupId).toList();
+ userGroups.stream().map(UserGroupEntity::getGroupId).toList();
GatewayGroupMembership gatewayGroupMembership = new GatewayGroupMembership();
gatewayGroupMembership.setInAdminsGroup(userGroupIds.contains(gatewayGroups.getAdminsGroupId()));
gatewayGroupMembership.setInReadOnlyAdminsGroup(
@@ -378,7 +376,7 @@ public class KeyCloakSecurityManager implements AiravataSecurityManager {
return matcher.matches();
}
- private void initServiceClients() throws TException, ApplicationSettingsException {
+ private void initServiceClients() throws Exception, ApplicationSettingsException {
registryServiceClient = getRegistryServiceClient();
sharingRegistryServiceClient = new SharingRegistryServerHandler();
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/handler/SharingRegistryServerHandler.java b/airavata-api/src/main/java/org/apache/airavata/sharing/handler/SharingRegistryServerHandler.java
index ec765ad396..c736d7c276 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/handler/SharingRegistryServerHandler.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/handler/SharingRegistryServerHandler.java
@@ -25,44 +25,38 @@ import java.util.*;
import org.apache.airavata.common.db.DBInitializer;
import org.apache.airavata.common.exception.ApplicationSettingsException;
import org.apache.airavata.sharing.model.*;
-import org.apache.airavata.sharing.registry.models.*;
-import org.apache.airavata.sharing.registry.service.cpi.SharingRegistryService;
-import org.apache.airavata.sharing.registry.service.cpi.sharing_cpiConstants;
import org.apache.airavata.sharing.repository.*;
import org.apache.airavata.sharing.util.DBConstants;
import org.apache.airavata.sharing.util.SharingRegistryDBInitConfig;
import org.apache.commons.lang3.exception.ExceptionUtils;
-import org.apache.thrift.TException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Component
-public class SharingRegistryServerHandler implements SharingRegistryService.Iface {
+public class SharingRegistryServerHandler {
private static final Logger logger = LoggerFactory.getLogger(SharingRegistryServerHandler.class);
public static String OWNER_PERMISSION_NAME = "OWNER";
- public SharingRegistryServerHandler() throws ApplicationSettingsException, TException {
+ public SharingRegistryServerHandler() throws ApplicationSettingsException {
this(new SharingRegistryDBInitConfig());
}
public SharingRegistryServerHandler(SharingRegistryDBInitConfig sharingRegistryDBInitConfig)
- throws ApplicationSettingsException, TException {
+ throws ApplicationSettingsException {
DBInitializer.initializeDB(sharingRegistryDBInitConfig);
}
- @Override
- public String getAPIVersion() throws TException {
- return sharing_cpiConstants.SHARING_CPI_VERSION;
+ public String getAPIVersion() throws SharingRegistryException {
+ return "0.1";
}
/**
* * Domain Operations
* *
*/
- @Override
- public String createDomain(Domain domain) throws SharingRegistryException, DuplicateEntryException, TException {
+ public String createDomain(DomainEntity domain) throws SharingRegistryException, DuplicateEntryException {
try {
if ((new DomainRepository()).get(domain.getDomainId()) != null)
throw new DuplicateEntryException("There exist domain with given domain id");
@@ -72,7 +66,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
(new DomainRepository()).create(domain);
// create the global permission for the domain
- PermissionType permissionType = new PermissionType();
+ PermissionTypeEntity permissionType = new PermissionTypeEntity();
permissionType.setPermissionTypeId(domain.getDomainId() + ":" + OWNER_PERMISSION_NAME);
permissionType.setDomainId(domain.getDomainId());
permissionType.setName(OWNER_PERMISSION_NAME);
@@ -88,10 +82,9 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean updateDomain(Domain domain) throws SharingRegistryException, TException {
+ public boolean updateDomain(DomainEntity domain) throws SharingRegistryException {
try {
- Domain oldDomain = (new DomainRepository()).get(domain.getDomainId());
+ DomainEntity oldDomain = (new DomainRepository()).get(domain.getDomainId());
domain.setCreatedTime(oldDomain.getCreatedTime());
domain.setUpdatedTime(System.currentTimeMillis());
domain = getUpdatedObject(oldDomain, domain);
@@ -108,8 +101,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
*
* @param domainId
*/
- @Override
- public boolean isDomainExists(String domainId) throws SharingRegistryException, TException {
+ public boolean isDomainExists(String domainId) throws SharingRegistryException {
try {
return (new DomainRepository()).isExists(domainId);
} catch (Throwable ex) {
@@ -118,8 +110,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean deleteDomain(String domainId) throws SharingRegistryException, TException {
+ public boolean deleteDomain(String domainId) throws SharingRegistryException {
try {
(new DomainRepository()).delete(domainId);
return true;
@@ -129,8 +120,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public Domain getDomain(String domainId) throws SharingRegistryException, TException {
+ public DomainEntity getDomain(String domainId) throws SharingRegistryException {
try {
return (new DomainRepository()).get(domainId);
} catch (Throwable ex) {
@@ -139,8 +129,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public List<Domain> getDomains(int offset, int limit) throws TException {
+ public List<DomainEntity> getDomains(int offset, int limit) throws SharingRegistryException {
try {
return (new DomainRepository()).select(new HashMap<>(), offset, limit);
} catch (Throwable ex) {
@@ -153,8 +142,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
* * User Operations
* *
*/
- @Override
- public String createUser(User user) throws SharingRegistryException, DuplicateEntryException, TException {
+ public String createUser(UserEntity user) throws SharingRegistryException, DuplicateEntryException {
try {
UserPK userPK = new UserPK();
userPK.setUserId(user.getUserId());
@@ -166,17 +154,17 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
user.setUpdatedTime(System.currentTimeMillis());
(new UserRepository()).create(user);
- UserGroup userGroup = new UserGroup();
+ UserGroupEntity userGroup = new UserGroupEntity();
userGroup.setGroupId(user.getUserId());
userGroup.setDomainId(user.getDomainId());
userGroup.setName(user.getUserName());
userGroup.setDescription("user " + user.getUserName() + " group");
userGroup.setOwnerId(user.getUserId());
- userGroup.setGroupType(GroupType.USER_LEVEL_GROUP);
- userGroup.setGroupCardinality(GroupCardinality.SINGLE_USER);
+ userGroup.setGroupType(GroupType.USER_LEVEL_GROUP.name());
+ userGroup.setGroupCardinality(GroupCardinality.SINGLE_USER.name());
(new UserGroupRepository()).create(userGroup);
- Domain domain = new DomainRepository().get(user.getDomainId());
+ DomainEntity domain = new DomainRepository().get(user.getDomainId());
if (domain.getInitialUserGroupId() != null) {
addUsersToGroup(
user.getDomainId(),
@@ -191,13 +179,12 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean updatedUser(User user) throws SharingRegistryException, TException {
+ public boolean updatedUser(UserEntity user) throws SharingRegistryException {
try {
UserPK userPK = new UserPK();
userPK.setUserId(user.getUserId());
userPK.setDomainId(user.getDomainId());
- User oldUser = (new UserRepository()).get(userPK);
+ UserEntity oldUser = (new UserRepository()).get(userPK);
user.setCreatedTime(oldUser.getCreatedTime());
user.setUpdatedTime(System.currentTimeMillis());
user = getUpdatedObject(oldUser, user);
@@ -206,7 +193,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
UserGroupPK userGroupPK = new UserGroupPK();
userGroupPK.setGroupId(user.getUserId());
userGroupPK.setDomainId(user.getDomainId());
- UserGroup userGroup = (new UserGroupRepository()).get(userGroupPK);
+ UserGroupEntity userGroup = (new UserGroupRepository()).get(userGroupPK);
userGroup.setName(user.getUserName());
userGroup.setDescription("user " + user.getUserName() + " group");
updateGroup(userGroup);
@@ -222,8 +209,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
*
* @param userId
*/
- @Override
- public boolean isUserExists(String domainId, String userId) throws SharingRegistryException, TException {
+ public boolean isUserExists(String domainId, String userId) throws SharingRegistryException {
try {
UserPK userPK = new UserPK();
userPK.setDomainId(domainId);
@@ -235,8 +221,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean deleteUser(String domainId, String userId) throws SharingRegistryException, TException {
+ public boolean deleteUser(String domainId, String userId) throws SharingRegistryException {
try {
UserPK userPK = new UserPK();
userPK.setUserId(userId);
@@ -254,8 +239,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public User getUser(String domainId, String userId) throws SharingRegistryException, TException {
+ public UserEntity getUser(String domainId, String userId) throws SharingRegistryException {
try {
UserPK userPK = new UserPK();
userPK.setUserId(userId);
@@ -267,8 +251,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public List<User> getUsers(String domain, int offset, int limit) throws SharingRegistryException, TException {
+ public List<UserEntity> getUsers(String domain, int offset, int limit) throws SharingRegistryException {
try {
HashMap<String, String> filters = new HashMap<>();
filters.put(DBConstants.UserTable.DOMAIN_ID, domain);
@@ -283,8 +266,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
* * Group Operations
* *
*/
- @Override
- public String createGroup(UserGroup group) throws SharingRegistryException, TException {
+ public String createGroup(UserGroupEntity group) throws SharingRegistryException {
try {
UserGroupPK userGroupPK = new UserGroupPK();
userGroupPK.setGroupId(group.getGroupId());
@@ -292,11 +274,11 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
if ((new UserGroupRepository()).get(userGroupPK) != null)
throw new SharingRegistryException("There exist group with given group id");
// Client created groups are always of type MULTI_USER
- group.setGroupCardinality(GroupCardinality.MULTI_USER);
+ group.setGroupCardinality(GroupCardinality.MULTI_USER.name());
group.setCreatedTime(System.currentTimeMillis());
group.setUpdatedTime(System.currentTimeMillis());
// Add group admins once the group is created
- group.unsetGroupAdmins();
+ // group admins are managed separately;
(new UserGroupRepository()).create(group);
addUsersToGroup(group.getDomainId(), Arrays.asList(group.getOwnerId()), group.getGroupId());
@@ -307,14 +289,13 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean updateGroup(UserGroup group) throws SharingRegistryException, TException {
+ public boolean updateGroup(UserGroupEntity group) throws SharingRegistryException {
try {
group.setUpdatedTime(System.currentTimeMillis());
UserGroupPK userGroupPK = new UserGroupPK();
userGroupPK.setGroupId(group.getGroupId());
userGroupPK.setDomainId(group.getDomainId());
- UserGroup oldGroup = (new UserGroupRepository()).get(userGroupPK);
+ UserGroupEntity oldGroup = (new UserGroupRepository()).get(userGroupPK);
group.setGroupCardinality(oldGroup.getGroupCardinality());
group.setCreatedTime(oldGroup.getCreatedTime());
group = getUpdatedObject(oldGroup, group);
@@ -336,10 +317,9 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
* @param groupId
* @return
* @throws SharingRegistryException
- * @throws TException
+ * @throws SharingRegistryException
*/
- @Override
- public boolean isGroupExists(String domainId, String groupId) throws SharingRegistryException, TException {
+ public boolean isGroupExists(String domainId, String groupId) throws SharingRegistryException {
try {
UserGroupPK userGroupPK = new UserGroupPK();
userGroupPK.setDomainId(domainId);
@@ -351,8 +331,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean deleteGroup(String domainId, String groupId) throws SharingRegistryException, TException {
+ public boolean deleteGroup(String domainId, String groupId) throws SharingRegistryException {
try {
UserGroupPK userGroupPK = new UserGroupPK();
userGroupPK.setGroupId(groupId);
@@ -365,8 +344,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public UserGroup getGroup(String domainId, String groupId) throws SharingRegistryException, TException {
+ public UserGroupEntity getGroup(String domainId, String groupId) throws SharingRegistryException {
try {
UserGroupPK userGroupPK = new UserGroupPK();
userGroupPK.setGroupId(groupId);
@@ -378,8 +356,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public List<UserGroup> getGroups(String domain, int offset, int limit) throws TException {
+ public List<UserGroupEntity> getGroups(String domain, int offset, int limit) throws SharingRegistryException {
try {
HashMap<String, String> filters = new HashMap<>();
filters.put(DBConstants.UserGroupTable.DOMAIN_ID, domain);
@@ -393,15 +370,14 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean addUsersToGroup(String domainId, List<String> userIds, String groupId)
- throws SharingRegistryException, TException {
+ public boolean addUsersToGroup(String domainId, List<String> userIds, String groupId)
+ throws SharingRegistryException {
try {
for (int i = 0; i < userIds.size(); i++) {
- GroupMembership groupMembership = new GroupMembership();
+ GroupMembershipEntity groupMembership = new GroupMembershipEntity();
groupMembership.setParentId(groupId);
groupMembership.setChildId(userIds.get(i));
- groupMembership.setChildType(GroupChildType.USER);
+ groupMembership.setChildType(GroupChildType.USER.name());
groupMembership.setDomainId(domainId);
groupMembership.setCreatedTime(System.currentTimeMillis());
groupMembership.setUpdatedTime(System.currentTimeMillis());
@@ -414,9 +390,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean removeUsersFromGroup(String domainId, List<String> userIds, String groupId)
- throws SharingRegistryException, TException {
+ public boolean removeUsersFromGroup(String domainId, List<String> userIds, String groupId)
+ throws SharingRegistryException {
try {
for (String userId : userIds) {
if (hasOwnerAccess(domainId, groupId, userId)) {
@@ -439,11 +414,10 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean transferGroupOwnership(String domainId, String groupId, String newOwnerId)
- throws SharingRegistryException, TException {
+ public boolean transferGroupOwnership(String domainId, String groupId, String newOwnerId)
+ throws SharingRegistryException {
try {
- List<User> groupUser = getGroupMembersOfTypeUser(domainId, groupId, 0, -1);
+ List<UserEntity> groupUser = getGroupMembersOfTypeUser(domainId, groupId, 0, -1);
if (!isUserBelongsToGroup(groupUser, newOwnerId)) {
throw new SharingRegistryException("New group owner is not part of the group");
}
@@ -459,11 +433,11 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
UserGroupPK userGroupPK = new UserGroupPK();
userGroupPK.setGroupId(groupId);
userGroupPK.setDomainId(domainId);
- UserGroup userGroup = (new UserGroupRepository()).get(userGroupPK);
- UserGroup newUserGroup = new UserGroup();
+ UserGroupEntity userGroup = (new UserGroupRepository()).get(userGroupPK);
+ UserGroupEntity newUserGroup = new UserGroupEntity();
newUserGroup.setUpdatedTime(System.currentTimeMillis());
newUserGroup.setOwnerId(newOwnerId);
- newUserGroup.setGroupCardinality(GroupCardinality.MULTI_USER);
+ newUserGroup.setGroupCardinality(GroupCardinality.MULTI_USER.name());
newUserGroup.setCreatedTime(userGroup.getCreatedTime());
newUserGroup = getUpdatedObject(userGroup, newUserGroup);
@@ -476,8 +450,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- private boolean isUserBelongsToGroup(List<User> groupUser, String newOwnerId) {
- for (User user : groupUser) {
+ private boolean isUserBelongsToGroup(List<UserEntity> groupUser, String newOwnerId) {
+ for (UserEntity user : groupUser) {
if (user.getUserId().equals(newOwnerId)) {
return true;
}
@@ -485,11 +459,10 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
return false;
}
- @Override
- public boolean addGroupAdmins(String domainId, String groupId, List<String> adminIds)
- throws SharingRegistryException, TException {
+ public boolean addGroupAdmins(String domainId, String groupId, List<String> adminIds)
+ throws SharingRegistryException {
try {
- List<User> groupUser = getGroupMembersOfTypeUser(domainId, groupId, 0, -1);
+ List<UserEntity> groupUser = getGroupMembersOfTypeUser(domainId, groupId, 0, -1);
for (String adminId : adminIds) {
if (!isUserBelongsToGroup(groupUser, adminId)) {
@@ -504,7 +477,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
if ((new GroupAdminRepository()).get(groupAdminPK) != null)
throw new DuplicateEntryException("User already an admin for the group");
- GroupAdmin admin = new GroupAdmin();
+ GroupAdminEntity admin = new GroupAdminEntity();
admin.setAdminId(adminId);
admin.setDomainId(domainId);
admin.setGroupId(groupId);
@@ -517,9 +490,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean removeGroupAdmins(String domainId, String groupId, List<String> adminIds)
- throws SharingRegistryException, TException {
+ public boolean removeGroupAdmins(String domainId, String groupId, List<String> adminIds)
+ throws SharingRegistryException {
try {
for (String adminId : adminIds) {
GroupAdminPK groupAdminPK = new GroupAdminPK();
@@ -535,9 +507,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean hasAdminAccess(String domainId, String groupId, String adminId)
- throws SharingRegistryException, TException {
+ public boolean hasAdminAccess(String domainId, String groupId, String adminId)
+ throws SharingRegistryException {
try {
GroupAdminPK groupAdminPK = new GroupAdminPK();
groupAdminPK.setGroupId(groupId);
@@ -552,14 +523,13 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean hasOwnerAccess(String domainId, String groupId, String ownerId)
- throws SharingRegistryException, TException {
+ public boolean hasOwnerAccess(String domainId, String groupId, String ownerId)
+ throws SharingRegistryException {
try {
UserGroupPK userGroupPK = new UserGroupPK();
userGroupPK.setGroupId(groupId);
userGroupPK.setDomainId(domainId);
- UserGroup getGroup = (new UserGroupRepository()).get(userGroupPK);
+ UserGroupEntity getGroup = (new UserGroupRepository()).get(userGroupPK);
if (getGroup.getOwnerId().equals(ownerId)) return true;
return false;
@@ -569,12 +539,11 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public List<User> getGroupMembersOfTypeUser(String domainId, String groupId, int offset, int limit)
- throws SharingRegistryException, TException {
+ public List<UserEntity> getGroupMembersOfTypeUser(String domainId, String groupId, int offset, int limit)
+ throws SharingRegistryException {
try {
// TODO limit offset
- List<User> groupMemberUsers = (new GroupMembershipRepository()).getAllChildUsers(domainId, groupId);
+ List<UserEntity> groupMemberUsers = (new GroupMembershipRepository()).getAllChildUsers(domainId, groupId);
return groupMemberUsers;
} catch (Throwable ex) {
logger.error(ex.getMessage(), ex);
@@ -582,12 +551,11 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public List<UserGroup> getGroupMembersOfTypeGroup(String domainId, String groupId, int offset, int limit)
- throws SharingRegistryException, TException {
+ public List<UserGroupEntity> getGroupMembersOfTypeGroup(String domainId, String groupId, int offset, int limit)
+ throws SharingRegistryException {
try {
// TODO limit offset
- List<UserGroup> groupMemberGroups = (new GroupMembershipRepository()).getAllChildGroups(domainId, groupId);
+ List<UserGroupEntity> groupMemberGroups = (new GroupMembershipRepository()).getAllChildGroups(domainId, groupId);
return groupMemberGroups;
} catch (Throwable ex) {
logger.error(ex.getMessage(), ex);
@@ -595,16 +563,15 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean addChildGroupsToParentGroup(String domainId, List<String> childIds, String groupId)
- throws SharingRegistryException, TException {
+ public boolean addChildGroupsToParentGroup(String domainId, List<String> childIds, String groupId)
+ throws SharingRegistryException {
try {
for (String childId : childIds) {
// Todo check for cyclic dependencies
- GroupMembership groupMembership = new GroupMembership();
+ GroupMembershipEntity groupMembership = new GroupMembershipEntity();
groupMembership.setParentId(groupId);
groupMembership.setChildId(childId);
- groupMembership.setChildType(GroupChildType.GROUP);
+ groupMembership.setChildType(GroupChildType.GROUP.name());
groupMembership.setDomainId(domainId);
groupMembership.setCreatedTime(System.currentTimeMillis());
groupMembership.setUpdatedTime(System.currentTimeMillis());
@@ -617,9 +584,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean removeChildGroupFromParentGroup(String domainId, String childId, String groupId)
- throws SharingRegistryException, TException {
+ public boolean removeChildGroupFromParentGroup(String domainId, String childId, String groupId)
+ throws SharingRegistryException {
try {
GroupMembershipPK groupMembershipPK = new GroupMembershipPK();
groupMembershipPK.setParentId(groupId);
@@ -633,9 +599,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public List<UserGroup> getAllMemberGroupsForUser(String domainId, String userId)
- throws SharingRegistryException, TException {
+ public List<UserGroupEntity> getAllMemberGroupsForUser(String domainId, String userId)
+ throws SharingRegistryException {
try {
GroupMembershipRepository groupMembershipRepository = new GroupMembershipRepository();
return groupMembershipRepository.getAllMemberGroupsForUser(domainId, userId);
@@ -649,9 +614,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
* * EntityType Operations
* *
*/
- @Override
- public String createEntityType(EntityType entityType)
- throws SharingRegistryException, DuplicateEntryException, TException {
+ public String createEntityType(EntityTypeEntity entityType)
+ throws SharingRegistryException, DuplicateEntryException {
try {
EntityTypePK entityTypePK = new EntityTypePK();
entityTypePK.setDomainId(entityType.getDomainId());
@@ -669,14 +633,13 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean updateEntityType(EntityType entityType) throws SharingRegistryException, TException {
+ public boolean updateEntityType(EntityTypeEntity entityType) throws SharingRegistryException {
try {
entityType.setUpdatedTime(System.currentTimeMillis());
EntityTypePK entityTypePK = new EntityTypePK();
entityTypePK.setDomainId(entityType.getDomainId());
entityTypePK.setEntityTypeId(entityType.getEntityTypeId());
- EntityType oldEntityType = (new EntityTypeRepository()).get(entityTypePK);
+ EntityTypeEntity oldEntityType = (new EntityTypeRepository()).get(entityTypePK);
entityType.setCreatedTime(oldEntityType.getCreatedTime());
entityType = getUpdatedObject(oldEntityType, entityType);
(new EntityTypeRepository()).update(entityType);
@@ -692,9 +655,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
*
* @param entityTypeId
*/
- @Override
- public boolean isEntityTypeExists(String domainId, String entityTypeId)
- throws SharingRegistryException, TException {
+ public boolean isEntityTypeExists(String domainId, String entityTypeId)
+ throws SharingRegistryException {
try {
EntityTypePK entityTypePK = new EntityTypePK();
entityTypePK.setDomainId(domainId);
@@ -706,8 +668,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean deleteEntityType(String domainId, String entityTypeId) throws SharingRegistryException, TException {
+ public boolean deleteEntityType(String domainId, String entityTypeId) throws SharingRegistryException {
try {
EntityTypePK entityTypePK = new EntityTypePK();
entityTypePK.setDomainId(domainId);
@@ -720,8 +681,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public EntityType getEntityType(String domainId, String entityTypeId) throws SharingRegistryException, TException {
+ public EntityTypeEntity getEntityType(String domainId, String entityTypeId) throws SharingRegistryException {
try {
EntityTypePK entityTypePK = new EntityTypePK();
entityTypePK.setDomainId(domainId);
@@ -733,8 +693,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public List<EntityType> getEntityTypes(String domain, int offset, int limit) throws TException {
+ public List<EntityTypeEntity> getEntityTypes(String domain, int offset, int limit) throws SharingRegistryException {
try {
HashMap<String, String> filters = new HashMap<>();
filters.put(DBConstants.EntityTypeTable.DOMAIN_ID, domain);
@@ -749,9 +708,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
* * Permission Operations
* *
*/
- @Override
- public String createPermissionType(PermissionType permissionType)
- throws SharingRegistryException, DuplicateEntryException, TException {
+ public String createPermissionType(PermissionTypeEntity permissionType)
+ throws SharingRegistryException, DuplicateEntryException {
try {
PermissionTypePK permissionTypePK = new PermissionTypePK();
permissionTypePK.setDomainId(permissionType.getDomainId());
@@ -768,14 +726,13 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean updatePermissionType(PermissionType permissionType) throws SharingRegistryException, TException {
+ public boolean updatePermissionType(PermissionTypeEntity permissionType) throws SharingRegistryException {
try {
permissionType.setUpdatedTime(System.currentTimeMillis());
PermissionTypePK permissionTypePK = new PermissionTypePK();
permissionTypePK.setDomainId(permissionType.getDomainId());
permissionTypePK.setPermissionTypeId(permissionType.getPermissionTypeId());
- PermissionType oldPermissionType = (new PermissionTypeRepository()).get(permissionTypePK);
+ PermissionTypeEntity oldPermissionType = (new PermissionTypeRepository()).get(permissionTypePK);
permissionType = getUpdatedObject(oldPermissionType, permissionType);
(new PermissionTypeRepository()).update(permissionType);
return true;
@@ -790,9 +747,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
*
* @param permissionId
*/
- @Override
- public boolean isPermissionExists(String domainId, String permissionId)
- throws SharingRegistryException, TException {
+ public boolean isPermissionExists(String domainId, String permissionId)
+ throws SharingRegistryException {
try {
PermissionTypePK permissionTypePK = new PermissionTypePK();
permissionTypePK.setDomainId(domainId);
@@ -804,9 +760,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean deletePermissionType(String domainId, String permissionTypeId)
- throws SharingRegistryException, TException {
+ public boolean deletePermissionType(String domainId, String permissionTypeId)
+ throws SharingRegistryException {
try {
PermissionTypePK permissionTypePK = new PermissionTypePK();
permissionTypePK.setDomainId(domainId);
@@ -819,9 +774,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public PermissionType getPermissionType(String domainId, String permissionTypeId)
- throws SharingRegistryException, TException {
+ public PermissionTypeEntity getPermissionType(String domainId, String permissionTypeId)
+ throws SharingRegistryException {
try {
PermissionTypePK permissionTypePK = new PermissionTypePK();
permissionTypePK.setDomainId(domainId);
@@ -833,9 +787,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public List<PermissionType> getPermissionTypes(String domain, int offset, int limit)
- throws SharingRegistryException, TException {
+ public List<PermissionTypeEntity> getPermissionTypes(String domain, int offset, int limit)
+ throws SharingRegistryException {
try {
HashMap<String, String> filters = new HashMap<>();
filters.put(DBConstants.PermissionTypeTable.DOMAIN_ID, domain);
@@ -847,24 +800,23 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
/**
- * * Entity Operations
+ * * EntityEntity Operations
* *
*/
- @Override
- public String createEntity(Entity entity) throws SharingRegistryException, DuplicateEntryException, TException {
+ public String createEntity(EntityEntity entity) throws SharingRegistryException, DuplicateEntryException {
try {
EntityPK entityPK = new EntityPK();
entityPK.setDomainId(entity.getDomainId());
entityPK.setEntityId(entity.getEntityId());
if ((new EntityRepository()).get(entityPK) != null)
- throw new DuplicateEntryException("There exist Entity with given Entity id");
+ throw new DuplicateEntryException("There exist EntityEntity with given EntityEntity id");
UserPK userPK = new UserPK();
userPK.setDomainId(entity.getDomainId());
userPK.setUserId(entity.getOwnerId());
if (!(new UserRepository()).isExists(userPK)) {
// Todo this is for Airavata easy integration. Proper thing is to throw an exception here
- User user = new User();
+ UserEntity user = new UserEntity();
user.setUserId(entity.getOwnerId());
user.setDomainId(entity.getDomainId());
user.setUserName(user.getUserId().split("@")[0]);
@@ -874,18 +826,18 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
entity.setCreatedTime(System.currentTimeMillis());
entity.setUpdatedTime(System.currentTimeMillis());
- if (entity.getOriginalEntityCreationTime() == 0) {
+ if (entity.getOriginalEntityCreationTime() == null || entity.getOriginalEntityCreationTime() == 0) {
entity.setOriginalEntityCreationTime(entity.getCreatedTime());
}
(new EntityRepository()).create(entity);
// Assigning global permission for the owner
- Sharing newSharing = new Sharing();
+ SharingEntity newSharing = new SharingEntity();
newSharing.setPermissionTypeId(
(new PermissionTypeRepository()).getOwnerPermissionTypeIdForDomain(entity.getDomainId()));
newSharing.setEntityId(entity.getEntityId());
newSharing.setGroupId(entity.getOwnerId());
- newSharing.setSharingType(SharingType.DIRECT_CASCADING);
+ newSharing.setSharingType(SharingType.DIRECT_CASCADING.name());
newSharing.setInheritedParentId(entity.getEntityId());
newSharing.setDomainId(entity.getDomainId());
newSharing.setCreatedTime(System.currentTimeMillis());
@@ -901,23 +853,22 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
return entity.getEntityId();
} catch (Throwable ex) {
logger.error(ex.getMessage(), ex);
- SharingRegistryException sharingRegistryException = new SharingRegistryException();
- sharingRegistryException.setMessage(ex.getMessage() + " Stack trace:" + ExceptionUtils.getStackTrace(ex));
- throw sharingRegistryException;
+
+ throw new SharingRegistryException(ex.getMessage() + " Stack trace:" + ExceptionUtils.getStackTrace(ex));
}
}
- private void addCascadingPermissionsForEntity(Entity entity) throws SharingRegistryException {
- Sharing newSharing;
- List<Sharing> sharings = (new SharingRepository())
+ private void addCascadingPermissionsForEntity(EntityEntity entity) throws SharingRegistryException {
+ SharingEntity newSharing;
+ List<SharingEntity> sharings = (new SharingRepository())
.getCascadingPermissionsForEntity(entity.getDomainId(), entity.getParentEntityId());
- for (Sharing sharing : sharings) {
- newSharing = new Sharing();
+ for (SharingEntity sharing : sharings) {
+ newSharing = new SharingEntity();
newSharing.setPermissionTypeId(sharing.getPermissionTypeId());
newSharing.setEntityId(entity.getEntityId());
newSharing.setGroupId(sharing.getGroupId());
newSharing.setInheritedParentId(sharing.getInheritedParentId());
- newSharing.setSharingType(SharingType.INDIRECT_CASCADING);
+ newSharing.setSharingType(SharingType.INDIRECT_CASCADING.name());
newSharing.setDomainId(entity.getDomainId());
newSharing.setCreatedTime(System.currentTimeMillis());
newSharing.setUpdatedTime(System.currentTimeMillis());
@@ -926,15 +877,14 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean updateEntity(Entity entity) throws SharingRegistryException, TException {
+ public boolean updateEntity(EntityEntity entity) throws SharingRegistryException {
try {
// TODO Check for permission changes
entity.setUpdatedTime(System.currentTimeMillis());
EntityPK entityPK = new EntityPK();
entityPK.setDomainId(entity.getDomainId());
entityPK.setEntityId(entity.getEntityId());
- Entity oldEntity = (new EntityRepository()).get(entityPK);
+ EntityEntity oldEntity = (new EntityRepository()).get(entityPK);
entity.setCreatedTime(oldEntity.getCreatedTime());
// check if parent entity changed and re-add inherited permissions
if (!Objects.equals(oldEntity.getParentEntityId(), entity.getParentEntityId())) {
@@ -957,7 +907,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
entity = getUpdatedObject(oldEntity, entity);
- entity.setSharedCount((new SharingRepository()).getSharedCount(entity.getDomainId(), entity.getEntityId()));
+ entity.setSharedCount((long) (new SharingRepository()).getSharedCount(entity.getDomainId(), entity.getEntityId()));
(new EntityRepository()).update(entity);
return true;
} catch (Throwable ex) {
@@ -967,12 +917,11 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
/**
- * <p>API method to check Entity Exists</p>
+ * <p>API method to check EntityEntity Exists</p>
*
* @param entityId
*/
- @Override
- public boolean isEntityExists(String domainId, String entityId) throws SharingRegistryException, TException {
+ public boolean isEntityExists(String domainId, String entityId) throws SharingRegistryException {
try {
EntityPK entityPK = new EntityPK();
entityPK.setDomainId(domainId);
@@ -984,8 +933,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean deleteEntity(String domainId, String entityId) throws SharingRegistryException, TException {
+ public boolean deleteEntity(String domainId, String entityId) throws SharingRegistryException {
try {
// TODO Check for permission changes
EntityPK entityPK = new EntityPK();
@@ -999,8 +947,7 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public Entity getEntity(String domainId, String entityId) throws SharingRegistryException, TException {
+ public EntityEntity getEntity(String domainId, String entityId) throws SharingRegistryException {
try {
EntityPK entityPK = new EntityPK();
entityPK.setDomainId(domainId);
@@ -1012,10 +959,9 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public List<Entity> searchEntities(
+ public List<EntityEntity> searchEntities(
String domainId, String userId, List<SearchCriteria> filters, int offset, int limit)
- throws SharingRegistryException, TException {
+ throws SharingRegistryException {
try {
List<String> groupIds = new ArrayList<>();
groupIds.add(userId);
@@ -1029,9 +975,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public List<User> getListOfSharedUsers(String domainId, String entityId, String permissionTypeId)
- throws SharingRegistryException, TException {
+ public List<UserEntity> getListOfSharedUsers(String domainId, String entityId, String permissionTypeId)
+ throws SharingRegistryException {
try {
return (new UserRepository()).getAccessibleUsers(domainId, entityId, permissionTypeId);
} catch (Throwable ex) {
@@ -1040,22 +985,19 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public List<User> getListOfDirectlySharedUsers(String domainId, String entityId, String permissionTypeId)
- throws SharingRegistryException, TException {
+ public List<UserEntity> getListOfDirectlySharedUsers(String domainId, String entityId, String permissionTypeId)
+ throws SharingRegistryException {
try {
return (new UserRepository()).getDirectlyAccessibleUsers(domainId, entityId, permissionTypeId);
} catch (Throwable ex) {
logger.error(ex.getMessage(), ex);
- SharingRegistryException sharingRegistryException = new SharingRegistryException();
- sharingRegistryException.setMessage(ex.getMessage() + " Stack trace:" + ExceptionUtils.getStackTrace(ex));
- throw sharingRegistryException;
+
+ throw new SharingRegistryException(ex.getMessage() + " Stack trace:" + ExceptionUtils.getStackTrace(ex));
}
}
- @Override
- public List<UserGroup> getListOfSharedGroups(String domainId, String entityId, String permissionTypeId)
- throws SharingRegistryException, TException {
+ public List<UserGroupEntity> getListOfSharedGroups(String domainId, String entityId, String permissionTypeId)
+ throws SharingRegistryException {
try {
return (new UserGroupRepository()).getAccessibleGroups(domainId, entityId, permissionTypeId);
} catch (Throwable ex) {
@@ -1064,21 +1006,19 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public List<UserGroup> getListOfDirectlySharedGroups(String domainId, String entityId, String permissionTypeId)
- throws SharingRegistryException, TException {
+ public List<UserGroupEntity> getListOfDirectlySharedGroups(String domainId, String entityId, String permissionTypeId)
+ throws SharingRegistryException {
try {
return (new UserGroupRepository()).getDirectlyAccessibleGroups(domainId, entityId, permissionTypeId);
} catch (Throwable ex) {
logger.error(ex.getMessage(), ex);
- SharingRegistryException sharingRegistryException = new SharingRegistryException();
- sharingRegistryException.setMessage(ex.getMessage() + " Stack trace:" + ExceptionUtils.getStackTrace(ex));
- throw sharingRegistryException;
+
+ throw new SharingRegistryException(ex.getMessage() + " Stack trace:" + ExceptionUtils.getStackTrace(ex));
}
}
/**
- * Sharing Entity with Users and Groups
+ * Sharing EntityEntity with Users and Groups
* @param domainId
* @param entityId
* @param userList
@@ -1086,12 +1026,11 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
* @param cascadePermission
* @return
* @throws SharingRegistryException
- * @throws TException
+ * @throws SharingRegistryException
*/
- @Override
- public boolean shareEntityWithUsers(
+ public boolean shareEntityWithUsers(
String domainId, String entityId, List<String> userList, String permissionTypeId, boolean cascadePermission)
- throws SharingRegistryException, TException {
+ throws SharingRegistryException {
try {
return shareEntity(domainId, entityId, userList, permissionTypeId, cascadePermission);
} catch (Throwable ex) {
@@ -1100,14 +1039,13 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean shareEntityWithGroups(
+ public boolean shareEntityWithGroups(
String domainId,
String entityId,
List<String> groupList,
String permissionTypeId,
boolean cascadePermission)
- throws SharingRegistryException, TException {
+ throws SharingRegistryException {
try {
return shareEntity(domainId, entityId, groupList, permissionTypeId, cascadePermission);
} catch (Throwable ex) {
@@ -1122,27 +1060,27 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
List<String> groupOrUserList,
String permissionTypeId,
boolean cascadePermission)
- throws SharingRegistryException, TException {
+ throws SharingRegistryException {
try {
if (permissionTypeId.equals((new PermissionTypeRepository()).getOwnerPermissionTypeIdForDomain(domainId))) {
throw new SharingRegistryException(OWNER_PERMISSION_NAME + " permission cannot be assigned or removed");
}
- List<Sharing> sharings = new ArrayList<>();
+ List<SharingEntity> sharings = new ArrayList<>();
// Adding permission for the specified users/groups for the specified entity
- LinkedList<Entity> temp = new LinkedList<>();
+ LinkedList<EntityEntity> temp = new LinkedList<>();
for (String userId : groupOrUserList) {
- Sharing sharing = new Sharing();
+ SharingEntity sharing = new SharingEntity();
sharing.setPermissionTypeId(permissionTypeId);
sharing.setEntityId(entityId);
sharing.setGroupId(userId);
sharing.setInheritedParentId(entityId);
sharing.setDomainId(domainId);
if (cascadePermission) {
- sharing.setSharingType(SharingType.DIRECT_CASCADING);
+ sharing.setSharingType(SharingType.DIRECT_CASCADING.name());
} else {
- sharing.setSharingType(SharingType.DIRECT_NON_CASCADING);
+ sharing.setSharingType(SharingType.DIRECT_NON_CASCADING.name());
}
sharing.setCreatedTime(System.currentTimeMillis());
sharing.setUpdatedTime(System.currentTimeMillis());
@@ -1155,15 +1093,15 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
(new EntityRepository())
.getChildEntities(domainId, entityId).stream().forEach(e -> temp.addLast(e));
while (temp.size() > 0) {
- Entity entity = temp.pop();
+ EntityEntity entity = temp.pop();
String childEntityId = entity.getEntityId();
for (String userId : groupOrUserList) {
- Sharing sharing = new Sharing();
+ SharingEntity sharing = new SharingEntity();
sharing.setPermissionTypeId(permissionTypeId);
sharing.setEntityId(childEntityId);
sharing.setGroupId(userId);
sharing.setInheritedParentId(entityId);
- sharing.setSharingType(SharingType.INDIRECT_CASCADING);
+ sharing.setSharingType(SharingType.INDIRECT_CASCADING.name());
sharing.setInheritedParentId(entityId);
sharing.setDomainId(domainId);
sharing.setCreatedTime(System.currentTimeMillis());
@@ -1180,8 +1118,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
EntityPK entityPK = new EntityPK();
entityPK.setDomainId(domainId);
entityPK.setEntityId(entityId);
- Entity entity = (new EntityRepository()).get(entityPK);
- entity.setSharedCount((new SharingRepository()).getSharedCount(domainId, entityId));
+ EntityEntity entity = (new EntityRepository()).get(entityPK);
+ entity.setSharedCount((long) (new SharingRepository()).getSharedCount(domainId, entityId));
(new EntityRepository()).update(entity);
return true;
} catch (Throwable ex) {
@@ -1190,10 +1128,9 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean revokeEntitySharingFromUsers(
+ public boolean revokeEntitySharingFromUsers(
String domainId, String entityId, List<String> userList, String permissionTypeId)
- throws SharingRegistryException, TException {
+ throws SharingRegistryException {
try {
if (permissionTypeId.equals((new PermissionTypeRepository()).getOwnerPermissionTypeIdForDomain(domainId))) {
throw new SharingRegistryException(OWNER_PERMISSION_NAME + " permission cannot be assigned or removed");
@@ -1205,10 +1142,9 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean revokeEntitySharingFromGroups(
+ public boolean revokeEntitySharingFromGroups(
String domainId, String entityId, List<String> groupList, String permissionTypeId)
- throws SharingRegistryException, TException {
+ throws SharingRegistryException {
try {
if (permissionTypeId.equals((new PermissionTypeRepository()).getOwnerPermissionTypeIdForDomain(domainId))) {
throw new SharingRegistryException(OWNER_PERMISSION_NAME + " permission cannot be assigned or removed");
@@ -1220,12 +1156,11 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
}
- @Override
- public boolean userHasAccess(String domainId, String userId, String entityId, String permissionTypeId)
- throws SharingRegistryException, TException {
+ public boolean userHasAccess(String domainId, String userId, String entityId, String permissionTypeId)
+ throws SharingRegistryException {
try {
// check whether the user has permission directly or indirectly
- List<GroupMembership> parentMemberships =
+ List<GroupMembershipEntity> parentMemberships =
(new GroupMembershipRepository()).getAllParentMembershipsForChild(domainId, userId);
List<String> groupIds = new ArrayList<>();
parentMemberships.stream().forEach(pm -> groupIds.add(pm.getParentId()));
@@ -1265,11 +1200,11 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
}
// revoking permission from inheritance
- List<Sharing> temp = new ArrayList<>();
+ List<SharingEntity> temp = new ArrayList<>();
(new SharingRepository())
.getIndirectSharedChildren(domainId, entityId, permissionTypeId).stream()
.forEach(s -> temp.add(s));
- for (Sharing sharing : temp) {
+ for (SharingEntity sharing : temp) {
String childEntityId = sharing.getEntityId();
for (String groupId : groupOrUserList) {
SharingPK sharingPK = new SharingPK();
@@ -1286,8 +1221,8 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
EntityPK entityPK = new EntityPK();
entityPK.setDomainId(domainId);
entityPK.setEntityId(entityId);
- Entity entity = (new EntityRepository()).get(entityPK);
- entity.setSharedCount((new SharingRepository()).getSharedCount(domainId, entityId));
+ EntityEntity entity = (new EntityRepository()).get(entityPK);
+ entity.setSharedCount((long) (new SharingRepository()).getSharedCount(domainId, entityId));
(new EntityRepository()).update(entity);
return true;
} catch (Throwable ex) {
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/handler/SharingServiceDBEventHandler.java b/airavata-api/src/main/java/org/apache/airavata/sharing/handler/SharingServiceDBEventHandler.java
index b5097bcf81..a3fca954bb 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/handler/SharingServiceDBEventHandler.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/handler/SharingServiceDBEventHandler.java
@@ -30,14 +30,8 @@ import org.apache.airavata.model.group.proto.ResourceType;
import org.apache.airavata.model.user.proto.UserProfile;
import org.apache.airavata.model.workspace.proto.Gateway;
import org.apache.airavata.model.workspace.proto.Project;
-import org.apache.airavata.sharing.registry.models.Domain;
-import org.apache.airavata.sharing.registry.models.DuplicateEntryException;
-import org.apache.airavata.sharing.registry.models.Entity;
-import org.apache.airavata.sharing.registry.models.PermissionType;
-import org.apache.airavata.sharing.registry.models.User;
-import org.apache.airavata.sharing.registry.service.cpi.SharingRegistryService;
+import org.apache.airavata.sharing.model.*;
import org.apache.airavata.sharing.util.ThriftDataModelConversion;
-import org.apache.thrift.TException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -48,9 +42,9 @@ public class SharingServiceDBEventHandler implements MessageHandler {
private static final Logger log = LoggerFactory.getLogger(SharingServiceDBEventHandler.class);
- private final SharingRegistryService.Iface sharingRegistryClient;
+ private final SharingRegistryServerHandler sharingRegistryClient;
- SharingServiceDBEventHandler() throws ApplicationSettingsException, TException {
+ SharingServiceDBEventHandler() throws ApplicationSettingsException, SharingRegistryException {
log.info("Initializing sharing registry handler.....");
sharingRegistryClient = new SharingRegistryServerHandler();
}
@@ -81,7 +75,7 @@ public class SharingServiceDBEventHandler implements MessageHandler {
.getPublisher()
.getPublisherContext()
.getEntityDataModel());
- User user = ThriftDataModelConversion.getUser(userProfile);
+ UserEntity user = ThriftDataModelConversion.getUser(userProfile);
switch (dBEventMessageContext
.getPublisher()
@@ -134,17 +128,10 @@ public class SharingServiceDBEventHandler implements MessageHandler {
if (sharingRegistryClient.isDomainExists(gateway.getGatewayId())) {
break;
}
- /*
- Following set of DB operations should happen in a transaction
- As these are thrift calls we cannot enforce this restriction
- If something goes wrong, message would get queued again and try to create
- DB entities which are already present. We catch DuplicateEntryException and
- log as a warning to handle such scenarios and move ahead.
- */
log.info("Creating domain. Id : " + gateway.getGatewayId());
- Domain domain = new Domain();
+ DomainEntity domain = new DomainEntity();
domain.setDomainId(gateway.getGatewayId());
domain.setName(gateway.getGatewayName());
domain.setDescription("Domain entry for " + domain.getName());
@@ -160,8 +147,7 @@ public class SharingServiceDBEventHandler implements MessageHandler {
// Creating Entity Types for each domain
log.info("Creating entity type. Id : " + domain.getDomainId() + ":PROJECT");
- org.apache.airavata.sharing.registry.models.EntityType entityType =
- new org.apache.airavata.sharing.registry.models.EntityType();
+ EntityTypeEntity entityType = new EntityTypeEntity();
entityType.setEntityTypeId(domain.getDomainId() + ":PROJECT");
entityType.setDomainId(domain.getDomainId());
entityType.setName("PROJECT");
@@ -178,7 +164,7 @@ public class SharingServiceDBEventHandler implements MessageHandler {
}
log.info("Creating entity type. Id : " + domain.getDomainId() + ":EXPERIMENT");
- entityType = new org.apache.airavata.sharing.registry.models.EntityType();
+ entityType = new EntityTypeEntity();
entityType.setEntityTypeId(domain.getDomainId() + ":EXPERIMENT");
entityType.setDomainId(domain.getDomainId());
entityType.setName("EXPERIMENT");
@@ -195,7 +181,7 @@ public class SharingServiceDBEventHandler implements MessageHandler {
}
log.info("Creating entity type. Id : " + domain.getDomainId() + ":FILE");
- entityType = new org.apache.airavata.sharing.registry.models.EntityType();
+ entityType = new EntityTypeEntity();
entityType.setEntityTypeId(domain.getDomainId() + ":FILE");
entityType.setDomainId(domain.getDomainId());
entityType.setName("FILE");
@@ -213,7 +199,7 @@ public class SharingServiceDBEventHandler implements MessageHandler {
log.info("Creating entity type. Id : " + domain.getDomainId() + ":"
+ ResourceType.APPLICATION_DEPLOYMENT);
- entityType = new org.apache.airavata.sharing.registry.models.EntityType();
+ entityType = new EntityTypeEntity();
entityType.setEntityTypeId(
domain.getDomainId() + ":" + ResourceType.APPLICATION_DEPLOYMENT.name());
entityType.setDomainId(domain.getDomainId());
@@ -223,7 +209,7 @@ public class SharingServiceDBEventHandler implements MessageHandler {
log.info("Creating entity type. Id : " + domain.getDomainId() + ":"
+ ResourceType.GROUP_RESOURCE_PROFILE);
- entityType = new org.apache.airavata.sharing.registry.models.EntityType();
+ entityType = new EntityTypeEntity();
entityType.setEntityTypeId(
domain.getDomainId() + ":" + ResourceType.GROUP_RESOURCE_PROFILE.name());
entityType.setDomainId(domain.getDomainId());
@@ -233,7 +219,7 @@ public class SharingServiceDBEventHandler implements MessageHandler {
log.info("Creating entity type. Id : " + domain.getDomainId() + ":"
+ ResourceType.CREDENTIAL_TOKEN);
- entityType = new org.apache.airavata.sharing.registry.models.EntityType();
+ entityType = new EntityTypeEntity();
entityType.setEntityTypeId(
domain.getDomainId() + ":" + ResourceType.CREDENTIAL_TOKEN.name());
entityType.setDomainId(domain.getDomainId());
@@ -243,7 +229,7 @@ public class SharingServiceDBEventHandler implements MessageHandler {
// Creating Permission Types for each domain
log.info("Creating Permission Type. Id : " + domain.getDomainId() + ":READ");
- PermissionType permissionType = new PermissionType();
+ PermissionTypeEntity permissionType = new PermissionTypeEntity();
permissionType.setPermissionTypeId(domain.getDomainId() + ":READ");
permissionType.setDomainId(domain.getDomainId());
permissionType.setName("READ");
@@ -260,7 +246,7 @@ public class SharingServiceDBEventHandler implements MessageHandler {
}
log.info("Creating Permission Type. Id : " + domain.getDomainId() + ":WRITE");
- permissionType = new PermissionType();
+ permissionType = new PermissionTypeEntity();
permissionType.setPermissionTypeId(domain.getDomainId() + ":WRITE");
permissionType.setDomainId(domain.getDomainId());
permissionType.setName("WRITE");
@@ -277,7 +263,7 @@ public class SharingServiceDBEventHandler implements MessageHandler {
}
log.info("Creating Permission Type. Id : " + domain.getDomainId() + ":MANAGE_SHARING");
- permissionType = new PermissionType();
+ permissionType = new PermissionTypeEntity();
permissionType.setPermissionTypeId(domain.getDomainId() + ":MANAGE_SHARING");
permissionType.setDomainId(domain.getDomainId());
permissionType.setName("MANAGE_SHARING");
@@ -316,7 +302,7 @@ public class SharingServiceDBEventHandler implements MessageHandler {
.getCrudType()) {
case CREATE:
case UPDATE:
- Entity entity = new Entity();
+ EntityEntity entity = new EntityEntity();
entity.setEntityId(entityId);
entity.setDomainId(domainId);
entity.setEntityTypeId(domainId + ":" + ResourceType.PROJECT.name());
@@ -367,7 +353,7 @@ public class SharingServiceDBEventHandler implements MessageHandler {
} catch (InvalidProtocolBufferException e) {
log.error("Error parsing proto message", e);
- } catch (TException e) {
+ } catch (SharingRegistryException e) {
log.error("Error processing message.", e);
} catch (ApplicationSettingsException e) {
log.error("Error fetching application settings.", e);
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/handler/SharingServiceDBEventMessagingFactory.java b/airavata-api/src/main/java/org/apache/airavata/sharing/handler/SharingServiceDBEventMessagingFactory.java
index 6403ed5bc6..7a841b831f 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/handler/SharingServiceDBEventMessagingFactory.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/handler/SharingServiceDBEventMessagingFactory.java
@@ -32,7 +32,6 @@ import org.apache.airavata.model.dbevent.DBEventMessageContext;
import org.apache.airavata.model.dbevent.DBEventSubscriber;
import org.apache.airavata.model.dbevent.DBEventType;
import org.apache.airavata.model.messaging.event.proto.MessageType;
-import org.apache.thrift.TException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -66,13 +65,17 @@ public class SharingServiceDBEventMessagingFactory {
return dbEventPublisher;
}
- public static Subscriber getDBEventSubscriber() throws AiravataException, TException {
+ public static Subscriber getDBEventSubscriber() throws AiravataException {
if (null == sharingServiceDBEventSubscriber) {
synchronized (SharingServiceDBEventMessagingFactory.class) {
if (null == sharingServiceDBEventSubscriber) {
log.info("Creating DB Event publisher.....");
- sharingServiceDBEventSubscriber = MessagingFactory.getDBEventSubscriber(
- new SharingServiceDBEventHandler(), DBEventService.SHARING.toString());
+ try {
+ sharingServiceDBEventSubscriber = MessagingFactory.getDBEventSubscriber(
+ new SharingServiceDBEventHandler(), DBEventService.SHARING.toString());
+ } catch (org.apache.airavata.sharing.model.SharingRegistryException e) {
+ throw new AiravataException("Failed to create SharingServiceDBEventHandler", e);
+ }
log.info("DB Event publisher created");
}
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/mapper/SharingMapper.java b/airavata-api/src/main/java/org/apache/airavata/sharing/mapper/SharingMapper.java
deleted file mode 100644
index cb2eddc36a..0000000000
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/mapper/SharingMapper.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.sharing.mapper;
-
-import org.apache.airavata.sharing.model.*;
-import org.apache.airavata.sharing.registry.models.Domain;
-import org.apache.airavata.sharing.registry.models.Entity;
-import org.apache.airavata.sharing.registry.models.EntityType;
-import org.apache.airavata.sharing.registry.models.GroupAdmin;
-import org.apache.airavata.sharing.registry.models.GroupMembership;
-import org.apache.airavata.sharing.registry.models.PermissionType;
-import org.apache.airavata.sharing.registry.models.Sharing;
-import org.apache.airavata.sharing.registry.models.User;
-import org.apache.airavata.sharing.registry.models.UserGroup;
-import org.mapstruct.Mapper;
-import org.mapstruct.ReportingPolicy;
-import org.mapstruct.factory.Mappers;
-
-@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
-public interface SharingMapper {
-
- SharingMapper INSTANCE = Mappers.getMapper(SharingMapper.class);
-
- // --- Domain ---
- Domain domainToModel(DomainEntity entity);
-
- DomainEntity domainToEntity(Domain model);
-
- // --- User ---
- User userToModel(UserEntity entity);
-
- UserEntity userToEntity(User model);
-
- // --- UserGroup ---
- UserGroup userGroupToModel(UserGroupEntity entity);
-
- UserGroupEntity userGroupToEntity(UserGroup model);
-
- // --- GroupAdmin ---
- GroupAdmin groupAdminToModel(GroupAdminEntity entity);
-
- GroupAdminEntity groupAdminToEntity(GroupAdmin model);
-
- // --- GroupMembership ---
- GroupMembership groupMembershipToModel(GroupMembershipEntity entity);
-
- GroupMembershipEntity groupMembershipToEntity(GroupMembership model);
-
- // --- EntityType ---
- EntityType entityTypeToModel(EntityTypeEntity entity);
-
- EntityTypeEntity entityTypeToEntity(EntityType model);
-
- // --- Entity ---
- Entity entityToModel(EntityEntity entity);
-
- EntityEntity entityToEntity(Entity model);
-
- // --- PermissionType ---
- PermissionType permissionTypeToModel(PermissionTypeEntity entity);
-
- PermissionTypeEntity permissionTypeToEntity(PermissionType model);
-
- // --- Sharing ---
- Sharing sharingToModel(SharingEntity entity);
-
- SharingEntity sharingToEntity(Sharing model);
-}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/model/DuplicateEntryException.java b/airavata-api/src/main/java/org/apache/airavata/sharing/model/DuplicateEntryException.java
new file mode 100644
index 0000000000..4e2643b4f6
--- /dev/null
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/model/DuplicateEntryException.java
@@ -0,0 +1,16 @@
+package org.apache.airavata.sharing.model;
+
+/**
+ * Exception thrown when attempting to create a duplicate entry.
+ * Replaces the Thrift-generated exception of the same name.
+ */
+public class DuplicateEntryException extends Exception {
+
+ public DuplicateEntryException(String message) {
+ super(message);
+ }
+
+ public DuplicateEntryException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/model/EntitySearchField.java b/airavata-api/src/main/java/org/apache/airavata/sharing/model/EntitySearchField.java
new file mode 100644
index 0000000000..24566a83cc
--- /dev/null
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/model/EntitySearchField.java
@@ -0,0 +1,14 @@
+package org.apache.airavata.sharing.model;
+
+public enum EntitySearchField {
+ NAME,
+ DESCRIPTION,
+ FULL_TEXT,
+ PARRENT_ENTITY_ID,
+ OWNER_ID,
+ PERMISSION_TYPE_ID,
+ CREATED_TIME,
+ UPDATED_TIME,
+ ENTITY_TYPE_ID,
+ SHARED_COUNT
+}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/model/GroupCardinality.java b/airavata-api/src/main/java/org/apache/airavata/sharing/model/GroupCardinality.java
new file mode 100644
index 0000000000..d330655701
--- /dev/null
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/model/GroupCardinality.java
@@ -0,0 +1,6 @@
+package org.apache.airavata.sharing.model;
+
+public enum GroupCardinality {
+ SINGLE_USER,
+ MULTI_USER
+}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/model/GroupChildType.java b/airavata-api/src/main/java/org/apache/airavata/sharing/model/GroupChildType.java
new file mode 100644
index 0000000000..2f5023cc30
--- /dev/null
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/model/GroupChildType.java
@@ -0,0 +1,6 @@
+package org.apache.airavata.sharing.model;
+
+public enum GroupChildType {
+ USER,
+ GROUP
+}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/model/GroupType.java b/airavata-api/src/main/java/org/apache/airavata/sharing/model/GroupType.java
new file mode 100644
index 0000000000..8cbcd46e94
--- /dev/null
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/model/GroupType.java
@@ -0,0 +1,6 @@
+package org.apache.airavata.sharing.model;
+
+public enum GroupType {
+ DOMAIN_LEVEL_GROUP,
+ USER_LEVEL_GROUP
+}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/model/SearchCondition.java b/airavata-api/src/main/java/org/apache/airavata/sharing/model/SearchCondition.java
new file mode 100644
index 0000000000..f1c0b0895b
--- /dev/null
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/model/SearchCondition.java
@@ -0,0 +1,10 @@
+package org.apache.airavata.sharing.model;
+
+public enum SearchCondition {
+ EQUAL,
+ LIKE,
+ FULL_TEXT_SEARCH,
+ GTE,
+ LTE,
+ NOT
+}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/model/SearchCriteria.java b/airavata-api/src/main/java/org/apache/airavata/sharing/model/SearchCriteria.java
new file mode 100644
index 0000000000..948dfe6c8b
--- /dev/null
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/model/SearchCriteria.java
@@ -0,0 +1,37 @@
+package org.apache.airavata.sharing.model;
+
+/**
+ * Container for search criteria, replacing the Thrift-generated SearchCriteria.
+ */
+public class SearchCriteria {
+
+ private EntitySearchField searchField;
+ private String value;
+ private SearchCondition searchCondition;
+
+ public SearchCriteria() {}
+
+ public EntitySearchField getSearchField() {
+ return searchField;
+ }
+
+ public void setSearchField(EntitySearchField searchField) {
+ this.searchField = searchField;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ public SearchCondition getSearchCondition() {
+ return searchCondition;
+ }
+
+ public void setSearchCondition(SearchCondition searchCondition) {
+ this.searchCondition = searchCondition;
+ }
+}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/model/SharingRegistryException.java b/airavata-api/src/main/java/org/apache/airavata/sharing/model/SharingRegistryException.java
new file mode 100644
index 0000000000..d4522487a3
--- /dev/null
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/model/SharingRegistryException.java
@@ -0,0 +1,16 @@
+package org.apache.airavata.sharing.model;
+
+/**
+ * Exception thrown by the sharing registry when an operation fails.
+ * Replaces the Thrift-generated exception of the same name.
+ */
+public class SharingRegistryException extends Exception {
+
+ public SharingRegistryException(String message) {
+ super(message);
+ }
+
+ public SharingRegistryException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/model/SharingType.java b/airavata-api/src/main/java/org/apache/airavata/sharing/model/SharingType.java
new file mode 100644
index 0000000000..d775829b6e
--- /dev/null
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/model/SharingType.java
@@ -0,0 +1,7 @@
+package org.apache.airavata.sharing.model;
+
+public enum SharingType {
+ DIRECT_NON_CASCADING,
+ DIRECT_CASCADING,
+ INDIRECT_CASCADING
+}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/AbstractRepository.java b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/AbstractRepository.java
index bde491a48b..7342d23a8d 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/AbstractRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/AbstractRepository.java
@@ -26,52 +26,43 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.airavata.common.db.EntityManagerFactoryHolder;
-import org.apache.airavata.sharing.registry.models.SharingRegistryException;
+import org.apache.airavata.sharing.model.SharingRegistryException;
import org.apache.airavata.sharing.util.Committer;
import org.apache.airavata.sharing.util.DBConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public abstract class AbstractRepository<T, E, Id> {
+public abstract class AbstractRepository<E, Id> {
private static final Logger logger = LoggerFactory.getLogger(AbstractRepository.class);
- private Class<E> dbEntityGenericClass;
+ private Class<E> entityClass;
- public AbstractRepository(Class<T> thriftGenericClass, Class<E> dbEntityGenericClass) {
- this.dbEntityGenericClass = dbEntityGenericClass;
+ public AbstractRepository(Class<E> entityClass) {
+ this.entityClass = entityClass;
}
- /** Convert a JPA entity to the Thrift/model object. */
- protected abstract T toModel(E entity);
-
- /** Convert a Thrift/model object to a JPA entity. */
- protected abstract E toEntity(T model);
-
- public T create(T t) throws SharingRegistryException {
- return update(t);
+ public E create(E entity) throws SharingRegistryException {
+ return update(entity);
}
- // FIXME do a bulk insert
- public List<T> create(List<T> tList) throws SharingRegistryException {
- return update(tList);
+ public List<E> create(List<E> entities) throws SharingRegistryException {
+ return update(entities);
}
- public T update(T t) throws SharingRegistryException {
- E entity = toEntity(t);
+ public E update(E entity) throws SharingRegistryException {
E persistedCopy = execute(entityManager -> entityManager.merge(entity));
- return toModel(persistedCopy);
+ return persistedCopy;
}
- // FIXME do a bulk update
- public List<T> update(List<T> tList) throws SharingRegistryException {
- List<T> returnList = new ArrayList<>();
- for (T temp : tList) returnList.add(update(temp));
+ public List<E> update(List<E> entities) throws SharingRegistryException {
+ List<E> returnList = new ArrayList<>();
+ for (E entity : entities) returnList.add(update(entity));
return returnList;
}
public boolean delete(Id id) throws SharingRegistryException {
execute(entityManager -> {
- E entity = entityManager.find(dbEntityGenericClass, id);
+ E entity = entityManager.find(entityClass, id);
entityManager.remove(entity);
return entity;
});
@@ -83,32 +74,27 @@ public abstract class AbstractRepository<T, E, Id> {
return true;
}
- public T get(Id id) throws SharingRegistryException {
+ public E get(Id id) throws SharingRegistryException {
EntityManager testEM = EntityManagerFactoryHolder.getTestEntityManager();
if (testEM != null && testEM.isOpen()) {
testEM.clear();
- E entity = testEM.find(dbEntityGenericClass, id);
- if (entity == null) return null;
- return toModel(entity);
+ return testEM.find(entityClass, id);
}
- return execute(entityManager -> {
- E entity = entityManager.find(dbEntityGenericClass, id);
- if (entity == null) return null;
- return toModel(entity);
- });
+ return execute(entityManager -> entityManager.find(entityClass, id));
}
public boolean isExists(Id id) throws SharingRegistryException {
return get(id) != null;
}
- public List<T> get(List<Id> idList) throws SharingRegistryException {
- List<T> returnList = new ArrayList<>();
+ public List<E> get(List<Id> idList) throws SharingRegistryException {
+ List<E> returnList = new ArrayList<>();
for (Id id : idList) returnList.add(get(id));
return returnList;
}
- public List<T> select(Map<String, String> filters, int offset, int limit) throws SharingRegistryException {
+ @SuppressWarnings("unchecked")
+ public List<E> select(Map<String, String> filters, int offset, int limit) throws SharingRegistryException {
String query = "SELECT DISTINCT p from " + getEntityName() + " as p";
ArrayList<String> parameters = new ArrayList<>();
int parameterCount = 1;
@@ -132,12 +118,11 @@ public abstract class AbstractRepository<T, E, Id> {
}
return q.setFirstResult(offset).setMaxResults(newLimit).getResultList();
});
- List<T> gatewayList = new ArrayList<>();
- resultSet.stream().forEach(rs -> gatewayList.add(toModel((E) rs)));
- return gatewayList;
+ return new ArrayList<>(resultSet);
}
- public List<T> select(String queryString, Map<String, Object> queryParameters, int offset, int limit)
+ @SuppressWarnings("unchecked")
+ public List<E> select(String queryString, Map<String, Object> queryParameters, int offset, int limit)
throws SharingRegistryException {
int newLimit = limit < 0 ? DBConstants.SELECT_MAX_ROWS : limit;
List resultSet = execute(entityManager -> {
@@ -147,9 +132,7 @@ public abstract class AbstractRepository<T, E, Id> {
}
return q.setFirstResult(offset).setMaxResults(newLimit).getResultList();
});
- List<T> gatewayList = new ArrayList<>();
- resultSet.stream().forEach(rs -> gatewayList.add(toModel((E) rs)));
- return gatewayList;
+ return new ArrayList<>(resultSet);
}
public <R> R execute(Committer<EntityManager, R> committer) throws SharingRegistryException {
@@ -185,10 +168,10 @@ public abstract class AbstractRepository<T, E, Id> {
* Falls back to the simple class name when no explicit name is set.
*/
private String getEntityName() {
- Entity annotation = dbEntityGenericClass.getAnnotation(Entity.class);
+ Entity annotation = entityClass.getAnnotation(Entity.class);
if (annotation != null && !annotation.name().isEmpty()) {
return annotation.name();
}
- return dbEntityGenericClass.getSimpleName();
+ return entityClass.getSimpleName();
}
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/DomainRepository.java b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/DomainRepository.java
index 9acf5ac266..f2a2d7c808 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/DomainRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/DomainRepository.java
@@ -19,26 +19,14 @@
*/
package org.apache.airavata.sharing.repository;
-import org.apache.airavata.sharing.mapper.SharingMapper;
import org.apache.airavata.sharing.model.DomainEntity;
-import org.apache.airavata.sharing.registry.models.Domain;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class DomainRepository extends AbstractRepository<Domain, DomainEntity, String> {
+public class DomainRepository extends AbstractRepository<DomainEntity, String> {
private static final Logger logger = LoggerFactory.getLogger(DomainRepository.class);
public DomainRepository() {
- super(Domain.class, DomainEntity.class);
- }
-
- @Override
- protected Domain toModel(DomainEntity entity) {
- return SharingMapper.INSTANCE.domainToModel(entity);
- }
-
- @Override
- protected DomainEntity toEntity(Domain model) {
- return SharingMapper.INSTANCE.domainToEntity(model);
+ super(DomainEntity.class);
}
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/EntityRepository.java b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/EntityRepository.java
index ed1a9417da..4b441369e7 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/EntityRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/EntityRepository.java
@@ -20,29 +20,16 @@
package org.apache.airavata.sharing.repository;
import java.util.*;
-import org.apache.airavata.sharing.mapper.SharingMapper;
-import org.apache.airavata.sharing.model.EntityEntity;
-import org.apache.airavata.sharing.model.EntityPK;
-import org.apache.airavata.sharing.registry.models.*;
+import org.apache.airavata.sharing.model.*;
import org.apache.airavata.sharing.util.DBConstants;
-public class EntityRepository extends AbstractRepository<Entity, EntityEntity, EntityPK> {
+public class EntityRepository extends AbstractRepository<EntityEntity, EntityPK> {
public EntityRepository() {
- super(Entity.class, EntityEntity.class);
+ super(EntityEntity.class);
}
- @Override
- protected Entity toModel(EntityEntity entity) {
- return SharingMapper.INSTANCE.entityToModel(entity);
- }
-
- @Override
- protected EntityEntity toEntity(Entity model) {
- return SharingMapper.INSTANCE.entityToEntity(model);
- }
-
- public List<Entity> getChildEntities(String domainId, String parentId) throws SharingRegistryException {
+ public List<EntityEntity> getChildEntities(String domainId, String parentId) throws SharingRegistryException {
HashMap<String, String> filters = new HashMap<>();
filters.put(DBConstants.EntityTable.DOMAIN_ID, domainId);
filters.put(DBConstants.EntityTable.PARENT_ENTITY_ID, parentId);
@@ -50,7 +37,8 @@ public class EntityRepository extends AbstractRepository<Entity, EntityEntity, E
}
// TODO Replace with prepared statements
- public List<Entity> searchEntities(
+ @SuppressWarnings("unchecked")
+ public List<EntityEntity> searchEntities(
String domainId, List<String> groupIds, List<SearchCriteria> filters, int offset, int limit)
throws SharingRegistryException {
String groupIdString = "'";
@@ -147,12 +135,12 @@ public class EntityRepository extends AbstractRepository<Entity, EntityEntity, E
.setFirstResult(offset)
.setMaxResults(newLimit)
.getResultList());
- List<Entity> resultSet = new ArrayList<>();
+ List<EntityEntity> resultSet = new ArrayList<>();
HashMap<String, Object> keys = new HashMap<>();
temp.stream().forEach(rs -> {
- Entity entity = new Entity();
+ EntityEntity entity = new EntityEntity();
entity.setEntityId((String) (rs[0]));
entity.setDomainId((String) (rs[1]));
entity.setEntityTypeId((String) (rs[2]));
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/EntityTypeRepository.java b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/EntityTypeRepository.java
index fe8001a5e3..7c8a9ca3c7 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/EntityTypeRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/EntityTypeRepository.java
@@ -19,27 +19,15 @@
*/
package org.apache.airavata.sharing.repository;
-import org.apache.airavata.sharing.mapper.SharingMapper;
import org.apache.airavata.sharing.model.EntityTypeEntity;
import org.apache.airavata.sharing.model.EntityTypePK;
-import org.apache.airavata.sharing.registry.models.EntityType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class EntityTypeRepository extends AbstractRepository<EntityType, EntityTypeEntity, EntityTypePK> {
+public class EntityTypeRepository extends AbstractRepository<EntityTypeEntity, EntityTypePK> {
private static final Logger logger = LoggerFactory.getLogger(EntityTypeRepository.class);
public EntityTypeRepository() {
- super(EntityType.class, EntityTypeEntity.class);
- }
-
- @Override
- protected EntityType toModel(EntityTypeEntity entity) {
- return SharingMapper.INSTANCE.entityTypeToModel(entity);
- }
-
- @Override
- protected EntityTypeEntity toEntity(EntityType model) {
- return SharingMapper.INSTANCE.entityTypeToEntity(model);
+ super(EntityTypeEntity.class);
}
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/GroupAdminRepository.java b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/GroupAdminRepository.java
index 772aa59775..b12443874f 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/GroupAdminRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/GroupAdminRepository.java
@@ -19,28 +19,16 @@
*/
package org.apache.airavata.sharing.repository;
-import org.apache.airavata.sharing.mapper.SharingMapper;
import org.apache.airavata.sharing.model.GroupAdminEntity;
import org.apache.airavata.sharing.model.GroupAdminPK;
-import org.apache.airavata.sharing.registry.models.GroupAdmin;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class GroupAdminRepository extends AbstractRepository<GroupAdmin, GroupAdminEntity, GroupAdminPK> {
+public class GroupAdminRepository extends AbstractRepository<GroupAdminEntity, GroupAdminPK> {
private static final Logger logger = LoggerFactory.getLogger(GroupAdminRepository.class);
public GroupAdminRepository() {
- super(GroupAdmin.class, GroupAdminEntity.class);
- }
-
- @Override
- protected GroupAdmin toModel(GroupAdminEntity entity) {
- return SharingMapper.INSTANCE.groupAdminToModel(entity);
- }
-
- @Override
- protected GroupAdminEntity toEntity(GroupAdmin model) {
- return SharingMapper.INSTANCE.groupAdminToEntity(model);
+ super(GroupAdminEntity.class);
}
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/GroupMembershipRepository.java b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/GroupMembershipRepository.java
index 6fbdcd8944..b29dd2f996 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/GroupMembershipRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/GroupMembershipRepository.java
@@ -20,31 +20,17 @@
package org.apache.airavata.sharing.repository;
import java.util.*;
-import org.apache.airavata.sharing.mapper.SharingMapper;
-import org.apache.airavata.sharing.model.GroupMembershipEntity;
-import org.apache.airavata.sharing.model.GroupMembershipPK;
-import org.apache.airavata.sharing.model.UserGroupEntity;
-import org.apache.airavata.sharing.registry.models.*;
+import org.apache.airavata.sharing.model.*;
import org.apache.airavata.sharing.util.DBConstants;
public class GroupMembershipRepository
- extends AbstractRepository<GroupMembership, GroupMembershipEntity, GroupMembershipPK> {
+ extends AbstractRepository<GroupMembershipEntity, GroupMembershipPK> {
public GroupMembershipRepository() {
- super(GroupMembership.class, GroupMembershipEntity.class);
+ super(GroupMembershipEntity.class);
}
- @Override
- protected GroupMembership toModel(GroupMembershipEntity entity) {
- return SharingMapper.INSTANCE.groupMembershipToModel(entity);
- }
-
- @Override
- protected GroupMembershipEntity toEntity(GroupMembership model) {
- return SharingMapper.INSTANCE.groupMembershipToEntity(model);
- }
-
- public List<User> getAllChildUsers(String domainId, String groupId) throws SharingRegistryException {
+ public List<UserEntity> getAllChildUsers(String domainId, String groupId) throws SharingRegistryException {
String queryString = "SELECT DISTINCT U FROM " + "SharingUserEntity" + " U, "
+ GroupMembershipEntity.class.getSimpleName()
+ " GM WHERE GM." + DBConstants.GroupMembershipTable.CHILD_ID + " = U." + DBConstants.UserTable.USER_ID
@@ -61,11 +47,10 @@ public class GroupMembershipRepository
queryParameters.put(DBConstants.GroupMembershipTable.PARENT_ID, groupId);
queryParameters.put(DBConstants.GroupMembershipTable.CHILD_TYPE, GroupChildType.USER.toString());
UserRepository userRepository = new UserRepository();
- List<User> users = userRepository.select(queryString, queryParameters, 0, -1);
- return users;
+ return userRepository.select(queryString, queryParameters, 0, -1);
}
- public List<UserGroup> getAllChildGroups(String domainId, String groupId) throws SharingRegistryException {
+ public List<UserGroupEntity> getAllChildGroups(String domainId, String groupId) throws SharingRegistryException {
String queryString = "SELECT DISTINCT G FROM " + UserGroupEntity.class.getSimpleName() + " G, "
+ GroupMembershipEntity.class.getSimpleName()
+ " GM WHERE GM." + DBConstants.GroupMembershipTable.CHILD_ID + " = G."
@@ -82,11 +67,10 @@ public class GroupMembershipRepository
queryParameters.put(DBConstants.GroupMembershipTable.PARENT_ID, groupId);
queryParameters.put(DBConstants.GroupMembershipTable.CHILD_TYPE, GroupChildType.GROUP.toString());
UserGroupRepository userGroupRepository = new UserGroupRepository();
- List<UserGroup> groups = userGroupRepository.select(queryString, queryParameters, 0, -1);
- return groups;
+ return userGroupRepository.select(queryString, queryParameters, 0, -1);
}
- public List<UserGroup> getAllMemberGroupsForUser(String domainId, String userId) throws SharingRegistryException {
+ public List<UserGroupEntity> getAllMemberGroupsForUser(String domainId, String userId) throws SharingRegistryException {
String queryString = "SELECT DISTINCT G FROM " + UserGroupEntity.class.getSimpleName() + " G, "
+ GroupMembershipEntity.class.getSimpleName()
+ " GM WHERE GM." + DBConstants.GroupMembershipTable.PARENT_ID + " = G."
@@ -105,20 +89,19 @@ public class GroupMembershipRepository
queryParameters.put(DBConstants.GroupMembershipTable.CHILD_TYPE, GroupChildType.USER.toString());
queryParameters.put(DBConstants.UserGroupTable.GROUP_CARDINALITY, GroupCardinality.MULTI_USER.name());
UserGroupRepository userGroupRepository = new UserGroupRepository();
- List<UserGroup> groups = userGroupRepository.select(queryString, queryParameters, 0, -1);
- return groups;
+ return userGroupRepository.select(queryString, queryParameters, 0, -1);
}
- public List<GroupMembership> getAllParentMembershipsForChild(String domainId, String childId)
+ public List<GroupMembershipEntity> getAllParentMembershipsForChild(String domainId, String childId)
throws SharingRegistryException {
- List<GroupMembership> finalParentGroups = new ArrayList<>();
+ List<GroupMembershipEntity> finalParentGroups = new ArrayList<>();
Map<String, String> filters = new HashMap<>();
filters.put(DBConstants.GroupMembershipTable.CHILD_ID, childId);
filters.put(DBConstants.GroupMembershipTable.DOMAIN_ID, domainId);
- LinkedList<GroupMembership> temp = new LinkedList<>();
+ LinkedList<GroupMembershipEntity> temp = new LinkedList<>();
select(filters, 0, -1).stream().forEach(m -> temp.addLast(m));
while (temp.size() > 0) {
- GroupMembership gm = temp.pop();
+ GroupMembershipEntity gm = temp.pop();
filters = new HashMap<>();
filters.put(DBConstants.GroupMembershipTable.CHILD_ID, gm.getParentId());
filters.put(DBConstants.GroupMembershipTable.DOMAIN_ID, domainId);
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/PermissionTypeRepository.java b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/PermissionTypeRepository.java
index fee082e6ba..5ea4d8bd40 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/PermissionTypeRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/PermissionTypeRepository.java
@@ -22,38 +22,26 @@ package org.apache.airavata.sharing.repository;
import java.util.HashMap;
import java.util.List;
import org.apache.airavata.sharing.handler.SharingRegistryServerHandler;
-import org.apache.airavata.sharing.mapper.SharingMapper;
import org.apache.airavata.sharing.model.PermissionTypeEntity;
import org.apache.airavata.sharing.model.PermissionTypePK;
-import org.apache.airavata.sharing.registry.models.PermissionType;
-import org.apache.airavata.sharing.registry.models.SharingRegistryException;
+import org.apache.airavata.sharing.model.SharingRegistryException;
import org.apache.airavata.sharing.util.DBConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class PermissionTypeRepository
- extends AbstractRepository<PermissionType, PermissionTypeEntity, PermissionTypePK> {
+ extends AbstractRepository<PermissionTypeEntity, PermissionTypePK> {
private static final Logger logger = LoggerFactory.getLogger(PermissionTypeRepository.class);
public PermissionTypeRepository() {
- super(PermissionType.class, PermissionTypeEntity.class);
- }
-
- @Override
- protected PermissionType toModel(PermissionTypeEntity entity) {
- return SharingMapper.INSTANCE.permissionTypeToModel(entity);
- }
-
- @Override
- protected PermissionTypeEntity toEntity(PermissionType model) {
- return SharingMapper.INSTANCE.permissionTypeToEntity(model);
+ super(PermissionTypeEntity.class);
}
public String getOwnerPermissionTypeIdForDomain(String domainId) throws SharingRegistryException {
HashMap<String, String> filters = new HashMap<>();
filters.put(DBConstants.PermissionTypeTable.DOMAIN_ID, domainId);
filters.put(DBConstants.PermissionTypeTable.NAME, SharingRegistryServerHandler.OWNER_PERMISSION_NAME);
- List<PermissionType> permissionTypeList = select(filters, 0, -1);
+ List<PermissionTypeEntity> permissionTypeList = select(filters, 0, -1);
if (permissionTypeList.size() != 1) {
throw new SharingRegistryException("GLOBAL Permission inconsistency. Found " + permissionTypeList.size()
+ " records with " + SharingRegistryServerHandler.OWNER_PERMISSION_NAME + " name");
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/SharingRepository.java b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/SharingRepository.java
index 2b05a754f0..5554468647 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/SharingRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/SharingRepository.java
@@ -23,34 +23,22 @@ import jakarta.persistence.Query;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.airavata.sharing.mapper.SharingMapper;
import org.apache.airavata.sharing.model.SharingEntity;
import org.apache.airavata.sharing.model.SharingPK;
-import org.apache.airavata.sharing.registry.models.Sharing;
-import org.apache.airavata.sharing.registry.models.SharingRegistryException;
-import org.apache.airavata.sharing.registry.models.SharingType;
+import org.apache.airavata.sharing.model.SharingRegistryException;
+import org.apache.airavata.sharing.model.SharingType;
import org.apache.airavata.sharing.util.DBConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class SharingRepository extends AbstractRepository<Sharing, SharingEntity, SharingPK> {
+public class SharingRepository extends AbstractRepository<SharingEntity, SharingPK> {
private static final Logger logger = LoggerFactory.getLogger(SharingRepository.class);
public SharingRepository() {
- super(Sharing.class, SharingEntity.class);
+ super(SharingEntity.class);
}
- @Override
- protected Sharing toModel(SharingEntity entity) {
- return SharingMapper.INSTANCE.sharingToModel(entity);
- }
-
- @Override
- protected SharingEntity toEntity(Sharing model) {
- return SharingMapper.INSTANCE.sharingToEntity(model);
- }
-
- public List<Sharing> getIndirectSharedChildren(String domainId, String parentId, String permissionTypeId)
+ public List<SharingEntity> getIndirectSharedChildren(String domainId, String parentId, String permissionTypeId)
throws SharingRegistryException {
HashMap<String, String> filters = new HashMap<>();
filters.put(DBConstants.SharingTable.DOMAIN_ID, domainId);
@@ -61,7 +49,7 @@ public class SharingRepository extends AbstractRepository<Sharing, SharingEntity
return select(filters, 0, -1);
}
- public List<Sharing> getCascadingPermissionsForEntity(String domainId, String entityId)
+ public List<SharingEntity> getCascadingPermissionsForEntity(String domainId, String entityId)
throws SharingRegistryException {
String query = "SELECT DISTINCT p from " + SharingEntity.class.getSimpleName() + " as p";
query += " WHERE ";
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/UserGroupRepository.java b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/UserGroupRepository.java
index 7d43ca4262..321007df93 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/UserGroupRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/UserGroupRepository.java
@@ -24,47 +24,30 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
-import org.apache.airavata.sharing.mapper.SharingMapper;
-import org.apache.airavata.sharing.model.SharingEntity;
-import org.apache.airavata.sharing.model.UserGroupEntity;
-import org.apache.airavata.sharing.model.UserGroupPK;
-import org.apache.airavata.sharing.registry.models.GroupCardinality;
-import org.apache.airavata.sharing.registry.models.SharingRegistryException;
-import org.apache.airavata.sharing.registry.models.SharingType;
-import org.apache.airavata.sharing.registry.models.UserGroup;
+import org.apache.airavata.sharing.model.*;
import org.apache.airavata.sharing.util.DBConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class UserGroupRepository extends AbstractRepository<UserGroup, UserGroupEntity, UserGroupPK> {
+public class UserGroupRepository extends AbstractRepository<UserGroupEntity, UserGroupPK> {
private static final Logger logger = LoggerFactory.getLogger(UserGroupRepository.class);
public UserGroupRepository() {
- super(UserGroup.class, UserGroupEntity.class);
+ super(UserGroupEntity.class);
}
- @Override
- protected UserGroup toModel(UserGroupEntity entity) {
- return SharingMapper.INSTANCE.userGroupToModel(entity);
- }
-
- @Override
- protected UserGroupEntity toEntity(UserGroup model) {
- return SharingMapper.INSTANCE.userGroupToEntity(model);
- }
-
- public List<UserGroup> getAccessibleGroups(String domainId, String entityId, String permissionTypeId)
+ public List<UserGroupEntity> getAccessibleGroups(String domainId, String entityId, String permissionTypeId)
throws SharingRegistryException {
return getAccessibleGroupsInternal(domainId, entityId, permissionTypeId);
}
- public List<UserGroup> getDirectlyAccessibleGroups(String domainId, String entityId, String permissionTypeId)
+ public List<UserGroupEntity> getDirectlyAccessibleGroups(String domainId, String entityId, String permissionTypeId)
throws SharingRegistryException {
return getAccessibleGroupsInternal(
domainId, entityId, permissionTypeId, SharingType.DIRECT_CASCADING, SharingType.DIRECT_NON_CASCADING);
}
- private List<UserGroup> getAccessibleGroupsInternal(
+ private List<UserGroupEntity> getAccessibleGroupsInternal(
String domainId, String entityId, String permissionTypeId, SharingType... sharingTypes)
throws SharingRegistryException {
String query = "SELECT DISTINCT g from " + UserGroupEntity.class.getSimpleName() + " g, "
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/UserRepository.java b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/UserRepository.java
index ff4f0a09a7..64c3d58450 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/repository/UserRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/repository/UserRepository.java
@@ -24,35 +24,19 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
-import org.apache.airavata.sharing.mapper.SharingMapper;
-import org.apache.airavata.sharing.model.SharingEntity;
-import org.apache.airavata.sharing.model.UserEntity;
-import org.apache.airavata.sharing.model.UserPK;
-import org.apache.airavata.sharing.registry.models.SharingRegistryException;
-import org.apache.airavata.sharing.registry.models.SharingType;
-import org.apache.airavata.sharing.registry.models.User;
+import org.apache.airavata.sharing.model.*;
import org.apache.airavata.sharing.util.DBConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class UserRepository extends AbstractRepository<User, UserEntity, UserPK> {
+public class UserRepository extends AbstractRepository<UserEntity, UserPK> {
private static final Logger logger = LoggerFactory.getLogger(UserRepository.class);
public UserRepository() {
- super(User.class, UserEntity.class);
+ super(UserEntity.class);
}
- @Override
- protected User toModel(UserEntity entity) {
- return SharingMapper.INSTANCE.userToModel(entity);
- }
-
- @Override
- protected UserEntity toEntity(User model) {
- return SharingMapper.INSTANCE.userToEntity(model);
- }
-
- public List<User> getAccessibleUsers(String domainId, String entityId, String permissionTypeId)
+ public List<UserEntity> getAccessibleUsers(String domainId, String entityId, String permissionTypeId)
throws SharingRegistryException {
if (permissionTypeId.equals((new PermissionTypeRepository()).getOwnerPermissionTypeIdForDomain(domainId))) {
return getAccessibleUsersInternal(
@@ -66,13 +50,13 @@ public class UserRepository extends AbstractRepository<User, UserEntity, UserPK>
}
}
- public List<User> getDirectlyAccessibleUsers(String domainId, String entityId, String permissionTypeId)
+ public List<UserEntity> getDirectlyAccessibleUsers(String domainId, String entityId, String permissionTypeId)
throws SharingRegistryException {
return getAccessibleUsersInternal(
domainId, entityId, permissionTypeId, SharingType.DIRECT_CASCADING, SharingType.DIRECT_NON_CASCADING);
}
- private List<User> getAccessibleUsersInternal(
+ private List<UserEntity> getAccessibleUsersInternal(
String domainId, String entityId, String permissionTypeId, SharingType... sharingTypes)
throws SharingRegistryException {
Map<String, Object> queryParameters = new HashMap<>();
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/service/ResourceSharingService.java b/airavata-api/src/main/java/org/apache/airavata/sharing/service/ResourceSharingService.java
index 9ee91b0341..c2b8027afe 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/service/ResourceSharingService.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/service/ResourceSharingService.java
@@ -34,8 +34,8 @@ import org.apache.airavata.model.appcatalog.gatewaygroups.proto.GatewayGroups;
import org.apache.airavata.model.group.proto.ResourcePermissionType;
import org.apache.airavata.model.group.proto.ResourceType;
import org.apache.airavata.sharing.handler.SharingRegistryServerHandler;
-import org.apache.airavata.sharing.registry.models.User;
-import org.apache.airavata.sharing.registry.models.UserGroup;
+import org.apache.airavata.sharing.model.UserEntity;
+import org.apache.airavata.sharing.model.UserGroupEntity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -352,7 +352,7 @@ public class ResourceSharingService {
String gatewayId,
String resourceId,
ResourcePermissionType permissionType,
- BiFunction<SharingRegistryServerHandler, ResourcePermissionType, Collection<User>> userListFunction) {
+ BiFunction<SharingRegistryServerHandler, ResourcePermissionType, Collection<UserEntity>> userListFunction) {
HashSet<String> accessibleUsers = new HashSet<>();
if (permissionType.equals(ResourcePermissionType.WRITE)) {
userListFunction
@@ -387,7 +387,7 @@ public class ResourceSharingService {
String gatewayId,
String resourceId,
ResourcePermissionType permissionType,
- BiFunction<SharingRegistryServerHandler, ResourcePermissionType, Collection<UserGroup>> groupListFunction) {
+ BiFunction<SharingRegistryServerHandler, ResourcePermissionType, Collection<UserGroupEntity>> groupListFunction) {
HashSet<String> accessibleGroups = new HashSet<>();
if (permissionType.equals(ResourcePermissionType.WRITE)) {
groupListFunction
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/service/SharingHelper.java b/airavata-api/src/main/java/org/apache/airavata/sharing/service/SharingHelper.java
index 502048012b..25b5824af0 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/service/SharingHelper.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/service/SharingHelper.java
@@ -26,9 +26,8 @@ import org.apache.airavata.model.appcatalog.gatewaygroups.proto.GatewayGroups;
import org.apache.airavata.model.group.proto.ResourcePermissionType;
import org.apache.airavata.security.service.GatewayGroupsInitializer;
import org.apache.airavata.sharing.handler.SharingRegistryServerHandler;
-import org.apache.airavata.sharing.registry.models.Entity;
-import org.apache.airavata.sharing.registry.models.PermissionType;
-import org.apache.thrift.TException;
+import org.apache.airavata.sharing.model.EntityEntity;
+import org.apache.airavata.sharing.model.PermissionTypeEntity;
public class SharingHelper {
@@ -72,7 +71,7 @@ public class SharingHelper {
}
public static void shareEntityWithAdminGatewayGroups(
- SharingRegistryServerHandler sharingHandler, RegistryServerHandler registryHandler, Entity entity)
+ SharingRegistryServerHandler sharingHandler, RegistryServerHandler registryHandler, EntityEntity entity)
throws Exception {
String domainId = entity.getDomainId();
GatewayGroups gatewayGroups = retrieveGatewayGroups(registryHandler, domainId);
@@ -98,10 +97,10 @@ public class SharingHelper {
}
public static void createManageSharingPermissionTypeIfMissing(
- SharingRegistryServerHandler sharingHandler, String domainId) throws TException {
+ SharingRegistryServerHandler sharingHandler, String domainId) throws Exception {
String permissionTypeId = domainId + ":MANAGE_SHARING";
if (!sharingHandler.isPermissionExists(domainId, permissionTypeId)) {
- PermissionType permissionType = new PermissionType();
+ PermissionTypeEntity permissionType = new PermissionTypeEntity();
permissionType.setPermissionTypeId(permissionTypeId);
permissionType.setDomainId(domainId);
permissionType.setName("MANAGE_SHARING");
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/util/AiravataDataMigrator.java b/airavata-api/src/main/java/org/apache/airavata/sharing/util/AiravataDataMigrator.java
index ad0f7d2153..5991191975 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/util/AiravataDataMigrator.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/util/AiravataDataMigrator.java
@@ -32,8 +32,8 @@ import java.util.Map;
import java.util.stream.Collectors;
import org.apache.airavata.common.exception.ApplicationSettingsException;
import org.apache.airavata.common.util.AiravataUtils;
-import org.apache.airavata.credential.handler.CredentialStoreServerHandler;
import org.apache.airavata.credential.store.cpi.CredentialStoreService;
+import org.apache.airavata.credential.handler.CredentialStoreServerHandler;
import org.apache.airavata.execution.handler.RegistryServerHandler;
import org.apache.airavata.model.appcatalog.appdeployment.proto.ApplicationDeploymentDescription;
import org.apache.airavata.model.appcatalog.computeresource.proto.ComputeResourceDescription;
@@ -57,18 +57,17 @@ import org.apache.airavata.security.service.AiravataSecurityManager;
import org.apache.airavata.security.service.SecurityManagerFactory;
import org.apache.airavata.security.util.AiravataSecurityException;
import org.apache.airavata.sharing.handler.SharingRegistryServerHandler;
-import org.apache.airavata.sharing.registry.models.Domain;
-import org.apache.airavata.sharing.registry.models.Entity;
-import org.apache.airavata.sharing.registry.models.EntitySearchField;
-import org.apache.airavata.sharing.registry.models.EntityType;
-import org.apache.airavata.sharing.registry.models.GroupCardinality;
-import org.apache.airavata.sharing.registry.models.GroupType;
-import org.apache.airavata.sharing.registry.models.PermissionType;
-import org.apache.airavata.sharing.registry.models.SearchCondition;
-import org.apache.airavata.sharing.registry.models.SearchCriteria;
-import org.apache.airavata.sharing.registry.models.User;
-import org.apache.airavata.sharing.registry.models.UserGroup;
-import org.apache.thrift.TException;
+import org.apache.airavata.sharing.model.DomainEntity;
+import org.apache.airavata.sharing.model.EntityEntity;
+import org.apache.airavata.sharing.model.EntitySearchField;
+import org.apache.airavata.sharing.model.EntityTypeEntity;
+import org.apache.airavata.sharing.model.GroupCardinality;
+import org.apache.airavata.sharing.model.GroupType;
+import org.apache.airavata.sharing.model.PermissionTypeEntity;
+import org.apache.airavata.sharing.model.SearchCondition;
+import org.apache.airavata.sharing.model.SearchCriteria;
+import org.apache.airavata.sharing.model.UserEntity;
+import org.apache.airavata.sharing.model.UserGroupEntity;
public class AiravataDataMigrator {
@@ -99,7 +98,7 @@ public class AiravataDataMigrator {
while (rs.next()) {
try {
// Creating domain entries
- Domain domain = new Domain();
+ DomainEntity domain = new DomainEntity();
domain.setDomainId(rs.getString("GATEWAY_ID"));
domain.setName(rs.getString("GATEWAY_ID"));
domain.setDescription("Domain entry for " + domain.getName());
@@ -108,7 +107,7 @@ public class AiravataDataMigrator {
sharingRegistryServerHandler.createDomain(domain);
// Creating Entity Types for each domain
- EntityType entityType = new EntityType();
+ EntityTypeEntity entityType = new EntityTypeEntity();
entityType.setEntityTypeId(domain.getDomainId() + ":PROJECT");
entityType.setDomainId(domain.getDomainId());
entityType.setName("PROJECT");
@@ -117,7 +116,7 @@ public class AiravataDataMigrator {
entityType.getDomainId(), entityType.getEntityTypeId()))
sharingRegistryServerHandler.createEntityType(entityType);
- entityType = new EntityType();
+ entityType = new EntityTypeEntity();
entityType.setEntityTypeId(domain.getDomainId() + ":EXPERIMENT");
entityType.setDomainId(domain.getDomainId());
entityType.setName("EXPERIMENT");
@@ -126,7 +125,7 @@ public class AiravataDataMigrator {
entityType.getDomainId(), entityType.getEntityTypeId()))
sharingRegistryServerHandler.createEntityType(entityType);
- entityType = new EntityType();
+ entityType = new EntityTypeEntity();
entityType.setEntityTypeId(domain.getDomainId() + ":FILE");
entityType.setDomainId(domain.getDomainId());
entityType.setName("FILE");
@@ -135,7 +134,7 @@ public class AiravataDataMigrator {
entityType.getDomainId(), entityType.getEntityTypeId()))
sharingRegistryServerHandler.createEntityType(entityType);
- entityType = new EntityType();
+ entityType = new EntityTypeEntity();
entityType.setEntityTypeId(domain.getDomainId() + ":" + ResourceType.APPLICATION_DEPLOYMENT.name());
entityType.setDomainId(domain.getDomainId());
entityType.setName("APPLICATION-DEPLOYMENT");
@@ -144,7 +143,7 @@ public class AiravataDataMigrator {
entityType.getDomainId(), entityType.getEntityTypeId()))
sharingRegistryServerHandler.createEntityType(entityType);
- entityType = new EntityType();
+ entityType = new EntityTypeEntity();
entityType.setEntityTypeId(domain.getDomainId() + ":" + ResourceType.GROUP_RESOURCE_PROFILE.name());
entityType.setDomainId(domain.getDomainId());
entityType.setName(ResourceType.GROUP_RESOURCE_PROFILE.name());
@@ -153,7 +152,7 @@ public class AiravataDataMigrator {
entityType.getDomainId(), entityType.getEntityTypeId()))
sharingRegistryServerHandler.createEntityType(entityType);
- entityType = new EntityType();
+ entityType = new EntityTypeEntity();
entityType.setEntityTypeId(domain.getDomainId() + ":" + ResourceType.CREDENTIAL_TOKEN.name());
entityType.setDomainId(domain.getDomainId());
entityType.setName(ResourceType.CREDENTIAL_TOKEN.name());
@@ -163,7 +162,7 @@ public class AiravataDataMigrator {
sharingRegistryServerHandler.createEntityType(entityType);
// Creating Permission Types for each domain
- PermissionType permissionType = new PermissionType();
+ PermissionTypeEntity permissionType = new PermissionTypeEntity();
permissionType.setPermissionTypeId(domain.getDomainId() + ":READ");
permissionType.setDomainId(domain.getDomainId());
permissionType.setName("READ");
@@ -172,7 +171,7 @@ public class AiravataDataMigrator {
permissionType.getDomainId(), permissionType.getPermissionTypeId()))
sharingRegistryServerHandler.createPermissionType(permissionType);
- permissionType = new PermissionType();
+ permissionType = new PermissionTypeEntity();
permissionType.setPermissionTypeId(domain.getDomainId() + ":WRITE");
permissionType.setDomainId(domain.getDomainId());
permissionType.setName("WRITE");
@@ -181,7 +180,7 @@ public class AiravataDataMigrator {
permissionType.getDomainId(), permissionType.getPermissionTypeId()))
sharingRegistryServerHandler.createPermissionType(permissionType);
- permissionType = new PermissionType();
+ permissionType = new PermissionTypeEntity();
permissionType.setPermissionTypeId(domain.getDomainId() + ":MANAGE_SHARING");
permissionType.setDomainId(domain.getDomainId());
permissionType.setName("MANAGE_SHARING");
@@ -201,7 +200,7 @@ public class AiravataDataMigrator {
rs = statement.executeQuery(query);
while (rs.next()) {
try {
- User user = new User();
+ UserEntity user = new UserEntity();
user.setUserId(rs.getString("AIRAVATA_INTERNAL_USER_ID"));
user.setDomainId(rs.getString("GATEWAY_ID"));
user.setUserName(rs.getString("USER_NAME"));
@@ -218,9 +217,9 @@ public class AiravataDataMigrator {
Map<String, GatewayGroups> gatewayGroupsMap = new HashMap<>();
// Creating the gateway groups
- List<Domain> domainList = sharingRegistryServerHandler.getDomains(0, -1);
+ List<DomainEntity> domainList = sharingRegistryServerHandler.getDomains(0, -1);
final RegistryServerHandler registryServiceClient = getRegistryServiceClient();
- for (Domain domain : domainList) {
+ for (DomainEntity domain : domainList) {
// If we're only running migration for gatewayId, then skip other gateways
if (gatewayId != null && !gatewayId.equals(domain.getDomainId())) {
continue;
@@ -260,10 +259,10 @@ public class AiravataDataMigrator {
query = "SELECT * FROM PROJECT" + gatewayWhereClause;
statement = expCatConnection.createStatement();
rs = statement.executeQuery(query);
- List<Entity> projectEntities = new ArrayList<>();
+ List<EntityEntity> projectEntities = new ArrayList<>();
while (rs.next()) {
try {
- Entity entity = new Entity();
+ EntityEntity entity = new EntityEntity();
entity.setEntityId(rs.getString("PROJECT_ID"));
entity.setDomainId(rs.getString("GATEWAY_ID"));
entity.setEntityTypeId(rs.getString("GATEWAY_ID") + ":PROJECT");
@@ -284,10 +283,10 @@ public class AiravataDataMigrator {
query = "SELECT * FROM EXPERIMENT" + gatewayWhereClause;
statement = expCatConnection.createStatement();
rs = statement.executeQuery(query);
- List<Entity> experimentEntities = new ArrayList<>();
+ List<EntityEntity> experimentEntities = new ArrayList<>();
while (rs.next()) {
try {
- Entity entity = new Entity();
+ EntityEntity entity = new EntityEntity();
entity.setEntityId(rs.getString("EXPERIMENT_ID"));
entity.setDomainId(rs.getString("GATEWAY_ID"));
entity.setEntityTypeId(rs.getString("GATEWAY_ID") + ":EXPERIMENT");
@@ -312,13 +311,13 @@ public class AiravataDataMigrator {
}
}
- for (Entity entity : projectEntities) {
+ for (EntityEntity entity : projectEntities) {
if (!sharingRegistryServerHandler.isEntityExists(entity.getDomainId(), entity.getEntityId())) {
sharingRegistryServerHandler.createEntity(entity);
}
}
- for (Entity entity : experimentEntities) {
+ for (EntityEntity entity : experimentEntities) {
if (!sharingRegistryServerHandler.isEntityExists(entity.getDomainId(), entity.getEntityId())) {
if (!sharingRegistryServerHandler.isEntityExists(entity.getDomainId(), entity.getParentEntityId())) {
System.out.println("Warning: project entity does exist for experiment entity "
@@ -343,7 +342,7 @@ public class AiravataDataMigrator {
List<ApplicationDeploymentDescription> applicationDeploymentDescriptionList =
registryServiceClient.getAllApplicationDeployments(domainID);
for (ApplicationDeploymentDescription description : applicationDeploymentDescriptionList) {
- Entity entity = new Entity();
+ EntityEntity entity = new EntityEntity();
entity.setEntityId(description.getAppDeploymentId());
entity.setDomainId(domainID);
entity.setEntityTypeId(entity.getDomainId() + ":" + ResourceType.APPLICATION_DEPLOYMENT.name());
@@ -369,7 +368,7 @@ public class AiravataDataMigrator {
migrateGatewayResourceProfileToGroupResourceProfile(domainID, registryServiceClient);
// create GroupResourceProfile entity in sharing registry
- Entity entity = new Entity();
+ EntityEntity entity = new EntityEntity();
entity.setEntityId(groupResourceProfile.getGroupResourceProfileId());
entity.setDomainId(domainID);
entity.setEntityTypeId(entity.getDomainId() + ":" + ResourceType.GROUP_RESOURCE_PROFILE.name());
@@ -387,7 +386,7 @@ public class AiravataDataMigrator {
List<CredentialSummary> gatewayCredentialSummaries =
credentialStoreServiceClient.getAllCredentialSummaryForGateway(SummaryType.SSH, domainID);
for (CredentialSummary credentialSummary : gatewayCredentialSummaries) {
- Entity entity = new Entity();
+ EntityEntity entity = new EntityEntity();
entity.setEntityId(credentialSummary.getToken());
entity.setDomainId(domainID);
entity.setEntityTypeId(entity.getDomainId() + ":" + ResourceType.CREDENTIAL_TOKEN.name());
@@ -405,8 +404,8 @@ public class AiravataDataMigrator {
// Creating credential store token entries (USER SSH tokens)
for (String domainID : domainOwnerMap.keySet()) {
- List<User> sharingUsers = sharingRegistryServerHandler.getUsers(domainID, 0, Integer.MAX_VALUE);
- for (User sharingUser : sharingUsers) {
+ List<UserEntity> sharingUsers = sharingRegistryServerHandler.getUsers(domainID, 0, Integer.MAX_VALUE);
+ for (UserEntity sharingUser : sharingUsers) {
String userId = sharingUser.getUserId();
if (!userId.endsWith("@" + domainID)) {
@@ -419,7 +418,7 @@ public class AiravataDataMigrator {
credentialStoreServiceClient.getAllCredentialSummaryForUserInGateway(
SummaryType.SSH, domainID, username);
for (CredentialSummary credentialSummary : gatewayCredentialSummaries) {
- Entity entity = new Entity();
+ EntityEntity entity = new EntityEntity();
entity.setEntityId(credentialSummary.getToken());
entity.setDomainId(domainID);
entity.setEntityTypeId(entity.getDomainId() + ":" + ResourceType.CREDENTIAL_TOKEN.name());
@@ -438,7 +437,7 @@ public class AiravataDataMigrator {
Map<String, String> gatewayPasswords =
credentialStoreServiceClient.getAllPWDCredentialsForGateway(domainID);
for (Map.Entry<String, String> gatewayPasswordEntry : gatewayPasswords.entrySet()) {
- Entity entity = new Entity();
+ EntityEntity entity = new EntityEntity();
entity.setEntityId(gatewayPasswordEntry.getKey());
entity.setDomainId(domainID);
entity.setEntityTypeId(entity.getDomainId() + ":" + ResourceType.CREDENTIAL_TOKEN.name());
@@ -462,7 +461,7 @@ public class AiravataDataMigrator {
private static void shareEntityWithGatewayGroups(
SharingRegistryServerHandler sharingRegistryServerHandler,
- Entity entity,
+ EntityEntity entity,
GatewayGroups gatewayGroups,
boolean cascadePermission)
throws Exception {
@@ -478,7 +477,7 @@ public class AiravataDataMigrator {
private static void shareEntityWithAdminGatewayGroups(
SharingRegistryServerHandler sharingRegistryServerHandler,
- Entity entity,
+ EntityEntity entity,
GatewayGroups gatewayGroups,
boolean cascadePermission)
throws Exception {
@@ -609,7 +608,7 @@ public class AiravataDataMigrator {
}
private static GatewayGroups migrateRolesToGatewayGroups(
- Domain domain,
+ DomainEntity domain,
String ownerId,
SharingRegistryServerHandler sharingRegistryServerHandler,
RegistryServerHandler registryServiceClient)
@@ -625,7 +624,7 @@ public class AiravataDataMigrator {
.collect(Collectors.toList());
Map<String, List<String>> roleMap = loadRolesForUsers(domain.getDomainId(), usernames);
- UserGroup gatewayUsersGroup = createGroup(
+ UserGroupEntity gatewayUsersGroup = createGroup(
sharingRegistryServerHandler,
domain,
ownerId,
@@ -634,7 +633,7 @@ public class AiravataDataMigrator {
roleMap.containsKey("gateway-user") ? roleMap.get("gateway-user") : Collections.emptyList());
gatewayGroupsBuilder.setDefaultGatewayUsersGroupId(gatewayUsersGroup.getGroupId());
- UserGroup adminUsersGroup = createGroup(
+ UserGroupEntity adminUsersGroup = createGroup(
sharingRegistryServerHandler,
domain,
ownerId,
@@ -643,7 +642,7 @@ public class AiravataDataMigrator {
roleMap.containsKey("admin") ? roleMap.get("admin") : Collections.emptyList());
gatewayGroupsBuilder.setAdminsGroupId(adminUsersGroup.getGroupId());
- UserGroup readOnlyAdminsGroup = createGroup(
+ UserGroupEntity readOnlyAdminsGroup = createGroup(
sharingRegistryServerHandler,
domain,
ownerId,
@@ -658,7 +657,7 @@ public class AiravataDataMigrator {
}
private static String getAdminOwnerUser(
- Domain domain,
+ DomainEntity domain,
SharingRegistryServerHandler sharingRegistryServerHandler,
CredentialStoreService.Iface credentialStoreServiceClient,
RegistryServerHandler registryServiceClient)
@@ -734,25 +733,25 @@ public class AiravataDataMigrator {
return csClient.getPasswordCredential(gwrp.getIdentityServerPwdCredToken(), gwrp.getGatewayId());
}
- private static UserGroup createGroup(
+ private static UserGroupEntity createGroup(
SharingRegistryServerHandler sharingRegistryServerHandler,
- Domain domain,
+ DomainEntity domain,
String ownerId,
String groupName,
String groupDescription,
List<String> usernames)
throws Exception {
- UserGroup userGroup = new UserGroup();
+ UserGroupEntity userGroup = new UserGroupEntity();
userGroup.setGroupId(AiravataUtils.getId(groupName));
userGroup.setDomainId(domain.getDomainId());
- userGroup.setGroupCardinality(GroupCardinality.MULTI_USER);
+ userGroup.setGroupCardinality(GroupCardinality.MULTI_USER.name());
userGroup.setCreatedTime(System.currentTimeMillis());
userGroup.setUpdatedTime(System.currentTimeMillis());
userGroup.setName(groupName);
userGroup.setDescription(groupDescription);
userGroup.setOwnerId(ownerId);
- userGroup.setGroupType(GroupType.DOMAIN_LEVEL_GROUP);
+ userGroup.setGroupType(GroupType.DOMAIN_LEVEL_GROUP.name());
sharingRegistryServerHandler.createGroup(userGroup);
List<String> userIds = usernames.stream()
@@ -903,7 +902,7 @@ public class AiravataDataMigrator {
try {
return new CredentialStoreServerHandler();
} catch (Exception e) {
- throw new TException("Unable to create CredentialStoreServerHandler...", e);
+ throw new RuntimeException("Unable to create CredentialStoreServerHandler...", e);
}
}
@@ -917,7 +916,7 @@ public class AiravataDataMigrator {
AuthzToken authzToken = securityManager.getUserManagementServiceAccountAuthzToken(tenantId);
return authzToken;
} catch (AiravataSecurityException e) {
- throw new TException("Unable to fetch access token for management user for tenant: " + tenantId, e);
+ throw new RuntimeException("Unable to fetch access token for management user for tenant: " + tenantId, e);
}
}
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/sharing/util/ThriftDataModelConversion.java b/airavata-api/src/main/java/org/apache/airavata/sharing/util/ThriftDataModelConversion.java
index a14fad2780..e3fddd163d 100644
--- a/airavata-api/src/main/java/org/apache/airavata/sharing/util/ThriftDataModelConversion.java
+++ b/airavata-api/src/main/java/org/apache/airavata/sharing/util/ThriftDataModelConversion.java
@@ -19,39 +19,39 @@
*/
package org.apache.airavata.sharing.util;
-import org.apache.airavata.model.user.UserProfile;
-import org.apache.airavata.sharing.registry.models.User;
+import org.apache.airavata.model.user.proto.UserProfile;
+import org.apache.airavata.sharing.model.UserEntity;
/**
- * Created by Ajinkya on 3/29/17.
+ * Converts proto data models to sharing entity types.
*/
public class ThriftDataModelConversion {
/**
- * Build user object from UserProfile
- * @param userProfile thrift object
- * @return
- * User corresponding to userProfile thrift
+ * Build UserEntity from proto UserProfile.
*/
- public static User getUser(UserProfile userProfile) {
- User user = new User();
+ public static UserEntity getUser(UserProfile userProfile) {
+ UserEntity user = new UserEntity();
user.setUserId(userProfile.getAiravataInternalUserId());
user.setDomainId(userProfile.getGatewayId());
user.setUserName(userProfile.getUserId());
user.setFirstName(userProfile.getFirstName());
user.setLastName(userProfile.getLastName());
- user.setEmail(userProfile.getEmails().get(0));
+ user.setEmail(userProfile.getEmailsList().get(0));
return user;
}
- public static User getUser(org.apache.airavata.model.user.proto.UserProfile userProfile) {
- User user = new User();
+ /**
+ * Build UserEntity from Thrift UserProfile (legacy overload for AiravataDataMigrator).
+ */
+ public static UserEntity getUser(org.apache.airavata.model.user.UserProfile userProfile) {
+ UserEntity user = new UserEntity();
user.setUserId(userProfile.getAiravataInternalUserId());
user.setDomainId(userProfile.getGatewayId());
user.setUserName(userProfile.getUserId());
user.setFirstName(userProfile.getFirstName());
user.setLastName(userProfile.getLastName());
- user.setEmail(userProfile.getEmailsList().get(0));
+ user.setEmail(userProfile.getEmails().get(0));
return user;
}
}
diff --git a/airavata-server/grpc/src/main/java/org/apache/airavata/server/grpc/services/SharingGrpcService.java b/airavata-server/grpc/src/main/java/org/apache/airavata/server/grpc/services/SharingGrpcService.java
index a86b421dac..56ecaee6a2 100644
--- a/airavata-server/grpc/src/main/java/org/apache/airavata/server/grpc/services/SharingGrpcService.java
+++ b/airavata-server/grpc/src/main/java/org/apache/airavata/server/grpc/services/SharingGrpcService.java
@@ -951,9 +951,9 @@ public class SharingGrpcService extends SharingServiceGrpc.SharingServiceImplBas
// --- Domain ---
- private static org.apache.airavata.sharing.registry.models.Domain toThriftDomain(
+ private static org.apache.airavata.sharing.model.DomainEntity toThriftDomain(
org.apache.airavata.sharing.registry.models.proto.Domain proto) {
- var t = new org.apache.airavata.sharing.registry.models.Domain();
+ var t = new org.apache.airavata.sharing.model.DomainEntity();
if (!proto.getDomainId().isEmpty()) t.setDomainId(proto.getDomainId());
if (!proto.getName().isEmpty()) t.setName(proto.getName());
if (!proto.getDescription().isEmpty()) t.setDescription(proto.getDescription());
@@ -964,7 +964,7 @@ public class SharingGrpcService extends SharingServiceGrpc.SharingServiceImplBas
}
private static org.apache.airavata.sharing.registry.models.proto.Domain toProtoDomain(
- org.apache.airavata.sharing.registry.models.Domain t) {
+ org.apache.airavata.sharing.model.DomainEntity t) {
var b = org.apache.airavata.sharing.registry.models.proto.Domain.newBuilder();
if (t.getDomainId() != null) b.setDomainId(t.getDomainId());
if (t.getName() != null) b.setName(t.getName());
@@ -977,9 +977,9 @@ public class SharingGrpcService extends SharingServiceGrpc.SharingServiceImplBas
// --- User ---
- private static org.apache.airavata.sharing.registry.models.User toThriftUser(
+ private static org.apache.airavata.sharing.model.UserEntity toThriftUser(
org.apache.airavata.sharing.registry.models.proto.User proto) {
- var t = new org.apache.airavata.sharing.registry.models.User();
+ var t = new org.apache.airavata.sharing.model.UserEntity();
if (!proto.getUserId().isEmpty()) t.setUserId(proto.getUserId());
if (!proto.getDomainId().isEmpty()) t.setDomainId(proto.getDomainId());
if (!proto.getUserName().isEmpty()) t.setUserName(proto.getUserName());
@@ -993,7 +993,7 @@ public class SharingGrpcService extends SharingServiceGrpc.SharingServiceImplBas
}
private static org.apache.airavata.sharing.registry.models.proto.User toProtoUser(
- org.apache.airavata.sharing.registry.models.User t) {
+ org.apache.airavata.sharing.model.UserEntity t) {
var b = org.apache.airavata.sharing.registry.models.proto.User.newBuilder();
if (t.getUserId() != null) b.setUserId(t.getUserId());
if (t.getDomainId() != null) b.setDomainId(t.getDomainId());
@@ -1009,19 +1009,19 @@ public class SharingGrpcService extends SharingServiceGrpc.SharingServiceImplBas
// --- UserGroup ---
- private static org.apache.airavata.sharing.registry.models.UserGroup toThriftUserGroup(
+ private static org.apache.airavata.sharing.model.UserGroupEntity toThriftUserGroup(
org.apache.airavata.sharing.registry.models.proto.UserGroup proto) {
- var t = new org.apache.airavata.sharing.registry.models.UserGroup();
+ var t = new org.apache.airavata.sharing.model.UserGroupEntity();
if (!proto.getGroupId().isEmpty()) t.setGroupId(proto.getGroupId());
if (!proto.getDomainId().isEmpty()) t.setDomainId(proto.getDomainId());
if (!proto.getName().isEmpty()) t.setName(proto.getName());
if (!proto.getDescription().isEmpty()) t.setDescription(proto.getDescription());
if (!proto.getOwnerId().isEmpty()) t.setOwnerId(proto.getOwnerId());
if (proto.getGroupTypeValue() != 0) {
- t.setGroupType(org.apache.airavata.sharing.registry.models.GroupType.findByValue(proto.getGroupTypeValue()));
+ t.setGroupType(org.apache.airavata.sharing.registry.models.proto.GroupType.forNumber(proto.getGroupTypeValue()).name());
}
if (proto.getGroupCardinalityValue() != 0) {
- t.setGroupCardinality(org.apache.airavata.sharing.registry.models.GroupCardinality.findByValue(proto.getGroupCardinalityValue()));
+ t.setGroupCardinality(org.apache.airavata.sharing.registry.models.proto.GroupCardinality.forNumber(proto.getGroupCardinalityValue()).name());
}
if (proto.getCreatedTime() != 0) t.setCreatedTime(proto.getCreatedTime());
if (proto.getUpdatedTime() != 0) t.setUpdatedTime(proto.getUpdatedTime());
@@ -1029,15 +1029,15 @@ public class SharingGrpcService extends SharingServiceGrpc.SharingServiceImplBas
}
private static org.apache.airavata.sharing.registry.models.proto.UserGroup toProtoUserGroup(
- org.apache.airavata.sharing.registry.models.UserGroup t) {
+ org.apache.airavata.sharing.model.UserGroupEntity t) {
var b = org.apache.airavata.sharing.registry.models.proto.UserGroup.newBuilder();
if (t.getGroupId() != null) b.setGroupId(t.getGroupId());
if (t.getDomainId() != null) b.setDomainId(t.getDomainId());
if (t.getName() != null) b.setName(t.getName());
if (t.getDescription() != null) b.setDescription(t.getDescription());
if (t.getOwnerId() != null) b.setOwnerId(t.getOwnerId());
- if (t.getGroupType() != null) b.setGroupTypeValue(t.getGroupType().getValue());
- if (t.getGroupCardinality() != null) b.setGroupCardinalityValue(t.getGroupCardinality().getValue());
+ if (t.getGroupType() != null) b.setGroupTypeValue(org.apache.airavata.sharing.registry.models.proto.GroupType.valueOf(t.getGroupType()).getNumber());
+ if (t.getGroupCardinality() != null) b.setGroupCardinalityValue(org.apache.airavata.sharing.registry.models.proto.GroupCardinality.valueOf(t.getGroupCardinality()).getNumber());
b.setCreatedTime(t.getCreatedTime());
b.setUpdatedTime(t.getUpdatedTime());
return b.build();
@@ -1045,9 +1045,9 @@ public class SharingGrpcService extends SharingServiceGrpc.SharingServiceImplBas
// --- EntityType ---
- private static org.apache.airavata.sharing.registry.models.EntityType toThriftEntityType(
+ private static org.apache.airavata.sharing.model.EntityTypeEntity toThriftEntityType(
org.apache.airavata.sharing.registry.models.proto.EntityType proto) {
- var t = new org.apache.airavata.sharing.registry.models.EntityType();
+ var t = new org.apache.airavata.sharing.model.EntityTypeEntity();
if (!proto.getEntityTypeId().isEmpty()) t.setEntityTypeId(proto.getEntityTypeId());
if (!proto.getDomainId().isEmpty()) t.setDomainId(proto.getDomainId());
if (!proto.getName().isEmpty()) t.setName(proto.getName());
@@ -1058,7 +1058,7 @@ public class SharingGrpcService extends SharingServiceGrpc.SharingServiceImplBas
}
private static org.apache.airavata.sharing.registry.models.proto.EntityType toProtoEntityType(
- org.apache.airavata.sharing.registry.models.EntityType t) {
+ org.apache.airavata.sharing.model.EntityTypeEntity t) {
var b = org.apache.airavata.sharing.registry.models.proto.EntityType.newBuilder();
if (t.getEntityTypeId() != null) b.setEntityTypeId(t.getEntityTypeId());
if (t.getDomainId() != null) b.setDomainId(t.getDomainId());
@@ -1071,9 +1071,9 @@ public class SharingGrpcService extends SharingServiceGrpc.SharingServiceImplBas
// --- Entity ---
- private static org.apache.airavata.sharing.registry.models.Entity toThriftEntity(
+ private static org.apache.airavata.sharing.model.EntityEntity toThriftEntity(
org.apache.airavata.sharing.registry.models.proto.Entity proto) {
- var t = new org.apache.airavata.sharing.registry.models.Entity();
+ var t = new org.apache.airavata.sharing.model.EntityEntity();
if (!proto.getEntityId().isEmpty()) t.setEntityId(proto.getEntityId());
if (!proto.getDomainId().isEmpty()) t.setDomainId(proto.getDomainId());
if (!proto.getEntityTypeId().isEmpty()) t.setEntityTypeId(proto.getEntityTypeId());
@@ -1091,7 +1091,7 @@ public class SharingGrpcService extends SharingServiceGrpc.SharingServiceImplBas
}
private static org.apache.airavata.sharing.registry.models.proto.Entity toProtoEntity(
- org.apache.airavata.sharing.registry.models.Entity t) {
+ org.apache.airavata.sharing.model.EntityEntity t) {
var b = org.apache.airavata.sharing.registry.models.proto.Entity.newBuilder();
if (t.getEntityId() != null) b.setEntityId(t.getEntityId());
if (t.getDomainId() != null) b.setDomainId(t.getDomainId());
@@ -1111,9 +1111,9 @@ public class SharingGrpcService extends SharingServiceGrpc.SharingServiceImplBas
// --- PermissionType ---
- private static org.apache.airavata.sharing.registry.models.PermissionType toThriftPermissionType(
+ private static org.apache.airavata.sharing.model.PermissionTypeEntity toThriftPermissionType(
org.apache.airavata.sharing.registry.models.proto.PermissionType proto) {
- var t = new org.apache.airavata.sharing.registry.models.PermissionType();
+ var t = new org.apache.airavata.sharing.model.PermissionTypeEntity();
if (!proto.getPermissionTypeId().isEmpty()) t.setPermissionTypeId(proto.getPermissionTypeId());
if (!proto.getDomainId().isEmpty()) t.setDomainId(proto.getDomainId());
if (!proto.getName().isEmpty()) t.setName(proto.getName());
@@ -1124,7 +1124,7 @@ public class SharingGrpcService extends SharingServiceGrpc.SharingServiceImplBas
}
private static org.apache.airavata.sharing.registry.models.proto.PermissionType toProtoPermissionType(
- org.apache.airavata.sharing.registry.models.PermissionType t) {
+ org.apache.airavata.sharing.model.PermissionTypeEntity t) {
var b = org.apache.airavata.sharing.registry.models.proto.PermissionType.newBuilder();
if (t.getPermissionTypeId() != null) b.setPermissionTypeId(t.getPermissionTypeId());
if (t.getDomainId() != null) b.setDomainId(t.getDomainId());
@@ -1137,15 +1137,15 @@ public class SharingGrpcService extends SharingServiceGrpc.SharingServiceImplBas
// --- SearchCriteria ---
- private static org.apache.airavata.sharing.registry.models.SearchCriteria toThriftSearchCriteria(
+ private static org.apache.airavata.sharing.model.SearchCriteria toThriftSearchCriteria(
org.apache.airavata.sharing.registry.models.proto.SearchCriteria proto) {
- var t = new org.apache.airavata.sharing.registry.models.SearchCriteria();
+ var t = new org.apache.airavata.sharing.model.SearchCriteria();
if (proto.getSearchFieldValue() != 0) {
- t.setSearchField(org.apache.airavata.sharing.registry.models.EntitySearchField.findByValue(proto.getSearchFieldValue()));
+ t.setSearchField(org.apache.airavata.sharing.model.EntitySearchField.values()[proto.getSearchFieldValue() - 1]);
}
if (!proto.getValue().isEmpty()) t.setValue(proto.getValue());
if (proto.getSearchConditionValue() != 0) {
- t.setSearchCondition(org.apache.airavata.sharing.registry.models.SearchCondition.findByValue(proto.getSearchConditionValue()));
+ t.setSearchCondition(org.apache.airavata.sharing.model.SearchCondition.values()[proto.getSearchConditionValue() - 1]);
}
return t;
}