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

myrle pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract-cn-provisioner.git

commit d3679115b96aadb1627b20c31c367f3ec9ccff97
Author: myrle-krantz <mkra...@mifos.org>
AuthorDate: Thu Jun 8 18:52:23 2017 +0200

    Re-ordering initialization calls.
---
 .../internal/service/TenantApplicationService.java | 12 +++++------
 .../service/applications/AnubisInitializer.java    | 23 +++++++++++++++-------
 .../applications/IdentityServiceInitializer.java   |  3 +++
 3 files changed, 25 insertions(+), 13 deletions(-)

diff --git 
a/service/src/main/java/io/mifos/provisioner/internal/service/TenantApplicationService.java
 
b/service/src/main/java/io/mifos/provisioner/internal/service/TenantApplicationService.java
index cc073b4..2e45d9c 100644
--- 
a/service/src/main/java/io/mifos/provisioner/internal/service/TenantApplicationService.java
+++ 
b/service/src/main/java/io/mifos/provisioner/internal/service/TenantApplicationService.java
@@ -126,12 +126,7 @@ public class TenantApplicationService {
 
 
     applicationNameToUriPairs.forEach(x -> {
-      final ApplicationSignatureSet applicationSignatureSet = 
anubisInitializer.initializeAnubis(
-              tenantIdentifier,
-              x.name,
-              x.uri,
-              identityManagerSignatureSet.getTimestamp(),
-              identityManagerSignatureSet.getIdentityManagerSignature());
+      final ApplicationSignatureSet applicationSignatureSet = 
anubisInitializer.createSignatureSet(tenantIdentifier, x.name, x.uri, 
identityManagerSignatureSet.getTimestamp(), 
identityManagerSignatureSet.getIdentityManagerSignature());
 
       identityServiceInitializer.postApplicationDetails(
               tenantIdentifier,
@@ -140,6 +135,11 @@ public class TenantApplicationService {
               x.name,
               x.uri,
               applicationSignatureSet);
+
+      //InitializeResources on the service being added should occur last, for 
two reasons:
+      // 1.) When the initialization event is put on the queue for this 
app/tenant combo, the app is fully ready for business.
+      // 2.) If the app depeneds on the provisioning of identitypermissions in 
its initialization, those resources will be there.
+      anubisInitializer.initializeResources(tenantIdentifier, x.name, x.uri);
     });
   }
 
diff --git 
a/service/src/main/java/io/mifos/provisioner/internal/service/applications/AnubisInitializer.java
 
b/service/src/main/java/io/mifos/provisioner/internal/service/applications/AnubisInitializer.java
index 657923d..cde9c5d 100644
--- 
a/service/src/main/java/io/mifos/provisioner/internal/service/applications/AnubisInitializer.java
+++ 
b/service/src/main/java/io/mifos/provisioner/internal/service/applications/AnubisInitializer.java
@@ -42,18 +42,27 @@ public class AnubisInitializer {
     this.logger = logger;
   }
 
-  public ApplicationSignatureSet initializeAnubis(final @Nonnull String 
tenantIdentifier,
-                                                  final @Nonnull String 
applicationName,
-                                                  final @Nonnull String uri,
-                                                  final @Nonnull String 
keyTimestamp,
-                                                  final @Nonnull Signature 
signature) {
+  public void initializeResources(@Nonnull String tenantIdentifier, @Nonnull 
String applicationName, @Nonnull String uri) {
     try (final AutoCloseable ignored
-                 = 
this.applicationCallContextProvider.getApplicationCallContext(tenantIdentifier, 
applicationName))
+                  = 
this.applicationCallContextProvider.getApplicationCallContext(tenantIdentifier, 
applicationName))
     {
       final Anubis anubis = 
this.applicationCallContextProvider.getApplication(Anubis.class, uri);
       anubis.initializeResources();
+      logger.info("Anubis initializeResources for tenant '{}' and application 
'{}' succeeded.",
+              tenantIdentifier, applicationName);
+
+    } catch (final Exception e) {
+      throw new IllegalStateException(e);
+    }
+  }
+
+  public ApplicationSignatureSet createSignatureSet(@Nonnull String 
tenantIdentifier, @Nonnull String applicationName, @Nonnull String uri, 
@Nonnull String keyTimestamp, @Nonnull Signature signature) {
+    try (final AutoCloseable ignored
+                 = 
this.applicationCallContextProvider.getApplicationCallContext(tenantIdentifier, 
applicationName))
+    {
+      final Anubis anubis = 
this.applicationCallContextProvider.getApplication(Anubis.class, uri);
       final ApplicationSignatureSet applicationSignatureSet = 
anubis.createSignatureSet(keyTimestamp, signature);
-      logger.info("Anubis initialization for io.mifos.provisioner.tenant '{}' 
and application '{}' succeeded with signature set '{}'.",
+      logger.info("Anubis createSignatureSet for tenant '{}' and application 
'{}' succeeded with signature set '{}'.",
               tenantIdentifier, applicationName, applicationSignatureSet);
       return applicationSignatureSet;
 
diff --git 
a/service/src/main/java/io/mifos/provisioner/internal/service/applications/IdentityServiceInitializer.java
 
b/service/src/main/java/io/mifos/provisioner/internal/service/applications/IdentityServiceInitializer.java
index bca9b4e..8c62879 100644
--- 
a/service/src/main/java/io/mifos/provisioner/internal/service/applications/IdentityServiceInitializer.java
+++ 
b/service/src/main/java/io/mifos/provisioner/internal/service/applications/IdentityServiceInitializer.java
@@ -170,6 +170,7 @@ public class IdentityServiceInitializer {
     final List<ApplicationPermission> applicationPermissionRequirements;
     try (final AutoCloseable ignored = 
applicationCallContextProvider.getApplicationCallGuestContext(tenantIdentifier))
 {
       applicationPermissionRequirements = 
getApplicationPermissionRequirements(applicationName, applicationUri);
+      logger.info("Application permission requirements for {} contain {}.", 
applicationName, applicationPermissionRequirements);
 
     } catch (final Exception e) {
       throw new IllegalStateException(e);
@@ -286,6 +287,8 @@ public class IdentityServiceInitializer {
           final @Nonnull ApplicationPermission applicationPermission) {
     try {
       identityService.createApplicationPermission(applicationName, 
applicationPermission.getPermission());
+      logger.info("Application permission '{}.{}' created.",
+              applicationName, 
applicationPermission.getPermission().getPermittableEndpointGroupIdentifier());
     }
     catch (final ApplicationPermissionAlreadyExistsException 
alreadyExistsException)
     {

-- 
To stop receiving notification emails like this one, please contact
my...@apache.org.

Reply via email to