IMPORTANT: JAC is a Public system and anyone on the internet will be able to view the data in the created JAC tickets. Please don’t include Customer or Sensitive data in the JAC ticket.
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.

            Loading...
            IMPORTANT: JAC is a Public system and anyone on the internet will be able to view the data in the created JAC tickets. Please don’t include Customer or Sensitive data in the JAC ticket.
            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.

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

                          Created:
                          Updated:
                          Resolved:

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

                              Created:
                              Updated:
                              Resolved: