myrle-krantz closed pull request #21: microservices in debug
URL: https://github.com/apache/fineract-cn-demo-server/pull/21
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/src/main/java/org/apache/fineract/cn/dev/ServiceRunner.java 
b/src/main/java/org/apache/fineract/cn/dev/ServiceRunner.java
index 9d45750..bb7212a 100644
--- a/src/main/java/org/apache/fineract/cn/dev/ServiceRunner.java
+++ b/src/main/java/org/apache/fineract/cn/dev/ServiceRunner.java
@@ -18,8 +18,18 @@
  */
 package org.apache.fineract.cn.dev;
 
+import static 
org.apache.fineract.cn.accounting.api.v1.EventConstants.POST_ACCOUNT;
+import static 
org.apache.fineract.cn.accounting.api.v1.EventConstants.POST_LEDGER;
+
 import ch.vorburger.mariadb4j.DB;
 import ch.vorburger.mariadb4j.DBConfigurationBuilder;
+import java.io.IOException;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Scanner;
+import java.util.concurrent.TimeUnit;
 import org.apache.fineract.cn.accounting.api.v1.client.LedgerManager;
 import org.apache.fineract.cn.accounting.importer.AccountImporter;
 import org.apache.fineract.cn.accounting.importer.LedgerImporter;
@@ -37,7 +47,11 @@
 import org.apache.fineract.cn.deposit.api.v1.client.DepositAccountManager;
 import org.apache.fineract.cn.group.api.v1.client.GroupManager;
 import org.apache.fineract.cn.identity.api.v1.client.IdentityManager;
-import org.apache.fineract.cn.identity.api.v1.domain.*;
+import org.apache.fineract.cn.identity.api.v1.domain.Authentication;
+import org.apache.fineract.cn.identity.api.v1.domain.Password;
+import org.apache.fineract.cn.identity.api.v1.domain.Permission;
+import org.apache.fineract.cn.identity.api.v1.domain.Role;
+import org.apache.fineract.cn.identity.api.v1.domain.UserWithPassword;
 import 
org.apache.fineract.cn.identity.api.v1.events.ApplicationPermissionEvent;
 import 
org.apache.fineract.cn.identity.api.v1.events.ApplicationPermissionUserEvent;
 import org.apache.fineract.cn.identity.api.v1.events.ApplicationSignatureEvent;
@@ -49,7 +63,11 @@
 import org.apache.fineract.cn.payroll.api.v1.client.PayrollManager;
 import org.apache.fineract.cn.portfolio.api.v1.client.PortfolioManager;
 import org.apache.fineract.cn.provisioner.api.v1.client.Provisioner;
-import org.apache.fineract.cn.provisioner.api.v1.domain.*;
+import org.apache.fineract.cn.provisioner.api.v1.domain.Application;
+import org.apache.fineract.cn.provisioner.api.v1.domain.AssignedApplication;
+import org.apache.fineract.cn.provisioner.api.v1.domain.AuthenticationResponse;
+import 
org.apache.fineract.cn.provisioner.api.v1.domain.IdentityManagerInitialization;
+import org.apache.fineract.cn.provisioner.api.v1.domain.Tenant;
 import org.apache.fineract.cn.reporting.api.v1.client.ReportManager;
 import org.apache.fineract.cn.rhythm.api.v1.client.RhythmManager;
 import org.apache.fineract.cn.rhythm.api.v1.events.BeatEvent;
@@ -63,7 +81,11 @@
 import org.apache.fineract.cn.test.servicestarter.Microservice;
 import org.cassandraunit.utils.EmbeddedCassandraServerHelper;
 import org.eclipse.aether.resolution.ArtifactResolutionException;
-import org.junit.*;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -78,17 +100,6 @@
 import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.util.Base64Utils;
 
-import java.io.IOException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Scanner;
-import java.util.concurrent.TimeUnit;
-
-import static 
org.apache.fineract.cn.accounting.api.v1.EventConstants.POST_ACCOUNT;
-import static 
org.apache.fineract.cn.accounting.api.v1.EventConstants.POST_LEDGER;
-
 @SuppressWarnings("SpringAutowiredFieldsWarningInspection")
 @RunWith(SpringRunner.class)
 @SpringBootTest()
@@ -98,11 +109,11 @@
   private static final String ADMIN_USER_NAME = "antony";
   private static final String TEST_LOGGER = "test-logger";
   private static final String LOAN_INCOME_LEDGER = "1100";
-  
+
   private static final String NOTIFICATION_USER_PASSWORD = "shingi";
   private static final String NOTIFICATION_ROLE = "notificationAdmin";
   private static final String NOTIFICATION_USER_IDENTIFIER = "wadaadmin";
-  
+
   private static Microservice<Provisioner> provisionerService;
   private static Microservice<IdentityManager> identityManager;
   private static Microservice<RhythmManager> rhythmManager;
@@ -117,11 +128,12 @@
   private static Microservice<PayrollManager> payrollManager;
   private static Microservice<GroupManager> groupManager;
   private static Microservice<NotificationManager> notificationManager;
-  
-  
+
+
   private static DB embeddedMariaDb;
 
   private static final String CUSTOM_PROP_PREFIX = "custom.";
+  private boolean runInDebug;
 
   @Configuration
   @ActiveMQForTest.EnableActiveMQListen
@@ -245,7 +257,7 @@ public void before() throws Exception
 
     ServiceRunner.groupManager = new Microservice<>(GroupManager.class, 
"group", "0.1.0-BUILD-SNAPSHOT", ServiceRunner.INTEGRATION_TEST_ENVIRONMENT);
     startService(generalProperties, ServiceRunner.groupManager);
-  
+
     ServiceRunner.notificationManager = new 
Microservice<>(NotificationManager.class, "notification", 
"0.1.0-BUILD-SNAPSHOT", ServiceRunner.INTEGRATION_TEST_ENVIRONMENT);
     startService(generalProperties, ServiceRunner.notificationManager);
   }
@@ -285,18 +297,18 @@ public void startDevServer() throws InterruptedException, 
IOException, ArtifactR
       ServiceRunner.provisionerService.kill();
     }
 
-    System.out.println("Identity Service: " + 
ServiceRunner.identityManager.getProcessEnvironment().serverURI());
-    System.out.println("Office Service: " + 
ServiceRunner.organizationManager.getProcessEnvironment().serverURI());
-    System.out.println("Customer Service: " + 
ServiceRunner.customerManager.getProcessEnvironment().serverURI());
-    System.out.println("Accounting Service: " + 
ServiceRunner.ledgerManager.getProcessEnvironment().serverURI());
-    System.out.println("Portfolio Service: " + 
ServiceRunner.portfolioManager.getProcessEnvironment().serverURI());
-    System.out.println("Deposit Service: " + 
ServiceRunner.depositAccountManager.getProcessEnvironment().serverURI());
-    System.out.println("Teller Service: " + 
ServiceRunner.tellerManager.getProcessEnvironment().serverURI());
-    System.out.println("Reporting Service: " + 
ServiceRunner.reportManager.getProcessEnvironment().serverURI());
-    System.out.println("Cheque Service: " + 
ServiceRunner.chequeManager.getProcessEnvironment().serverURI());
-    System.out.println("Payroll Service: " + 
ServiceRunner.payrollManager.getProcessEnvironment().serverURI());
-    System.out.println("Group Service: " + 
ServiceRunner.groupManager.getProcessEnvironment().serverURI());
-    System.out.println("Notification Service: " + 
ServiceRunner.notificationManager.getProcessEnvironment().serverURI());
+    System.out.println(identityManager.toString());
+    System.out.println(organizationManager.toString());
+    System.out.println(customerManager.toString());
+    System.out.println(ledgerManager.toString());
+    System.out.println(portfolioManager.toString());
+    System.out.println(depositAccountManager.toString());
+    System.out.println(tellerManager.toString());
+    System.out.println(reportManager.toString());
+    System.out.println(chequeManager.toString());
+    System.out.println(payrollManager.toString());
+    System.out.println(groupManager.toString());
+    System.out.println(notificationManager.toString());
 
     boolean run = true;
 
@@ -311,10 +323,16 @@ public void startDevServer() throws InterruptedException, 
IOException, ArtifactR
   }
 
   private void startService(ExtraProperties properties, Microservice 
microservice) throws InterruptedException, IOException, 
ArtifactResolutionException {
+    if (this.runInDebug) {
+      microservice.runInDebug();
+    }
     microservice.addProperties(properties);
     microservice.start();
     final boolean registered = 
microservice.waitTillRegistered(discoveryClient);
     logger.info("Service '{}' started and {} with Eureka.", 
microservice.name(), registered ? "registered" : "not registered");
+    if (this.runInDebug) {
+      logger.info("Service '{}' started with debug port {}.", 
microservice.name(), microservice.debuggingPort());
+    }
     microservice.setApiFactory(this.apiFactory);
 
     TimeUnit.SECONDS.sleep(20); //Give it some extra time before the next 
service...
@@ -466,13 +484,13 @@ private String provisionAppsViaSeshatForTenant(final 
Tenant tenant) throws Inter
       provisionApp(tenant, ServiceRunner.payrollManager, 
org.apache.fineract.cn.payroll.api.v1.EventConstants.INITIALIZE);
 
       provisionApp(tenant, ServiceRunner.groupManager, 
org.apache.fineract.cn.group.api.v1.EventConstants.INITIALIZE);
-  
+
       provisionApp(tenant, ServiceRunner.notificationManager, 
org.apache.fineract.cn.notification.api.v1.events.NotificationEventConstants.INITIALIZE);
-  
+
       final UserWithPassword orgAdminUserPassword = 
createOrgAdminRoleAndUser(tenantAdminPassword.getAdminPassword());
-  
+
       createNotificationsAdmin(tenantAdminPassword.getAdminPassword());
-  
+
       createChartOfAccounts(orgAdminUserPassword);
 
       return tenantAdminPassword.getAdminPassword();
@@ -631,39 +649,39 @@ private Role defineOrgAdministratorRole() {
 
     return role;
   }
-  
+
   private UserWithPassword createNotificationsAdmin(final String 
tenantAdminPassword) throws InterruptedException {
     final Authentication adminAuthentication;
     try (final AutoUserContext ignored = new AutoGuest()) {
       adminAuthentication = 
ServiceRunner.identityManager.api().login(ADMIN_USER_NAME, tenantAdminPassword);
     }
-    
+
     try (final AutoUserContext ignored = new AutoUserContext(ADMIN_USER_NAME, 
adminAuthentication.getAccessToken())) {
       final Role notificationRole = defineNotificationRole();
-      
+
       ServiceRunner.identityManager.api().createRole(notificationRole);
       
Assert.assertTrue(this.eventRecorder.wait(EventConstants.OPERATION_POST_ROLE, 
notificationRole.getIdentifier()));
-      
+
       final UserWithPassword notificationUser = new UserWithPassword();
       notificationUser.setIdentifier(NOTIFICATION_USER_IDENTIFIER);
       
notificationUser.setPassword(Base64Utils.encodeToString(NOTIFICATION_USER_PASSWORD.getBytes()));
       notificationUser.setRole(notificationRole.getIdentifier());
-      
+
       ServiceRunner.identityManager.api().createUser(notificationUser);
       
Assert.assertTrue(this.eventRecorder.wait(EventConstants.OPERATION_POST_USER, 
notificationUser.getIdentifier()));
-      
+
       ServiceRunner.identityManager.api().logout();
-      
+
       enableUser(notificationUser);
       return notificationUser;
     }
   }
-  
+
   private Role defineNotificationRole() {
     final Permission customerPermission = new Permission();
     
customerPermission.setAllowedOperations(Collections.singleton(AllowedOperation.READ));
     
customerPermission.setPermittableEndpointGroupIdentifier(org.apache.fineract.cn.customer.PermittableGroupIds.CUSTOMER);
-    
+
     final Role role = new Role();
     role.setIdentifier(NOTIFICATION_ROLE);
     role.setPermissions(Arrays.asList(


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to