Hi John,

sorry, my bad. I thought "core JAR" refers to Arquillian.

I took a look at the source code and noticed that you implemented a "offline instrumentation" aproach. Since JaCoCo 0.6.2 this is available out of the box. Some pointers:

- The implementation for instrumentation is called org.jacoco.core.runtime.OfflineInstrumentationAccessGenerator - jacocoagent.jar can directly be used as the JaCoCo offline runtime. It already contains a shaded version of ASM5. - To collect coverage information within the container the runtime offers a public API in package org.jacoco.agent.rt (http://www.eclemma.org/jacoco/trunk/doc/api/org/jacoco/agent/rt/package-summary.html).

I'm a litle reluctant to distribute a shaded version of ASM with JaCoCo core. As I said ASM is used in the JaCoCo core API (not just used internally). I don't want anybody to depend "our" version of ASM APIs.

Cheers,
-marc


On 02.11.14 16:54, John D. Ament wrote:
Hi,

No, JaCoCo isn't inside the app server. The jacoco core library ends up inside the app server to trigger test reads. I guess you guys would be the best to explain what the core JAR does in respect to JaCoCo?

Perhaps looking at the source code would help you? https://github.com/arquillian/arquillian-extension-jacoco - it's pretty straight forward on how it integrates w/ JaCoCo.


John

On Sunday, November 2, 2014 10:22:36 AM UTC-5, Marc R. Hoffmann wrote:

    Hi John,

    sorry for asking, but I'm not familiar with the Arquillian
    arhitecture:

    - I understand that the JaCoCo agent whichs runs on the app server
    is not the problem, right?
    - The problem is with the "core JAR". What is the purpose of the
    core JAR in respect to JaCoCo?
    - Is there some repo or architecture outline I can study?

    Cheers,
    -marc


    On 02.11.14 14:32, John D. Ament wrote:
    Hi,

    Actually what Arquillian is doing is creating its own shaded JAR
    (at runtime) that contains the JaCoCo and ASM libraries in it,
    along with the Arquillian extension.  This is the core JAR.  the
    agent runs separately to receive data from the app server.

    The key thing to my request is the relocation of the classes.
     The ASM 3.1 JAR that ships gets activated by application that
     use it - e.g. CXF in your runtime.

    This is a classified shaded JAR, not a replacement shaded JAR.  I
    wouldn't want to break anyone who might be using the old one.

    John

    On Sunday, November 2, 2014 5:46:41 AM UTC-5, Mirko Friedenhagen
    wrote:

        Just guessing: Arquilian builds an agent of it's own based on
        jacoco-core which is deployed to/running as part of Wildfire
        formerly-known-as-jboss. WF uses asm4. To ease building the
        arquilian-jacoco-agent a shaded jar could be helpful.
        Drawback: it has a similar but distinct API.

        Regards
        Mirko
-- Sent from my mobile

        On Nov 2, 2014 9:31 AM, "Marc R. Hoffmann"
        <[email protected]> wrote:

            Hi John,

            ASM5 is required for Java 8 support.

            We already deliver two artifacts with shaded ASM5 included:

            1) The JaCoCo agent itself (here even jacoco itself is
            relocated to a random package name to allow running
            JaCoCo on JaCoCo)
            2) The jacocoant.jar which is part of the all-in-download
            distribution

            I don't think we can shade ASM for org.jacoco.core as ASM
            is part of the API here (more API to come once we have
            filtering). My assumption is that we should only apply
            shading for "stand alone tools" which do not provide a
            Java API.

            John, what is the specific situation where you run in
            trouble? Runtime? Analysis/Report generation time? I'm
            not familiar with the Arquillian architecture.

            Cheers,
            -marc


            On 02.11.14 01:15, John D. Ament wrote:
            So, I wanted to run this idea by the JaCoCo folks.

            I'm somewhat affiliated with Arquillian.  Today I ran
            into an issue when someone upgraded the Arquillian
            JaCoCo extension to 0.7.1 and Java 8 support.  While a
            great idea, looks like you did this by upgrading to ASM
            5 as well.

            The problem is that ASM 5 isn't compatible w/ WildFly
8.1 (at least not yet) due to some JAX-WS dependencies. I'm able to work around this issue in Arquillian by
            creating a shaded JAR based on JaCoCo and ASM 5, where
            ASM 5 gets relocated to a different package.  However
            before that goes in, I have to ask - would you be
            willing to distribute a shaded JAR w/ a relocation of
            ASM 5 to avoid this upgrade compatibility issue?

            I did a quick POC locally and it did work just as well.
             You can see the changes here:
            
https://github.com/johnament/jacoco/commit/8bc85be663005ab490dadbdb76dfee0a13f4033d
            
<https://github.com/johnament/jacoco/commit/8bc85be663005ab490dadbdb76dfee0a13f4033d>

            If you're interested in the additional distribution, I
            can raise a PR to merge my code into JaCoCo to create
            the shaded JAR.

            Let me know.

            John
-- 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].
            For more options, visit
            https://groups.google.com/d/optout
            <https://groups.google.com/d/optout>.

-- 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].
            For more options, visit
            https://groups.google.com/d/optout
            <https://groups.google.com/d/optout>.

-- 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] <javascript:>.
    For more options, visit https://groups.google.com/d/optout
    <https://groups.google.com/d/optout>.


--
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].
For more options, visit https://groups.google.com/d/optout.

Reply via email to