From 9cccc0fa2ae6b22bbd14c966859da41171d26805 Mon Sep 17 00:00:00 2001 From: sergeyPensov Date: Mon, 14 Jan 2019 18:17:28 +0200 Subject: [PATCH] Additional checking for integration --- .../AccountRepositoryAdditionalImpl.java | 20 ++++++++++--- .../erlang/ErlangAccountMqttBridge.java | 30 +++++++------------ 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java index 649b92f..6522ae1 100644 --- a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java +++ b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java @@ -18,6 +18,7 @@ import java.util.stream.Collectors; import biz.nynja.account.repositories.batch.SagaTransaction; import biz.nynja.account.repositories.batch.Transaction; import biz.nynja.account.services.erlang.ErlangAccountBridge; +import io.grpc.StatusRuntimeException; import org.apache.commons.lang3.SerializationUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -147,6 +148,10 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio sagaTransaction.rollBack(); return null; } + } catch (StatusRuntimeException e) { + logger.info("Error while lose connection with bridge"); + sagaTransaction.rollBack(); + return null; } catch (IllegalArgumentException | IllegalStateException e) { logger.info("Exception while completing pending account creation."); logger.debug("Exception while completing pending account creation: {} ...", e.getMessage()); @@ -215,6 +220,10 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio sagaTransaction.rollBack(); return null; } + } catch (StatusRuntimeException e) { + logger.info("Error while lose connection with bridge"); + sagaTransaction.rollBack(); + return null; } catch (IllegalArgumentException | IllegalStateException e) { logger.error("Exception while updating account with id {}.", request.getAccountId()); logger.debug("Exception while updating account: {}.", e.getMessage()); @@ -276,6 +285,10 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio sagaTransaction.rollBack(); return false; } + } catch (StatusRuntimeException e) { + logger.info("Error while lose connection with bridge"); + sagaTransaction.rollBack(); + return false; } catch (IllegalArgumentException | IllegalStateException e) { logger.error("Exception while deleting account: {}.", e.getMessage()); return false; @@ -355,12 +368,11 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio if (request.getRolesList() == null || request.getRolesList().isEmpty()) { newAccountState.setRoles(Set.of(Role.USER.toString())); } else { - newAccountState - .setRoles(request.getRolesList().stream().map(Enum::toString).collect(Collectors.toSet())); + newAccountState.setRoles(request.getRolesList().stream().map(Enum::toString).collect(Collectors.toSet())); } if (util.validateBirthdayIsSet(request.getBirthday())) { - newAccountState.setBirthday(LocalDate.of(request.getBirthday().getYear(), - request.getBirthday().getMonth(), request.getBirthday().getDay())); + newAccountState.setBirthday(LocalDate.of(request.getBirthday().getYear(), request.getBirthday().getMonth(), + request.getBirthday().getDay())); } else { newAccountState.setBirthday(null); } diff --git a/src/main/java/biz/nynja/account/services/erlang/ErlangAccountMqttBridge.java b/src/main/java/biz/nynja/account/services/erlang/ErlangAccountMqttBridge.java index 3d0832c..da3fdf5 100644 --- a/src/main/java/biz/nynja/account/services/erlang/ErlangAccountMqttBridge.java +++ b/src/main/java/biz/nynja/account/services/erlang/ErlangAccountMqttBridge.java @@ -32,7 +32,7 @@ public class ErlangAccountMqttBridge implements ErlangAccountBridge { private final ErlangBridgeConfiguration erlangBridgeConfiguration; - public ErlangAccountMqttBridge(ErlangBridgeConfiguration erlangBridgeConfiguration) throws MalformedURLException { + public ErlangAccountMqttBridge(ErlangBridgeConfiguration erlangBridgeConfiguration) { this.erlangBridgeConfiguration = erlangBridgeConfiguration; } @@ -42,44 +42,35 @@ public class ErlangAccountMqttBridge implements ErlangAccountBridge { if (!erlangBridgeConfiguration.isEnabled()) return true; ProfileData profileData = buildProfileData(profile, account); - // todo update after testing with real connection - BridgeSuccessResponse response = buildGrpcConnection().createProfile(profileData); - return true; + return buildGrpcConnection().createProfile(profileData).getSuccess(); } @Override public boolean deleteProfile(UUID profileId, List accountsIds) { if (!erlangBridgeConfiguration.isEnabled()) return true; - BridgeSuccessResponse response = buildGrpcConnection() - .deleteProfile(buildDeleteProfileData(profileId, (UUID[]) accountsIds.toArray())); - return true; + return buildGrpcConnection().deleteProfile(buildDeleteProfileData(profileId, (UUID[]) accountsIds.toArray())).getSuccess(); } @Override public boolean createAccount(Account account) { if (!erlangBridgeConfiguration.isEnabled()) return true; - BridgeSuccessResponse response = buildGrpcConnection().createAccount(buildAccountData(account)); - - return true; + return buildGrpcConnection().createAccount(buildAccountData(account)).getSuccess(); } @Override public boolean updateAccount(Account account) { if (!erlangBridgeConfiguration.isEnabled()) return true; - - return true; + return buildGrpcConnection().updateAccount(buildAccountData(account)).getSuccess(); } @Override public boolean deleteAccount(UUID profileId, UUID accountId) { if (!erlangBridgeConfiguration.isEnabled()) return true; - BridgeSuccessResponse response = buildGrpcConnection() - .deleteAccount(buildDeleteProfileData(profileId, accountId)); - return true; + return buildGrpcConnection().deleteAccount(buildDeleteProfileData(profileId, accountId)).getSuccess(); } private ProfileData buildProfileData(Profile profile, Account account) { @@ -91,8 +82,8 @@ public class ErlangAccountMqttBridge implements ErlangAccountBridge { private AccountData buildAccountData(Account account) { return AccountData.newBuilder().setAccountId(account.getAccountId().toString()) .setFirstName(account.getFirstName()).setLastName(account.getLastName()) - .setProfileId(account.getProfileId().toString()) - .setUsername(account.getUsername()).setAvatar(account.getAvatar()) + .setProfileId(account.getProfileId().toString()).setUsername(account.getUsername()) + .setAvatar(account.getAvatar()) .setLastUpdateTimestamp( Objects.isNull(account.getLastUpdateTimestamp()) ? Long.toString(System.currentTimeMillis()) : account.getLastUpdateTimestamp().toString()) @@ -106,8 +97,9 @@ public class ErlangAccountMqttBridge implements ErlangAccountBridge { } private AccountBridgeGrpc.AccountBridgeBlockingStub buildGrpcConnection() { - ManagedChannel managedChannel = ManagedChannelBuilder.forAddress(erlangBridgeConfiguration.getHost(), - Integer.parseInt(erlangBridgeConfiguration.getPort())).usePlaintext().build(); + ManagedChannel managedChannel = ManagedChannelBuilder + .forAddress(erlangBridgeConfiguration.getHost(), Integer.parseInt(erlangBridgeConfiguration.getPort())) + .usePlaintext().build(); AccountBridgeGrpc.AccountBridgeBlockingStub bridgeServiceBlockingStub = AccountBridgeGrpc .newBlockingStub(managedChannel); return MetadataUtils.attachHeaders(bridgeServiceBlockingStub, getHeaders()); -- GitLab