· Apr 7, 2016

Entry points for Ensemble dependency/usage

InSync is an application currently under development by InterSystems, primarily using Ensemble, as a mixed CSP/Zen web application. There's a lot of defunct legacy code in the code base and we're actively seeking it out and trimming the deadwood out.

Much of this investigation is based on a dependency scanning tool that we've written in COS, which is quite powerful but very customized to the InSync environment. It uses the InSync web UI's navigation menu and a few other key "entry points" to figure out what classes or other objects (e.g. javascript files) are "in use" and which are not.

One of our entry points is our default Ensemble production class (subclassed from Ens.Production).

I'm not an Ensemble expert so my question is this: is there a well-defined list of other ways in which Ensemble can put something "into use" without appearing in the production class's XML content? For example, rules, DTL, ... etc.?

What I'd like to be able to do is send a request to our Implementation team at the customer site with a clear checklist, or even a custom routine or classmethod they could run that would survey the instance and tell me what other things might be "live", so that I can figure out what's defunct and clean out the underbrush.

Thanks in advance

Discussion (2)0
Log in or sign up to continue

I am not sure if this helps, but I want to mention that Ensemble comes with an option to export all classes and routines that are required to run an Ensemble production. At least, all dependencies Ensemble can resolve.

You can find the related documentation here:

Maybe you can take a look at the code behind the scenes, or analyze the output of such an export.