Hi All,
Thanks for input. I think I found a sweet spot that seems to work, although I
wish somebody from AriesJPA can confirm this is a valid approach.
I removed the Dialect and the other Hibernate specific settings out of my
persistence.xml, but I have to keep the data source reference to JNDI:
<persistence-unit name="responderPersistenUnit" transaction-type="JTA">
<jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=responder)</jta-data-source>
</persistence-unit>
The Pax-exam configuration file org.ops4j.datasource-responder.cfg remains the
same:
osgi.jdbc.driver.name = mariadb
dataSourceName=responder
url =
jdbc:mariadb://localhost:3306/responder?characterEncoding=UTF-8&useServerPrepStmts=true
user=XXX
password=XXX
databaseName=responder
ops4j.preHook=responderDB
AriesJPA configuration in my feature provides the dialect and the provider:
<config name="org.apache.aries.jpa.responderPersistenUnit">
javax.persistence.provider=org.hibernate.jpa.HibernatePersistenceProvider
hibernate.dialect=org.hibernate.dialect.MariaDBDialect
hibernate.show_sql=false
hibernate.format_sql=true
hibernate.hbm2ddl.auto=none
</config>
When I run, first I can see in the log AriesJPA Container:
2018-05-25T09:01:22,580 | DEBUG | features-3-thread-1 |
PersistenceBundleTracker | 46 - org.apache.aries.jpa.container - 2.7.0
| Matching JPA contract for possible persistence bundle
encryptedquery-responder-data
2018-05-25T09:01:22,594 | INFO | features-3-thread-1 |
PersistenceBundleTracker | 46 - org.apache.aries.jpa.container - 2.7.0
| Found persistence unit responderPersistenUnit in bundle
encryptedquery-responder-data with provider null.
2018-05-25T09:01:22,596 | INFO | features-3-thread-1 |
PersistenceProviderTracker | 46 - org.apache.aries.jpa.container - 2.7.0
| Found provider for responderPersistenUnit
org.hibernate.jpa.HibernatePersistenceProvider
2018-05-25T09:01:22,618 | INFO | features-3-thread-1 | LogHelper
| 134 - org.hibernate.core - 5.2.9.Final | HHH000204: Processing
PersistenceUnitInfo [
name: responderPersistenUnit
...]
2018-05-25T09:01:22,688 | INFO | features-3-thread-1 | Version
| 134 - org.hibernate.core - 5.2.9.Final | HHH000412: Hibernate Core
{5.2.9.Final}
2018-05-25T09:01:22,691 | INFO | features-3-thread-1 | Environment
| 134 - org.hibernate.core - 5.2.9.Final | HHH000206:
hibernate.properties not found
2018-05-25T09:01:22,750 | INFO | features-3-thread-1 | Version
| 133 - org.hibernate.common.hibernate-commons-annotations -
5.0.1.Final | HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
2018-05-25T09:01:23,330 | WARN | features-3-thread-1 |
JdbcEnvironmentInitiator | 134 - org.hibernate.core - 5.2.9.Final |
HHH000342: Could not obtain connection to query metadata : Unable to determine
Dialect to use [name=, majorVersion=0]; user must register resolver or
explicitly set 'hibernate.dialect'
2018-05-25T09:01:23,332 | DEBUG | features-3-thread-1 |
PersistenceProviderTracker | 46 - org.apache.aries.jpa.container - 2.7.0
| Error while creating the Dummy EntityManagerFactory to allow weaving.
org.hibernate.service.spi.ServiceException: Unable to create requested service
[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
at
org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:271)
~[?:?]
at
org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233)
~[?:?]
at
org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
~[?:?]
at
org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51)
~[?:?]
at
org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
~[?:?]
at
org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242)
~[?:?]
at
org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
~[?:?]
at
org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352)
~[?:?]
at
org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111)
~[?:?]
at
org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:858)
~[?:?]
at
org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:885)
~[?:?]
at
org.hibernate.osgi.OsgiPersistenceProvider.createContainerEntityManagerFactory(OsgiPersistenceProvider.java:96)
~[?:?]
at
org.apache.aries.jpa.container.impl.PersistenceProviderTracker.createAndCloseDummyEMF(PersistenceProviderTracker.java:105)
~[?:?]
at
org.apache.aries.jpa.container.impl.PersistenceProviderTracker.addingService(PersistenceProviderTracker.java:86)
~[?:?]
at
org.apache.aries.jpa.container.impl.PersistenceProviderTracker.addingService(PersistenceProviderTracker.java:44)
~[?:?]
at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941)
~[?:?]
at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870)
~[?:?]
at
org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
~[?:?]
at
org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183)
~[?:?]
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:318)
~[?:?]
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261)
~[?:?]
at
org.apache.aries.jpa.container.impl.PersistenceBundleTracker.trackProvider(PersistenceBundleTracker.java:229)
~[?:?]
at
org.apache.aries.jpa.container.impl.PersistenceBundleTracker.findPersistenceUnits(PersistenceBundleTracker.java:213)
~[?:?]
at
org.apache.aries.jpa.container.impl.PersistenceBundleTracker.addingBundle(PersistenceBundleTracker.java:98)
~[?:?]
at
org.apache.aries.jpa.container.impl.PersistenceBundleTracker.addingBundle(PersistenceBundleTracker.java:44)
~[?:?]
at
org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:469)
~[?:?]
at
org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:415)
~[?:?]
at
org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
~[?:?]
at
org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) ~[?:?]
at
org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444)
~[?:?]
at
org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:915)
~[?:?]
at
org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:834)
~[?:?]
at
org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:516)
~[?:?]
at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4579)
~[?:?]
at org.apache.felix.framework.Felix.activateBundle(Felix.java:2231)
~[?:?]
at org.apache.felix.framework.Felix.startBundle(Felix.java:2146) ~[?:?]
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998)
~[?:?]
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:984)
~[?:?]
at
org.apache.karaf.features.internal.service.BundleInstallSupportImpl.startBundle(BundleInstallSupportImpl.java:161)
~[?:?]
at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1116)
~[?:?]
at
org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:996)
~[?:?]
at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1025)
~[?:?]
at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:964)
~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:?]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo
cannot be null when 'hibernate.dialect' not set
at
org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:100)
~[?:?]
at
org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:54)
~[?:?]
at
org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:137)
~[?:?]
at
org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
~[?:?]
at
org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)
~[?:?]
at
org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259)
~[?:?]
... 46 more
Notice the above exception is logged as DEBUG level, so I think it can be
ignored. Later I see this error:
2018-05-25T09:01:23,354 | ERROR | CM Configuration Updater (ManagedService
Update: pid=[org.apache.aries.jpa.responderPersistenUnit]) | configadmin
| 8 - org.apache.felix.configadmin - 1.8.16 |
[org.osgi.service.cm.ManagedService, id=196,
bundle=18/mvn:org.enquery.encryptedquery/encryptedquery-responder-data/1.0.0-SNAPSHOT]:
Unexpected problem updating configuration
org.apache.aries.jpa.responderPersistenUnit
java.lang.IllegalArgumentException: The persistence unit responderPersistenUnit
has incomplete configuration and cannot be created. The configuration
is{hibernate.format_sql=true,
javax.persistence.provider=org.hibernate.jpa.HibernatePersistenceProvider,
hibernate.hbm2ddl.auto=none,
hibernate.dialect=org.hibernate.dialect.MariaDBDialect,
org.apache.karaf.features.configKey=org.apache.aries.jpa.responderPersistenUnit,
felix.fileinstall.filename=file:/Users/asoto/git/encryptedquery/responder/itests/target/exam/cdf383ba-08b3-4157-bec3-c131857d7108/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) [?:?]
Later I see PAX-JDBC configuring the DataSource:
2018-05-25T09:01:24,065 | INFO | CM Configuration Updater (ManagedService
Update: pid=[org.apache.aries.jpa.responderPersistenUnit]) |
ServiceTrackerHelper | 162 - org.ops4j.pax.jdbc.config - 1.3.0 |
Obtained service dependency:
(&(objectClass=org.osgi.service.jdbc.DataSourceFactory)(osgi.jdbc.driver.name=mariadb))
2018-05-25T09:01:24,065 | INFO | CM Configuration Updater (ManagedService
Update: pid=[org.apache.aries.jpa.responderPersistenUnit]) |
DataSourceRegistration | 162 - org.ops4j.pax.jdbc.config - 1.3.0 |
Found DataSourceFactory. Creating DataSource responder
2018-05-25T09:01:24,071 | INFO | CM Configuration Updater (ManagedService
Update: pid=[org.apache.aries.jpa.responderPersistenUnit]) |
DataSourceRegistration | 162 - org.ops4j.pax.jdbc.config - 1.3.0 |
Executing pre hook for DataSource responder
2018-05-25T09:01:29,888 | INFO | CM Configuration Updater
(ManagedServiceFactory Update: factoryPid=[org.ops4j.datasource]) |
DataSourceRegistration | 162 - org.ops4j.pax.jdbc.config - 1.3.0 |
Pre hook finished. Publishing DataSource responder
2018-05-25T09:01:29,890 | INFO | CM Configuration Updater
(ManagedServiceFactory Update: factoryPid=[org.ops4j.datasource]) |
DataSourceTracker | 46 - org.apache.aries.jpa.container - 2.7.0
| Found DataSource for responderPersistenUnit
osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=responder)
2018-05-25T09:01:29,890 | DEBUG | CM Configuration Updater
(ManagedServiceFactory Update: factoryPid=[org.ops4j.datasource]) |
AriesEntityManagerFactoryBuilder | 46 - org.apache.aries.jpa.container - 2.7.0
| No transaction type set in config, restoring the original value JTA
2018-05-25T09:01:29,890 | INFO | CM Configuration Updater
(ManagedServiceFactory Update: factoryPid=[org.ops4j.datasource]) | LogHelper
| 134 - org.hibernate.core - 5.2.9.Final | HHH000204:
Processing PersistenceUnitInfo [
name: responderPersistenUnit
...]
2018-05-25T09:01:29,984 | INFO | CM Configuration Updater
(ManagedServiceFactory Update: factoryPid=[org.ops4j.datasource]) | Dialect
| 134 - org.hibernate.core - 5.2.9.Final | HHH000400:
Using dialect: org.hibernate.dialect.MySQL5Dialect
After this, everything works normally. Looks like the errors I see are later
corrected, so it may be just a timing issue.
Best regards,
Alex soto
> On May 25, 2018, at 8:01 AM, Paul McCulloch <[email protected]> wrote:
>
> The dialect can be left out of the pu.xml though. I started down this path,
> but in the end have just relied on hibernate to select the correct dialect. I
> deploy the same bundles on H2, Oracle & MSSQL with this approach.
>
>
> On 25 May 2018 at 12:51, Jean-Baptiste Onofré <[email protected]
> <mailto:[email protected]>> wrote:
> Hi Paul,
>
> yes, I remember this discussion, but AFAIR, it's always overriden by the
> dialect in the persistence.xml.
>
> Regards
> JB
>
> On 25/05/2018 13:00, Paul McCulloch wrote:
> > Hibernate usually does a reasonable job of auto detecting the dialect,
> > in my experience. If you need to override this then Aries JPA supports
> > creating a configuration file /etc/org.apache.aries.jpa.<PU name>.cfg
> > where you can override hibernate.dialect. Beware if you have a "-" in
> > the PU name as I think fileinstall we try and create a factory config.
> >
> > I can't recall where I got this info from. It might have been
> > here:
> > http://karaf.922171.n3.nabble.com/Dynamic-parameters-in-persistence-xml-td4043602.html
> >
> > <http://karaf.922171.n3.nabble.com/Dynamic-parameters-in-persistence-xml-td4043602.html>
> >
> > On 25 May 2018 at 06:46, Jean-Baptiste Onofré <[email protected]
> > <mailto:[email protected]>
> > <mailto:[email protected] <mailto:[email protected]>>> wrote:
> >
> > Hi Alex,
> >
> > the dialect HAS to be in the persistence.xml (it's in the JPA spec).
> >
> > AFAIK, Aries JPA doesn't provide a mechanism to provide the dialect
> > externally from the persistence.xml.
> >
> > Even the Aries JPA itests define the dialect there:
> >
> >
> > https://github.com/apache/aries-jpa/blob/master/itests/jpa-container-testbundle/src/main/resources/META-INF/persistence.xml#L40
> >
> > <https://github.com/apache/aries-jpa/blob/master/itests/jpa-container-testbundle/src/main/resources/META-INF/persistence.xml#L40>
> >
> > <https://github.com/apache/aries-jpa/blob/master/itests/jpa-container-testbundle/src/main/resources/META-INF/persistence.xml#L40
> >
> > <https://github.com/apache/aries-jpa/blob/master/itests/jpa-container-testbundle/src/main/resources/META-INF/persistence.xml#L40>>
> >
> > Further more, dialect also depends of the engine you are using
> > (hibernate, openjpa, eclipselink).
> >
> > Regards
> > JB
> >
> > On 24/05/2018 21:26, Alex Soto wrote:
> > > 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
> > <http://osgi.jndi.service.name/>
> > <http://osgi.jndi.service.name
> > <http://osgi.jndi.service.name/>>=responder)</jta-data-source>
> > >
> > <jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name
> > <http://osgi.jndi.service.name/>
> > <http://osgi.jndi.service.name
> > <http://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]> <mailto:[email protected]
> > <mailto:[email protected]>>
> > >> <mailto:[email protected] <mailto:[email protected]>
> > <mailto:[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>
> > <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>
> > <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
> > <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>
> > <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
> > <http://osgi.jndi.service.name/>
> > <http://osgi.jndi.service.name
> > <http://osgi.jndi.service.name/>>=responder)
> > >>
> > >>
> >
> > non-jta-data-source=osgi:service/javax.sql.DataSource/(osgi.jndi.service.name
> > <http://osgi.jndi.service.name/>
> > <http://osgi.jndi.service.name
> > <http://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
> > <http://osgi.jndi.service.name/>
> > <http://osgi.jndi.service.name
> > <http://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
> > <http://osgi.jndi.service.name/>
> > <http://osgi.jndi.service.name
> > <http://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,
> > >>
> > 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
> > >>
> > >>
> > >>
> > >>
> > >
> >
> > --
> > --
> > Jean-Baptiste Onofré
> > [email protected] <mailto:[email protected]>
> > <mailto:[email protected] <mailto:[email protected]>>
> > http://blog.nanthrax.net <http://blog.nanthrax.net/>
> > Talend - http://www.talend.com <http://www.talend.com/>
> >
> >
>
> --
> --
> Jean-Baptiste Onofré
> [email protected] <mailto:[email protected]>
> http://blog.nanthrax.net <http://blog.nanthrax.net/>
> Talend - http://www.talend.com <http://www.talend.com/>
>