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

Expose a Service Provider Interface for Clover for handling new languages

    • 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.

      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?

            [CLOV-1142] Expose a Service Provider Interface for Clover for handling new languages

            Katherine Yabut made changes -
            Workflow Original: JAC Suggestion Workflow [ 3342489 ] New: JAC Suggestion Workflow 3 [ 3584403 ]
            Status Original: RESOLVED [ 5 ] New: Closed [ 6 ]
            Monique Khairuliana (Inactive) made changes -
            Epic Link Original: CLOV-1737 [ 431986 ]
            Monique Khairuliana (Inactive) made changes -
            Workflow Original: New Clover Workflow [ 896922 ] New: JAC Suggestion Workflow [ 3342489 ]
            Issue Type Original: New Feature [ 2 ] New: Suggestion [ 10000 ]
            Status Original: Closed [ 6 ] New: Resolved [ 5 ]
            Michael Andreacchio made changes -
            Resolution New: Won't Fix [ 2 ]
            Status Original: Open [ 1 ] New: Closed [ 6 ]
            Marek Parfianowicz made changes -
            Assignee Original: Marek Parfianowicz [ mparfianowicz ]
            Marek Parfianowicz made changes -
            Fix Version/s New: 4.2.0 [ 56395 ]
            Fix Version/s Original: 5.0.0 [ 37518 ]
            Marek Parfianowicz made changes -
            Rank New: Ranked higher
            Marek Parfianowicz made changes -
            Sprint Original: 5.0.0 Sprint 4 [ 2623 ]
            Marek Parfianowicz made changes -
            Rank New: Ranked lower
            Marek Parfianowicz made changes -
            Sprint Original: 5.0.0 Sprint 2 [ 2603 ] New: 5.0.0 Sprint 4 [ 2623 ]

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

                Created:
                Updated:
                Resolved: