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

as a developer I'd like not to deploy clover.jar to app server

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

      Embed clover-runtime.jar into created JAR/WAR/EAR

      Problem:

      Instrumenting code by Clover is not enough, user has to manually add clover.jar to the runtime classpath. Otherwise it gets "ClassNotFoundException com_cenqua_clover/CoverageRecorder" error. There are over 6'000 views on answers.atlassian.com about this problem (it's #1 on the list)

      Solution:

      Create a possiblity to automatically or manually embed clover-runtime.jar into produced JAR/WAR/EAR artifacts.

      Tasks:

      1) Restructure Clover modules and find exact set of runtime classes, create clover-runtime.jar artifact out of it (will be published on Maven Central). Such subset was already found for Clover-for-Android, but it does not have classes for Distributed Coverage feature. See linked issue.

      2) Create Ant task like <clover-embed-runtime-jar targetJar="my.jar"/> which will allow to manually put runtime classes into it.

      3) Check if it would be possible to intercept all <jar/> calls as well and do it automatically. Add option to disable this automatic integration and/or to specify regular expression pattern which jars shall be enhanced.

      4) Create Maven goal like clover2:embed-runtime-jar with <targetJar> property.

      5) Check how to automatically embed Clover runtime classes. Possibilities:

      • extract clover-runtime.jar into target/classes or target/classes-clover
      • scan build reactor, intercept packaging tasks like maven-ear-plugin, maven-jar-plugin, maven-rar-plugin, maven-war-plugin, maven-assembly-plugin
      • modify maven project at runtime and add clover:clover-runtime dependency

      6) Eclipse integration - we already have -Xbootclasspath for "Run with Clover as..." but it's not enough if user has web application for example. Extract clover-runtime.jar into project's build folder so that other packaging tools could automatically pick these classes. Add pre-build or post-clean event handler to make sure that these classes will be still present after rebuild. Add some option in Window > Preferences or Project > Properties for this.

      7) IDEA integration - put these classes into out/production and out/test. Add option in File > Settings > Project Settings or File > Settings > IDE Settings for this.

      8) Grails integration - t.b.d.

            [CLOV-1237] as a developer I'd like not to deploy clover.jar to app server

            Katherine Yabut made changes -
            Workflow Original: JAC Suggestion Workflow [ 3342497 ] New: JAC Suggestion Workflow 3 [ 3584990 ]
            Status Original: RESOLVED [ 5 ] New: Closed [ 6 ]
            Monique Khairuliana (Inactive) made changes -
            Epic Child Original: CLOV-1246 [ 261474 ]
            Epic Child Original: CLOV-1247 [ 261475 ]
            Epic Child Original: CLOV-1248 [ 261476 ]
            Epic Child Original: CLOV-1238 [ 261466 ]
            Epic Child Original: CLOV-1249 [ 261478 ]
            Epic Child Original: CLOV-1239 [ 261467 ]
            Epic Child Original: CLOV-1240 [ 261468 ]
            Epic Child Original: CLOV-1241 [ 261469 ]
            Epic Child Original: CLOV-1242 [ 261470 ]
            Epic Child Original: CLOV-1243 [ 261471 ]
            Epic Child Original: CLOV-1244 [ 261472 ]
            Epic Child Original: CLOV-1245 [ 261473 ]
            Monique Khairuliana (Inactive) made changes -
            Epic Colour Original: ghx-label-2
            Epic Name Original: clover-runtime
            Epic Status Original: To Do [ 11732 ]
            Workflow Original: New Clover Workflow - Restricted [ 1474521 ] New: JAC Suggestion Workflow [ 3342497 ]
            Issue Type Original: Epic [ 19 ] 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 -
            Epic Colour New: ghx-label-2
            Owen made changes -
            Workflow Original: New Clover Workflow [ 898088 ] New: New Clover Workflow - Restricted [ 1474521 ]
            Marek Parfianowicz made changes -
            Description Original: *Embed clover-runtime.jar into created JAR/WAR/EAR*

            *Problem:*

            Instrumenting code by Clover is not enough, user has to manually add clover.jar to the runtime classpath. Otherwise it gets "ClassNotFoundException com_cenqua_clover/CoverageRecorder" error. There are over 6'000 views on answers.atlassian.com about this problem (it's #1 on the list)

            *Solution:*

            Create a possiblity to automatically or manually embed clover-runtime.jar into produced JAR/WAR/EAR artifacts.

            *Tasks:*

            1) Restructure Clover modules and find exact set of runtime classes, create clover-runtime.jar artifact out of it (will be published on Maven Central). Such subset was already found for Clover-for-Android, but it does not have classes for Distributed Coverage feature. See linked issue.

            2) Create Ant task like <clover-embed-runtime-jar targetJar="my.jar"/> which will allow to manually put runtime classes into it.

            3) Check if it would be possible to intercept all <jar/> calls as well and do it automatically. Add option to disable this automatic integration and/or to specify regular expression pattern which jars shall be enhanced.

            4) Create Maven goal like clover2:embed-runtime-jar with <targetJar> property.

            5) Check how to automatically embed Clover runtime classes. Possibilities:
             * extract clover-runtime.jar into target/classes or target/classes-clover
             * scan build reactor, intercept packaging tasks like maven-ear-plugin, maven-jar-plugin, maven-rar-plugin, maven-war-plugin, maven-assembly-plugin
             * modify maven project at runtime and add clover:clover-runtime dependency

            6) Eclipse integration - we already have -Xbootclasspath for "Run with Clover as..." but it's not enough if user has web application for example. Extract clover-runtime.jar into project's build folder so that other packaging tools could automatically pick these classes. Add pre-build or post-clean event handler to make sure that these classes will be still present after rebuild. Add some option in Window > Preferences or Project > Properties for this.

            7) IDEA integration - put these classes into out/production and out/test. Add option in File > Settings > Project Settings or File > Settings > IDE Settings for this.

            8) Grails integration - t.b.d.
            New: *Embed clover-runtime.jar into created JAR/WAR/EAR*

            *Problem:*

            Instrumenting code by Clover is not enough, user has to manually add clover.jar to the runtime classpath. Otherwise it gets "ClassNotFoundException com_cenqua_clover/CoverageRecorder" error. There are over 6'000 views on answers.atlassian.com about this problem (it's #1 on the list)

            *Solution:*

            Create a possiblity to automatically or manually embed clover-runtime.jar into produced JAR/WAR/EAR artifacts.

            *Tasks:*

            1) (/) Restructure Clover modules and find exact set of runtime classes, create clover-runtime.jar artifact out of it (will be published on Maven Central). Such subset was already found for Clover-for-Android, but it does not have classes for Distributed Coverage feature. See linked issue.

            2) Create Ant task like <clover-embed-runtime-jar targetJar="my.jar"/> which will allow to manually put runtime classes into it.

            3) Check if it would be possible to intercept all <jar/> calls as well and do it automatically. Add option to disable this automatic integration and/or to specify regular expression pattern which jars shall be enhanced.

            4) Create Maven goal like clover2:embed-runtime-jar with <targetJar> property.

            5) Check how to automatically embed Clover runtime classes. Possibilities:
             * extract clover-runtime.jar into target/classes or target/classes-clover
             * scan build reactor, intercept packaging tasks like maven-ear-plugin, maven-jar-plugin, maven-rar-plugin, maven-war-plugin, maven-assembly-plugin
             * modify maven project at runtime and add clover:clover-runtime dependency

            6) Eclipse integration - we already have -Xbootclasspath for "Run with Clover as..." but it's not enough if user has web application for example. Extract clover-runtime.jar into project's build folder so that other packaging tools could automatically pick these classes. Add pre-build or post-clean event handler to make sure that these classes will be still present after rebuild. Add some option in Window > Preferences or Project > Properties for this.

            7) IDEA integration - put these classes into out/production and out/test. Add option in File > Settings > Project Settings or File > Settings > IDE Settings for this.

            8) Grails integration - t.b.d.
            Marek Parfianowicz made changes -
            Remote Link New: This issue links to "Page (Atlassian Documentation)" [ 111481 ]
            Piotr Swiecicki made changes -
            Workflow Original: Clover Workflow [ 896574 ] New: New Clover Workflow [ 898088 ]

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

                Created:
                Updated:
                Resolved: