Hi Tim:

Agreed, it is brittle to depend on timing, I had arrived at the same conclusion 
looking a the Aries JPA code, but my experiment shows it is kind of possible, I 
was so close :)

I am now (happily) using your suggested approach and it is working without any 
errors/warnings.   Now, I would like to request for this feature/enhancement 
(i.e. support JNDI DataSources) but I am not sure where to make it.  Is this 
something  controlled by the OSGi committee or is it an Aries JPA thing? 

Thank you for the help.

Best regards,
Alex soto




> On May 25, 2018, at 11:06 AM, Tim Ward <[email protected]> wrote:
> 
> Alex,
> 
> As you’ve noticed in the log there are some “odd things” going on. What 
> you’ve managed to do is to prod things in the correct order to reach a state 
> that is not normally accessible!
> 
> So what’s happening is:
> 
> Error while creating the Dummy EntityManagerFactory to allow weaving. - This 
> always happens for Hibernate can safely be ignored. Part of the JPA 
> specification involves supporting load-time weaving of the entity types. This 
> forces the Aries JPA container to eagerly create the EMF as early as possible 
> to avoid “missing” the class load. This in turn means that Aries JPA can’t 
> wait to locate the DataSource, and instead uses a “dummy”, which gets us far 
> enough through the process to get a load-time weaver. Hibernate then explodes 
> because it tries to do real things with the dummy datasource.
> The persistence unit responderPersistenUnit has incomplete configuration and 
> cannot be created. This is your persistence unit configuration being injected 
> into Aries JPA - it fails because it is using a mixture of persistence xml 
> and configuration, and the configuration properties therefore have no 
> database connection details/
> Found DataSource for responderPersistenUnit 
> osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=responder)Once 
> PAX-JDBC registers the DataSource service it is located by Aries JPA and used 
> to create the EMF
> 
> The critical point here is that Entry 2 happens before Entry 3, but Aries JPA 
> remembers the configuration that was injected into it in Entry 2. Therefore 
> once the DataSource is found Aries JPA still has the configuration details 
> injected from before. If you reversed the order of 2 and 3 then it wouldn’t 
> work.
> 
> As Configuration Admin is asynchronous in its delivery of Configurations it 
> can be pretty unreliable to depend on this ordering, although you could 
> probably contrive a way of activating features to encourage it to happen this 
> way all the time. Programmatic assembly is probably your friend here. 
> 
> Best Regards,
> 
> Tim
> 
> 
>> On 25 May 2018, at 17:09, Jean-Baptiste Onofré <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Hi Alex,
>> 
>> I think it's better to use cfg or persistence.xml, one or the other, not
>> a mix of both.
>> 
>> I'm using both in the samples, but I don't mix both in the same sample.
>> 
>> Regards
>> JB
>> 
>> On 25/05/2018 16:00, Alex Soto wrote:
>>> I will give a try to Tim’s suggestion, as it may be safer than what I am
>>> doing now (with the errors in the log I can’t feel comfortable) but I do
>>> agree there seems to be a gap.  To be clear, the gap (as indicated by
>>> Tim), is the inability of using a DataSource registered in JNDI when
>>> configuring the Persistence Unit via Configuration Admin, something that
>>> is supported when using the persistence.xml file.
>>> 
>>> Best regards,
>>> Alex soto
>>> 
>>> 
>>> 
>>> 
>>>> On May 25, 2018, at 9:37 AM, Paul McCulloch <[email protected] 
>>>> <mailto:[email protected]>
>>>> <mailto:[email protected] <mailto:[email protected]>>> wrote:
>>>> 
>>>> That's what I do Alex. I didn't think I needed the non-jta-datasource
>>>> (& everything seems to work), but this thread has made me think I
>>>> should go back & re-asses that. 
>>>> 
>>>> I'll also look again at the Transaction Control stuff - it was at
>>>> 0.0.1 when I last looked, so I was nervous about relying on it. It
>>>> looks like it will fix my hack for MSSQL of having to fake an XA
>>>> datasource (as Aries JPA transactions don't work with non XA
>>>> datasources)..
>>>> 
>>>> On 25 May 2018 at 14:21, Alex Soto <[email protected] 
>>>> <mailto:[email protected]>
>>>> <mailto:[email protected] <mailto:[email protected]>>> wrote:
>>>> 
>>>>    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
>>>>    <http://osgi.jndi.service.name/ 
>>>> <http://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 <http://osgi.jdbc.driver.name/ 
>>>> <http://osgi.jdbc.driver.name/>> = mariadb
>>>>        dataSourceName=responder
>>>>        url
>>>>        = 
>>>> jdbc:mariadb://localhost:3306/responder?characterEncoding=UTF-8&useServerPrepStmts=true
>>>>  
>>>> <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
>>>>    <http://org.osgi.service.cm/ 
>>>> <http://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
>>>>    <http://osgi.jdbc.driver.name/ 
>>>> <http://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
>>>>    <http://osgi.jndi.service.name/ 
>>>> <http://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] <mailto:[email protected]> 
>>>>> <mailto:[email protected] <mailto:[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]>
>>>>>    <mailto:[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>
>>>>>        
>>>>> <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]>>
>>>>>> <mailto:[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>>
>>>>>>      
>>>>>> <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 <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 <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]>>>
>>>>>>      >> <mailto:[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>>
>>>>>>      <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>>
>>>>>>      <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 
>>>>>> <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>>
>>>>>>      <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 <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 <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 <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 <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]>>
>>>>>        <mailto:[email protected] <mailto:[email protected]> 
>>>>> <mailto:[email protected] <mailto:[email protected]>>>
>>>>>>      http://blog.nanthrax.net <http://blog.nanthrax.net/> 
>>>>>> <http://blog.nanthrax.net/ <http://blog.nanthrax.net/>>
>>>>>>      Talend - http://www.talend.com <http://www.talend.com/> 
>>>>>> <http://www.talend.com/ <http://www.talend.com/>>
>>>>>> 
>>>>>> 
>>>>> 
>>>>>        -- 
>>>>>        --
>>>>>        Jean-Baptiste Onofré
>>>>>        [email protected] <mailto:[email protected]> 
>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>        http://blog.nanthrax.net <http://blog.nanthrax.net/> 
>>>>> <http://blog.nanthrax.net/ <http://blog.nanthrax.net/>>
>>>>>        Talend - http://www.talend.com <http://www.talend.com/> 
>>>>> <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/>

Reply via email to