vFunction Logo

In this section of the hands-on, we will focus on Inventory Controller domain.

Dynamic Classes

  1. In the domains view on the analysis page Open the InventoryController, the dynamic class exclusivity is 66%

    • Click on VIEW next to “Domain Classes”, you will see:
      • Two, exclusive classes
      • One, non exclusive class
      • Two, common class.

    analysis analysis

  2. Click on the NON list to view the non exclusive class “InventoryService”

    • Click on the InventoryService class
      • It belongs to the com.oms.service, a service class that should be the service for the InventoryController domain.
        • But, it is also being called by “ProductController” domain.
      • Click on DETAILS next to “Not exclusive to the service”
      • And then, click on the Product Controller and then on the left most arrow you should be able to see the call tree where the caller is “ProductService.getProductInventory()”

    analysis analysis analysis analysis

  3. 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
      • 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.
    • Now, you can see that a new entry point is created InventoryService$$EnhancerBySpringCGLIB.fetchInventory() analysis analysis analysis analysis
  4. Click on Back to Domains, you will see that for the InventoryController Domain, the Dynamic classes, Static classes and Resources are all completely exclusive with 100% exclusivity.

    analysis

Wrap Up

Now lets move to analyzing the ProductController domain.

vFunction Logo