Hello team,

*Note*: I am using Jacoco version - 0.8.6-SNAPSHOT. 

There is a requirement where I need to read Jacoco execution dump file and 
get meaningful data out of it using Jacoco Java API.  

For that, I did try to follow below steps but not able to read exec file. 
It will be really helpful if you can provide any pointer to achieve this 
task.

   1. Run Jacoco as an agent and attached to the jvm.  I used below command 
   for that-  [Working]
      - java 
      -javaagent:C:/jacocoagent.jar=port=36320,includes=com.*,output=tcpserver 
      -jar demoapp.jar
   2. Use Jacoco Java api to connect to this tcpserver and get the dump [
   Working]  - pls refer attached 'Jacoco_execution_dump.png' screenshot 
      - Here I am getting data from tcp server and dumping into jacoco.exec 
      file. [Eventually, I just want to read the data from tcp server and 
      directly convert that byte data into meaningful information rather than 
      dumping into jacoco.exec file and then read that file]
   3. Now I am trying to use Jacoco Java api (CoverageBuilder) to read the 
   jacoco.exec file [created in step-2] and convert this data to get 
   class/method coverage. Code which I am using to read jacoco.exec file is 
   put down below. While running that piece of code, I am getting below error 
   - 
   

Exception in thread "main" java.lang.IncompatibleClassChangeError: class 
org.jacoco.core.internal.flow.ClassProbesVisitor has interface 
org.objectweb.asm.ClassVisitor as super class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at 
org.helmetsrequired.jacocotogo.JacocoClient.readJacocoFile(JacocoClient.java:142)
at org.helmetsrequired.jacocotogo.JacocoClient.main(JacocoClient.java:38)


<about:invalid#zClosurez>
<about:invalid#zClosurez>*Code to read Jacoco.exec file -* 
<about:invalid#zClosurez> <about:invalid#zClosurez>*      private void 
readJacocoFile() throws Exception {* <about:invalid#zClosurez>* File 
execFile = new File("jacoco.exec");* <about:invalid#zClosurez>*            
    ExecFileLoader loader = new ExecFileLoader();* <about:invalid#zClosurez>*  
              loader.load(execFile);* <about:invalid#zClosurez>
<about:invalid#zClosurez>*               final CoverageBuilder 
coverageBuilder = new CoverageBuilder();* <about:invalid#zClosurez>*       
 final Analyzer analyzer = new Analyzer(* 
<about:invalid#zClosurez>*loader.getExecutionDataStore(), 
coverageBuilder); <about:invalid#zClosurez>** File classesDirectory = new 
File("C:\\classes");* <about:invalid#zClosurez>* 
analyzer.analyzeAll(classesDirectory);* <about:invalid#zClosurez> 
<about:invalid#zClosurez>* IBundleCoverage coverage = 
coverageBuilder.getBundle("jacoco");* <about:invalid#zClosurez>* 
System.out.println(coverage.getName());* <about:invalid#zClosurez>* for 
(IPackageCoverage p : coverage.getPackages()) {* <about:invalid#zClosurez>* 
System.out.println("in the firsr for loop: " + p.getName());* 
<about:invalid#zClosurez>* String packageName = p.getName();* 
<about:invalid#zClosurez>* for (IClassCoverage c : p.getClasses()) {* 
<about:invalid#zClosurez>* System.out.println(coverage.getName() + " : " + 
packageName + " : " +  c);* <about:invalid#zClosurez>* } * 
<about:invalid#zClosurez>* } * <about:invalid#zClosurez> } 
<about:invalid#zClosurez>
<about:invalid#zClosurez>

-- 
You received this message because you are subscribed to the Google Groups 
"JaCoCo and EclEmma Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jacoco/54048aa9-3b71-4fe6-a10d-555422b0c5db%40googlegroups.com.

Reply via email to