File:  org.ops4j.datasource-responder.cfg

osgi.jdbc.driver.name = mariadb
dataSourceName=responder
url = 
jdbc:mariadb://localhost:3306/responder?characterEncoding=UTF-8&useServerPrepStmts=true

user=XXXXX
password=XXXXX
databaseName=responder

ops4j.preHook=responderDB


This is picked up by PAX-JDBC and registered as a service:  
osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=responder)
I want the persistence unit  to use this DataSource.

Best regards,
Alex soto




> On May 24, 2018, at 3:31 PM, Francois Papon <[email protected]> 
> wrote:
> 
> Hi Alex,
> 
> Where is configured your JDBC url ? Can you share it ?
> 
> François
> 
> Le 24/05/2018 à 23:26, Alex Soto a écrit :
>> If I change my persistence.xml to this:
>> 
>> 
>>      <persistence-unit name="responderPersistenUnit" transaction-type="JTA">
>>              
>> <jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=responder)</jta-data-source>
>>              
>> <jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=responder)</jta-data-source>
>>                  
>>      </persistence-unit>
>> 
>> And the configuration entries to:
>> 
>>      <config name="org.apache.aries.jpa.responderPersistenUnit">
>>              
>> javax.persistence.provider=org.hibernate.jpa.HibernatePersistenceProvider
>>              javax.persistence.jdbc.driver=org.mariadb.jdbc.Driver
>>              hibernate.dialect=org.hibernate.dialect.MariaDBDialect
>>              hibernate.show_sql=false
>>              hibernate.format_sql=true
>>              hibernate.hbm2ddl.auto=none
>>      </config>
>> 
>> Then the error Is:
>> 
>> 
>> java.lang.IllegalArgumentException: Cannot rebind to a different database 
>> driver, as per the JPA service specification
>>      at 
>> org.apache.aries.jpa.container.impl.AriesEntityManagerFactoryBuilder.processProperties(AriesEntityManagerFactoryBuilder.java:225)
>>  ~[?:?]
>>      at 
>> org.apache.aries.jpa.container.impl.AriesEntityManagerFactoryBuilder.createEntityManagerFactory(AriesEntityManagerFactoryBuilder.java:173)
>>  ~[?:?]
>>      at 
>> org.apache.aries.jpa.container.impl.ManagedEMF.updated(ManagedEMF.java:75) 
>> ~[?:?]
>>      at 
>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>>  ~[8:org.apache.felix.configadmin:1.8.16]
>>      at 
>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>>  [8:org.apache.felix.configadmin:1.8.16]
>>      at 
>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>>  [8:org.apache.felix.configadmin:1.8.16]
>>      at 
>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1479)
>>  [8:org.apache.felix.configadmin:1.8.16]
>>      at 
>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1435)
>>  [8:org.apache.felix.configadmin:1.8.16]
>>      at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:141) 
>> [8:org.apache.felix.configadmin:1.8.16]
>>      at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:109) 
>> [8:org.apache.felix.configadmin:1.8.16]
>>      at java.lang.Thread.run(Thread.java:748) [?:?]
>> 
>> 
>> If I remove the line javax.persistence.jdbc.driver=org.mariadb.jdbc.Driver 
>> from the config file above, then I get the previous error about 
>> configuration not being completed.  What I am trying to do is to not  hard 
>> code  the hibernate.dialect inside the bundle, so I can switch to a 
>> different database without having to rebuild.
>> 
>> Also, my DataSource is already created by PAX JDBC Config and this I don’t 
>> want to change, since I am using PreHook facility there to run LiquiBase 
>> migrations.
>> Any hints or examples appreciated.
>> 
>> 
>> Best regards,
>> Alex soto
>> 
>> 
>> 
>> 
>>> On May 24, 2018, at 1:41 PM, Alex Soto <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> 
>>> Hello,  
>>> 
>>> I am using Aries JPA 2.7.0, I am trying provide the JPA persistence 
>>> configuration using configuration file.  So my persistence.xml.
>>> 
>>> <persistence version="2.0"
>>>     xmlns="http://java.sun.com/xml/ns/persistence 
>>> <http://java.sun.com/xml/ns/persistence>"
>>>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance 
>>> <http://www.w3.org/2001/XMLSchema-instance>"
>>>     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
>>> <http://java.sun.com/xml/ns/persistence> 
>>> http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd 
>>> <http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd>">
>>> 
>>>     <persistence-unit name="responderPersistenUnit" transaction-type="JTA">
>>>             
>>> <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
>>>     </persistence-unit>
>>> </persistence>
>>> 
>>> I deploy config file as part of my feature:
>>> 
>>> <config name="org.apache.aries.jpa.responderPersistenUnit">
>>>     hibernate.dialect=org.hibernate.dialect.MariaDBDialect
>>>     hibernate.show_sql=false
>>>     hibernate.format_sql=true
>>>     hibernate.hbm2ddl.auto=none
>>>     
>>> jta-data-source=osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=responder)
>>>     
>>> non-jta-data-source=osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=responder)
>>>                 
>>> </config>
>>> 
>>> When I run, the following exception is thrown:
>>> 
>>> java.lang.IllegalArgumentException: The persistence unit 
>>> responderPersistenUnit has incomplete configuration and cannot be created. 
>>> The configuration 
>>> is{non-jta-data-source=osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=responder),
>>>  hibernate.format_sql=true, hibernate.hbm2ddl.auto=none, 
>>> hibernate.dialect=org.hibernate.dialect.MariaDBDialect, 
>>> jta-data-source=osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=responder),
>>>  
>>> felix.fileinstall.filename=file:/Users/asoto/git/encryptedquery/responder/dist/target/encryptedquery-responder-dist-1.0.0-SNAPSHOT/etc/org.apache.aries.jpa.responderPersistenUnit.cfg
>>>  
>>> <file:///Users/asoto/git/encryptedquery/responder/dist/target/encryptedquery-responder-dist-1.0.0-SNAPSHOT/etc/org.apache.aries.jpa.responderPersistenUnit.cfg>,
>>>  hibernate.show_sql=false, 
>>> javax.persistence.spi.PersistenceUnitTransactionType=JTA, 
>>> service.pid=org.apache.aries.jpa.responderPersistenUnit}
>>>     at 
>>> org.apache.aries.jpa.container.impl.AriesEntityManagerFactoryBuilder.createAndPublishEMF(AriesEntityManagerFactoryBuilder.java:365)
>>>  ~[?:?]
>>>     at 
>>> org.apache.aries.jpa.container.impl.AriesEntityManagerFactoryBuilder.createEntityManagerFactory(AriesEntityManagerFactoryBuilder.java:183)
>>>  ~[?:?]
>>>     at 
>>> org.apache.aries.jpa.container.impl.ManagedEMF.updated(ManagedEMF.java:75) 
>>> ~[?:?]
>>>     at 
>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>>>  ~[8:org.apache.felix.configadmin:1.8.16]
>>>     at 
>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>>>  [8:org.apache.felix.configadmin:1.8.16]
>>>     at 
>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>>>  [8:org.apache.felix.configadmin:1.8.16]
>>>     at 
>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1479)
>>>  [8:org.apache.felix.configadmin:1.8.16]
>>>     at 
>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1435)
>>>  [8:org.apache.felix.configadmin:1.8.16]
>>>     at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:141) 
>>> [8:org.apache.felix.configadmin:1.8.16]
>>>     at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:109) 
>>> [8:org.apache.felix.configadmin:1.8.16]
>>>     at java.lang.Thread.run(Thread.java:748) [?:?]
>>> 
>>> 
>>> 
>>> So Aries JPA is finding the configuration properties I am providing, but 
>>> still missing something.  What else is needed as configuration properties? 
>>> Why is it not complete the persistent unit?
>>> 
>>> 
>>> Best regards,
>>> Alex soto
>>> 
>>> 
>>> 
>>> 
>> 
> 

Reply via email to