Hmm this could actually explain the problems we see. I always wondered why karaf insists to install the 2.1 version of the jpa spec bundle but this explains it.

Luckily this should be easy to solve. Try to install the OSGi jpa spec bundle:
http://search.maven.org/#artifactdetails%7Corg.osgi%7Corg.osgi.service.jpa%7C1.0.0%7Cjar

It should contain exactly the missing package. I think we are missing this bundle in the feature. We just did not see it as it is embeded in the jpa 2.1 spec bundle we use. You could also try to simply add this bundle to the persistence-api 2.0.0 feature. Maybe then karaf already does the right thing.

Christian

On 07.07.2016 15:04, Bengt Rodehav wrote:

It seems like the or.apache.aries.jpa.container requires the package org.osgi.service.jpa (at least version 1.0.0) and that package is only provided by the JPA 2.1 bundle...

Hope you understand this a bit better than me but it does not seem to be easy to come up with a working solution including OpenJPA 2.4.1 in Karar 4.0.5. If you have a workaround to try before you get a fix inte Karaf 4.0.6 I would be grateful.

/Bengt



2016-07-07 14:17 GMT+02:00 Bengt Rodehav <be...@rodehav.com <mailto:be...@rodehav.com>>:

    OK - thanks a lot for all your help Christian.

    /Bengt


    2016-07-07 14:14 GMT+02:00 Christian Schneider
    <ch...@die-schneider.net <mailto:ch...@die-schneider.net>>:

        Genereally Aries JPA should work with OpenJPA 2.4.1 but I
        think there is some bug in karaf 4.0.5.

        I just tested again and found that persistence api 2.0 and 2.1
        are both installed. This fails as Aries JPA can only bind to
        one of these and will choose the higher version.
        As a workaround you should be able to create your own feature
        copied from the Aries JPA feature but make sure you install
        the persistence api only in version 2.0.

        I will try to create a working version of the features for
        karaf 4.0.6.

        Christian



        On 07.07.2016 14:07, Bengt Rodehav wrote:
        Installing feature "openjpa" also installs JPA 2.0 (version
        1.1) so I shouldn't need to install JPA manually as well.
        However, then I won't get the Aries support for JPA. Feels a
        bit weird.

        What Aries JPa version should be used together with OpenJPA
        2.4.1?

        /Bengt

        2016-07-07 14:04 GMT+02:00 Bengt Rodehav <be...@rodehav.com
        <mailto:be...@rodehav.com>>:

            It seems to be the "jpa" feature that installs JPA 2.1.

            2016-07-07 13:58 GMT+02:00 Bengt Rodehav
            <be...@rodehav.com <mailto:be...@rodehav.com>>:

                On a fresh Karaf 4.0.5 I do:

                /la | grep -i jpa/
                /la | grep -i persistence/

                Nothing is displayed. I then do:

                /feature:install openjpa jpa
                /

                If I then execute the above commands I get:

                /karaf@root()> la | grep -i jpa/
                /62 | Active   |  80 | 2.3.0             | Apache
                Aries JPA Container API/
                /63 | Active   |  80 | 2.3.0             | Apache
                Aries JPA blueprint/
                /64 | Active   |  80 | 2.3.0             | Apache
                Aries JPA container/
                /65 | Active   |  80 | 2.3.0             | Apache
                Aries JPA support/
                /71 | Active   |  80 | 1.1             | Apache
                Geronimo JSR-317 JPA 2.0 Spec AP/
                /73 | Active   |  80 | 2.4.1             | OpenJPA
                Aggregate Jar/
                /karaf@root()> la | grep -i persistence/
                /55 | Active   |  80 | 2.1.0.v201304241213 | Java
                Persistence API 2.1/
                /karaf@root()>/

                So JPA 2.1 has indeed been installed. I don't know if
                this is why I have problems but it still seems strange.

                /Bengt


                2016-07-07 13:11 GMT+02:00 Christian Schneider
                <ch...@die-schneider.net
                <mailto:ch...@die-schneider.net>>:

                    Can you start from an empty karaf 4.0.5 and then do

                    feature:install openjpa jpa

                    This should install openjpa 2.4.1 and aries jpa
                    2.3.0 with javax.persistence 2.0 and jta 1.2.

                    This configuration should work. So maybe
                    something else you install requires the jpa 2.1 spec.

                    Christian




                    On 07.07.2016 10:28, Bengt Rodehav wrote:
                    Reading your post again Christian I realize that
                    I should not use JPA 2.1 but JPA 2.0.

                    I seem to have JPA 2.0 and JPA 2.1 installed at
                    runtime:

                    /karaf@root()> la | grep -i jpa/
                    / 37 | Active   |  80 | 2.3.0 | Apache Aries JPA
                    Container API/
                    / 38 | Active   |  80 | 2.3.0 | Apache Aries JPA
                    blueprint/
                    / 39 | Active   |  80 | 2.3.0 | Apache Aries JPA
                    container/
                    / 40 | Active   |  80 | 2.3.0 | Apache Aries JPA
                    support/
                    / 70 | Active   |  80 | 1.1 | Apache Geronimo
                    JSR-317 JPA 2.0 Spec API/
                    /106 | Active   |  80 | 2.4.1 | OpenJPA
                    Aggregate Jar/
                    /karaf@root()> la | grep -i persistence/
                    / 17 | Active   |  80 | 2.1.0.v201304241213   |
                    Java Persistence API 2.1/
                    /175 | Active   |  80 | 2.8.0.SNAPSHOT        |
                    Connect :: persistence-util/

                    I don't really know why the JPA version 2.1
                    (2.1.0.v201304241213) is being installed. I do
                    not do this explicitly.

                    Looking at OpenJPA 2.4.1, it seems to depend on
                    JTA 1.1 not JTA 1.2.

                    Looked again at my JPA version. I do use JPA
                    2.0. But I use version 1.1 of
                    artifact geronimo-jpa_2.0_spec which caused me
                    to believe I was using JPA 1.1....

                    I'm still kind of confused. It would be thankful
                    if you could tell me what features (and versions
                    of those features) I should install in order to
                    use the latest version (2.4.1) of OpenJPA.

                    /Bengt



-- Christian Schneider
                    http://www.liquid-reality.de

                    Open Source Architect
                    http://www.talend.com






-- Christian Schneider
        http://www.liquid-reality.de

        Open Source Architect
        http://www.talend.com





--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com

Reply via email to