Great !

You're welcome ;)

regards

François Papon
[email protected]

Le 25/07/2018 à 09:58, Miroslav Beranič a écrit :
> Hi François,
>
> thank you for in-depth explanation.
>
> By Blueprint XML I mean:
>
> datasource.xml:
> <?xml version="1.0" encoding="UTF-8"?>
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
>            xmlns:jpa="http://aries.apache.org/xmlns/jpa/v2.0.0";
>            xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.2.0";
>            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>           
> xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0
> https://osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd";>
>
>     <bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource">
>         <property name="databaseName" value="ORACLE_DB_NAME"/>
>         <property name="user" value="ORACLE_DB_USER"/>
>         <property name="password" value="ORACLE_DB_PASSWORD"/>
>         <property name="URL"
> value="jdbc:oracle:thin:@//oracle.local:1521/test"/>
>     </bean>
>
>     <service interface="javax.sql.DataSource" ref="dataSource">
>         <service-properties>
>             <entry key="osgi.jndi.service.name
> <http://osgi.jndi.service.name>" value="jdbc/myoracle"/>
>         </service-properties>
>     </service>
>
> </blueprint>
>
> I see, I was looking at different feature name, I was referring to
> this feature ( that defines datasource ):
>
>     <feature name="karaf-jpa-example-datasource"
> version="${project.version}">
>         <config name="org.ops4j.datasource-booking">
>             osgi.jdbc.driver.class=org.h2.Driver
>             databaseName=booking;create=true
>             dataSourceName=booking
>         </config>
>         <capability>
>            
> osgi.service;objectClass=javax.sql.DataSource;effective:=active;osgi.jndi.service.name
> <http://osgi.jndi.service.name>=booking
>         </capability>
> </feature>
>
> You've updated    <feature name="karaf-jpa-example-common" .
>
> I think I now know how to change my code to make it work.
>
>
>
> @Jean-Baptiste: I will watch KARAF-5850.
>
>
> Thank you both for the support.
>
>
> Kind Regards,
> Miroslav
>
>
>
> 2018-07-25 6:03 GMT+02:00 François Papon <[email protected]
> <mailto:[email protected]>>:
>
>     Hi Miroslav,
>
>     The changes are :
>
>     - use the H2 drivers with class declaration
>     - add jndi feature
>     - add capabilities for Hibernate Persistence Provider
>
>     The provider module emmebed the persistence.xml with the
>     Persistence provider declaration inside so it require the
>     Persistence provider.
>
>     We have :
>     - common feature : provide Hibernate Persistence capabilities
>     - provider feature : require Hibernate Persistence capabilities
>
>     About feature xml and blueprint DSL, this not the same. The
>     feature XML is used to packaging bundles and bundles/feature 
>     dependencies, the blueprint xml is used to manage your services
>     instances and their services usage.
>
>     Regards
>
>     François
>
>     Le 25 juil. 2018 00:14, Miroslav Beranič
>     <[email protected] <mailto:[email protected]>>
>     a écrit :
>
>         Hi,
>
>         @Jean-Baptiste Onofré, François: I can confirm, issues is
>         fixed now. I can get JPA example working. I see output in
>         Karaf Shell.
>
>         but :)
>
>
>         What was the fix ( so I can understand what was wrong, for any
>         future case, other projects ):
>
>         I
>         see 
> examples/karaf-jpa-example/karaf-jpa-example-features/src/main/feature/feature.xml
>         ( I guess this is most of the fix )
>
>              <feature name="karaf-jpa-example-common"
>         version="${project.version}">
>                  <feature>transaction</feature>       
>          <feature>transaction</feature>
>         +        <feature>jndi</feature>
>                  <feature>pax-jdbc-config</feature>       
>          <feature>pax-jdbc-config</feature>
>                  <feature>pax-jdbc-h2</feature>       
>          <feature>pax-jdbc-h2</feature>
>                  <feature>pax-jdbc-pool-dbcp2</feature>       
>          <feature>pax-jdbc-pool-dbcp2</feature>
>                  <feature>jdbc</feature>         <feature>jdbc</feature>
>                  <feature version="[2,3)">jpa</feature>       
>          <feature version="[2,3)">jpa</feature>
>         -        <feature version="6.0.10.Final">hibernate</feature>
>         +        <feature version="[5,6)">hibernate</feature>
>         +        <capability>
>         +           
>         
> osgi.service;objectClass=javax.persistence.spi.PersistenceProvider;effective:=active;javax.persistence.provider=org.hibernate.jpa.HibernatePersistenceProvider
>         +        </capability>
>              </feature>     </feature>
>
>         So this three lines:
>         +        <capability>
>         +           
>         
> osgi.service;objectClass=javax.persistence.spi.PersistenceProvider;effective:=active;javax.persistence.provider=org.hibernate.jpa.HibernatePersistenceProvider
>         +        </capability>
>
>         I have similar Bundle structure, but I have dedicated Bundle
>         for DataSource setup/configuration. How do I translate this
>         "Feature DSL" to "Blueprint DSL" ==> How would this translate
>         into Blueprint XML?
>
>         So changes look they make sense but, this is first time I see
>         this to be defined so explicit. This was my original
>         complaint, as it always looked like this piece of code was
>         missing ( also in other available online examples ).
>
>         I also guess "effective:=active;" is important ( as I read the
>         "I've explained it already three times" forum post ) (
>         FW: 
> http://karaf.922171.n3.nabble.com/What-does-effective-active-mean-td4047770.html
>         
> <http://karaf.922171.n3.nabble.com/What-does-effective-active-mean-td4047770.html>
>         )
>
>         Well, thank you both very much. Saved me tons of headache.
>
>         Kind Regards,
>         Miroslav
>
>
>         2018-07-24 20:51 GMT+02:00 Jean-Baptiste Onofré
>         <[email protected] <mailto:[email protected]>>:
>
>             Hi,
>
>             François just fixed the JPA example of the DEV_GUIDE branch.
>
>             I will add the corresponding examples itests tomorrow.
>
>             Regards
>             JB
>
>             On 20/07/2018 16:17, Miroslav Beranič wrote:
>             > Hi,
>             >
>             > I've upgraded my environment from ServiceMix
>             7.1.0-SNAPSHOT ( running
>             > Karaf 4.0.9 ) to Karaf 4.1.x ( GitHub ) branch and later
>             on I've
>             > experimented with version 4.2.x.
>             > I was using linked linkes from Karaf home page (
>             > https://karaf.apache.org/documentation.html
>             <https://karaf.apache.org/documentation.html> ) to GitHub
>             Examples - for JPA.
>             >
>             > My main task is to get JPA 2 up and running, but I fail
>             to do so.
>             >
>             > So on provided examples Github repository:
>             >
>             
> https://github.com/jbonofre/karaf/tree/DEV_GUIDE/examples/karaf-jpa-example
>             
> <https://github.com/jbonofre/karaf/tree/DEV_GUIDE/examples/karaf-jpa-example>
>             >
>             > I've tested with Karaf 4.1.x and 4.2.x and in both
>             version, Examples for
>             > JPA do now work - for me.
>             >
>             > For Karaf 4.2.x I've created PasteBin outputs ( please
>             see ):
>             > 1.) https://pastebin.com/eJybVNhn
>             > 2.) https://pastebin.com/W2UhihdR
>             >
>             > In examples, I've noted that there is a reference to
>             Hibernate
>             > 6.0.10.Final - this version is not released yet (
>             hibernate.org <http://hibernate.org>
>             > <http://hibernate.org> ), so I guess this is a wrong
>             version, or ? as I
>             > see Karaf has build-in support for Hibernate 5.2.9.Final.
>             >
>             >
>             
> https://github.com/jbonofre/karaf/blob/DEV_GUIDE/examples/karaf-jpa-example/karaf-jpa-example-features/src/main/feature/feature.xml
>             
> <https://github.com/jbonofre/karaf/blob/DEV_GUIDE/examples/karaf-jpa-example/karaf-jpa-example-features/src/main/feature/feature.xml>
>             >
>             > For Hibernate version I am looking at:
>             > https://github.com/apache/karaf/blob/master/pom.xml
>             <https://github.com/apache/karaf/blob/master/pom.xml>
>             > <hibernate.version>5.2.9.Final</hibernate.version>
>             >
>             > So what I did was:
>             >
>             > 1.) checked out Karaf 4.1.x from Github
>             > 2.) checked out Karaf Examples ( DEV_GUIDE branch from
>             Github )
>             >
>             > 3.) Build Karaf with Maven: mvn -Pfastinstall and
>             started Karaf with
>             > ./bin/karaf debug
>             > 4.) Build Karaf Examples ( changed version of Hibernate from
>             > 6.0.10.Final to 5.2.9.Final )
>             >
>             > Read instruction from:
>             >
>             
> https://github.com/jbonofre/karaf/blob/DEV_GUIDE/examples/karaf-jpa-example/README.md
>             
> <https://github.com/jbonofre/karaf/blob/DEV_GUIDE/examples/karaf-jpa-example/README.md>
>             >
>             > 5.) feature:repo-add
>             >
>             
> mvn:org.apache.karaf.examples/karaf-jpa-example-features/4.2.1-SNAPSHOT/xml
>             > 6.) feature:install karaf-jpa-example-datasource
>             > 7.) feature:install karaf-jpa-example-provider
>             >
>             > Fail:
>             >
>             > Error executing command: Unable to resolve root: missing
>             requirement
>             > [root] osgi.identity;
>             osgi.identity=karaf-jpa-example-provider;
>             > type=karaf.feature;
>             version="[4.2.1.SNAPSHOT,4.2.1.SNAPSHOT]";
>             >
>             
> filter:="(&(osgi.identity=karaf-jpa-example-provider)(type=karaf.feature)(version>=4.2.1.SNAPSHOT)(version<=4.2.1.SNAPSHOT))"
>             > [caused by: Unable to resolve
>             karaf-jpa-example-provider/4.2.1.SNAPSHOT:
>             > missing requirement
>             [karaf-jpa-example-provider/4.2.1.SNAPSHOT]
>             > osgi.identity;
>             >
>             
> osgi.identity=org.apache.karaf.examples.karaf-jpa-example-provider;
>             > type=osgi.bundle; version="[4.2.1.SNAPSHOT,4.2.1.SNAPSHOT]";
>             > resolution:=mandatory [caused by: Unable to resolve
>             >
>             org.apache.karaf.examples.karaf-jpa-example-provider/4.2.1.
>             <http://4.2.1.>SNAPSHOT:
>             > missing requirement
>             >
>             [org.apache.karaf.examples.karaf-jpa-example-provider/4.2.1.
>             <http://4.2.1.>SNAPSHOT]
>             > osgi.service;
>             objectClass=javax.persistence.spi.PersistenceProvider;
>             >
>             
> javax.persistence.provider=org.hibernate.jpa.HibernatePersistenceProvider;
>             > effective:=active]]
>             >
>             > I am using Linux x64, Oracle Java 8 172 x64.
>             >
>             > What I am doing wrong. I've mixed different version of
>             Hibernate, Karaf,
>             > ... and noting. Always some more or less strange error.
>             >
>             > Plus there is an issue: what version of
>             maven-bundle-plugin should/must
>             > be used? I've tried 3.01 and 3.2.0. When I use 3.0.1 I
>             have to update
>             > <Import-Package> if I use 3.2.0 I get error that
>             javassist is not resolved:
>             >
>             > Error executing command: Unable to resolve root: missing
>             requirement
>             > [root] osgi.identity; osgi.identity=. ...
>             osgi.wiring.package;
>             >
>             
> filter:="(&(osgi.wiring.package=javassist.util.proxy)(version>=3.22.0)(!(version>=4.0.0)))"]]]
>             >
>             >
>             >
>             > So all in all I can not and did not find and singe point
>             of truth what
>             > is valid example or way of doing JPA 2 with Hibernate. I
>             guess I am
>             > doing something wrong as all examples make it so simple
>             but ... no luck.
>             > All I did is clean ( new computer - virtual ) checkout
>             from git, build
>             > and deploy - and fail.
>             >
>             > I would like to migrate existing code using JPA 1 to JPA
>             2 ( 2.2 ? ) but
>             > ... this is difficult task to complete ( this is after
>             one week of pain
>             > and frustration ).
>             >
>             > I've done examples from
>             https://github.com/cschneider/Karaf-Tutorial
>             <https://github.com/cschneider/Karaf-Tutorial>
>             > also, but no luck. More-or-less same problems.
>             >
>             >
>             > 1.) What versions of Maven plugins should I use?
>             > 2.) What versions of JPA?
>             > 3.) What versions of Hibernate?
>             > 4.) What example should I follow ( URL / Git and branch ) ?
>             >
>             >
>             > This are my top questions.
>             >
>             >
>             > Kind Regards,
>             > Miroslav
>             >
>             >
>             >
>             > --
>             > Miroslav Beranič
>             > MIBESIS
>             > +386(0)40/814-843
>             > [email protected]
>             <mailto:[email protected]>
>             <mailto:[email protected]
>             <mailto:[email protected]>>
>             > http://www.mibesis.si
>
>
>
>
>         -- 
>         Miroslav Beranič
>         MIBESIS
>         +386(0)40/814-843
>         [email protected] <mailto:[email protected]>
>         http://www.mibesis.si
>
>
>
>
> -- 
> Miroslav Beranič
> MIBESIS
> +386(0)40/814-843
> [email protected] <mailto:[email protected]>
> http://www.mibesis.si

Reply via email to