EMMA API's

Developers
Akshatha
2012-01-05
2013-05-09
  • Akshatha
    Akshatha
    2012-01-05

    Does EMMA expose any API's or web services for the other applications to interact?

    Regards,
    Akshatha

     
  • Hi,

    EMMA has no "official" API. But as it is fully implemented in Java you can interact with EMMA via its Java implementation classes. This is how I implemented EclEmma 1.x. Since EMMA 2.1.5320 there is a proprietary remoting API, see release notes.

    Alternatively you might take a look at our new code coverage library JaCoCo, which has been designed for integration from the very beginning and has a documented API.

    Cheers,
    -marc

     
  • Vlad Roubtsov
    Vlad Roubtsov
    2012-01-06

    In v2.1 codebase, see the extensive javadoc for com.vladium.emma.Processor and com.vladium.emma.Command. These were created specifically for programmatic integration with EMMA.

    Some "under the hood" stuff can be learned by examining code comments in  com.vladium.emma.data.CoverageData and com.vladium.emma.data.MetaData. Persistence of this data (i.e. the *.em, *.ec files) is managed by com.vladium.emma.data.DataFactory.

    Finally, report generation is done in  com.vladium.emma.report package, with specific details of a given report type in com.vladium.emma.report.<type> subpackage. Reports are generated via traversal visits of a tree of "items" representing data aggregates to report. This is pretty much the classic Visitor pattern, with com.vladium.emma.report.IItemVisitor as the starting point.