Moving on to the InventoryController domain
In the domains view of the analysis page, locate and open InventoryController
Click VIEW next to Dynamic classes to review the dynamic analysis results. There are two exclusive classes and one non-exclusive class (InventoryService)
Click on Details of the non-exclusive InventoryService class. You can see that ProductController is also using it.
Scroll down in the Details popup and click on line where the caller is ProductService.getProductInventory(), the call tree will open. Click on the arrow head (<-) on the left of the call tree to see the caller. The call tree should lool similar to the below:
Product Domain calling the InventoryService class |
The call tree shows the ProductController is calling the InventoryService class, which is the service class of InventoryController domain. Technically we can either merge the two domains into one domain (we will do this later for the Payment domains) or we can create a new entry point in InventoryController for ProductController to access as a client. Since both domains represent distinct functional domains, we will choose the second option.
In the call tree, hover over the InventoryService$$EnhancerBySpringCGLIB.fetchInventory() node, click MAKE ENTRY POINT, then METHOD, check InventoryController and click MAKE.
Creating an Entry Point in the call tree |
Click Back to domains. The InventoryController service should be completely exclusive (including static and resources)