Explanation of Jar Graph and Infra Jars



Jar Graph


What is a Jar Graph?

vFunction can display a Jar Graph showing the various internal Jar files that make up the application and the dependencies across those Jars as seen in the figure above. This provides insights on the deployment architecture and how the various classes are partitioned across the Jars.


What is an Infra Jar?

Infra Jars are not considered part of the Analysis as these Jars would not be modified. The classes in the Infra Jars are considered external or 3rd Party as they cannot be included in the Domains / Common Library. However, the Dependencies to these Jars are captured in vFunction. And, if a Domain is extracted as a Service, the Extraction Engine will create Dependencies in the Maven and Gradle Build Files to the relevant Infra Jars.

vFunction ensures that Infra Jars do not depend on Non-infra Jars. So if one marks a Jar as Infra that has dependencies on Non-infra Jars, vFunction will notify the user that the dependent Jars will also become Infra Jars. Also, in the Analysis Parameters dialog, the user won’t be able to add a Jar as an Infra Jar if it has dependencies on Non-infra Jars.

Marking a Jar as Infra will remove all it’s classes from the Domains and Common Library so the impact on the Domain and Common Classes partition can be significant. So, it is recommended to create a Measurement Snapshot or download the Measurement before marking Jars as Infra.

Some examples of Jars that can be considered Infra Jars are:

  • Jars that should remain unchanged instead of splitting their classes into the various domains and the common library
  • Jars with libraries that have no domain specific logic
  • Jars that have remained unmodified for a long time by the developers