-
Suggestion
-
Resolution: Won't Fix
-
None
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.
- relates to
-
CLOV-1123 Restructure Clover modules
-
- Closed
-
-
CLOV-271 Ant task needed to add Clover runtime classes to a jar/war/ear file
- Closed
-
CLOV-563 Make a single minimal Clover runtime jar that only includes classes required by running instrumented applications.
- Closed
-
CLOV-580 Allow expansion of the Clover runtime jar into a project folder to allow for easier deployment of instrumented jars and wars
- Closed
-
CLOV-818 Export clovered builds from Eclipse
- Closed
- mentioned in
-
Page Loading...
as a developer I'd like not to deploy clover.jar to app server
-
Suggestion
-
Resolution: Won't Fix
-
None
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.
- relates to
-
CLOV-1123 Restructure Clover modules
-
- Closed
-
-
CLOV-271 Ant task needed to add Clover runtime classes to a jar/war/ear file
- Closed
-
CLOV-563 Make a single minimal Clover runtime jar that only includes classes required by running instrumented applications.
- Closed
-
CLOV-580 Allow expansion of the Clover runtime jar into a project folder to allow for easier deployment of instrumented jars and wars
- Closed
-
CLOV-818 Export clovered builds from Eclipse
- Closed
- mentioned in
-
Page Loading...