Uploaded image for project: 'Clover'
  1. Clover
  2. CLOV-1142

Expose a Service Provider Interface for Clover for handling new languages

    XMLWordPrintable

Details

    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

    Description

      Create a Service Provider Interface for Clover, which will allow to attach new source code and/or byte code instrumenters. It will allow us to create a pluggable architecture so that new programming languages (e.g. Scala, JRuby, Jython, Closure) could be supported.

      Rough idea:

      • new language instrumenters can be attached by META-INF/services
        • they can provide some callback like canInstrument(File) or canInstrument(InstrumentationSource)
        • clover shall pass file/instrumentation source to such instrumenter together with Clover's configuration and an open instrumentation session
        • extension instruments on its own calling session.enterXyz()/exitXyz() methods
        • extension writes output file on its own
        • language instrumenter could work also with an Abstract Syntax Tree (e.g. Groovy or Scala - we may need a different way of attaching here)
      • new language renderers can be attached by META-INF/services - move to another issue?

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              mparfianowicz Marek Parfianowicz
              Votes:
              2 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: