Can you explain what error do you get? Database not found? are the tables not created?

How is your test triggered? By timer?


Can you create a simpler test-case you can publish on github that shows your problem?


Am 30.08.2017 um 09:29 schrieb Blume, Karsten:

Hello,

yes this might help.

Bundle under test is a blueprint bundle with a camel jpa endpoint/component

<bean

id=/"jpa"/

class=/"org.apache.camel.component.jpa.JpaComponent"/>

<jpa:unit

unitname=/"shipment"/

property=/"entityManagerFactory"/ />

<property

name=/"transactionManager"/

ref=/"transactionManager"/ />

</bean>

and a persistence.xml

<persistence-unit

name=/"shipment"/

transaction-type=/"JTA"/>

<jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=_jdbc_/scv_xa)</jta-data-source>

a running live pax-jdbc configuration

this works also for the pax exam test

osgi.jdbc.driver.name = PostgreSQL JDBC Driver-pool-xa

databaseName=scv

dataSourceName=jdbc/scv_xa

user=xxx

password=xxx

url = jdbc:postgresql:// 155:155:155:155:5432/scv

What does not work:

A pax exam pax-jdbc configuration which I expect starts up the db before starting the test like:

osgi.jdbc.driver.name=derby-pool-xa

databaseName=scv

dataSourceName=jdbc/scv_xa

user=xxx

password=xxx

url=jdbc:derby:target/scvdev;create=true;user=xxx;password=xxx

or similar with H2

For the different test methods I need different test data inserted into the db. So a single startup script is not sufficient.

For the pax exam tests

How can a startup the db, modify it per test method and publish it so that the probe and the bundle under test can access it?

Regards

Karsten

*From:*laeubi.mobile via OPS4J [mailto:[email protected]]
*Sent:* Dienstag, 29. August 2017 15:37
*To:* OPS4J
*Subject:* Re: Setup database structure before bundle under test is started with pax exam + karaf

You should provide a little more info about your setup, e.g. "working" vs "not working" configs, how you run the camel bundle (bluprint? spring? Routebuilders?)

I assume you want to test the route itself not the pax-jdbc setup, then you should configure your datasource that way that it can either run from JNDI or or a local jdbc-url to make testing easier. You can the provide a config for test and one for deployment that contains either jndi or plain jdbc with e.g. inmemory db of h2 (which can be configured to init the db from a file).

Am Donnerstag, 24. August 2017 09:36:05 UTC+2 schrieb [email protected] <mailto:[email protected]>:

    Hello everybody,
    i am running pax exam 4 with a karaf 3 container.
    The bundle under test is a camel 2.16.3 bundle.
    The bundle uses a time triggered camel jpa component and pax-jdbc
    with (XA and pooling) to instantiate the datasource.
    For the test i need some table and some test data in a schema.
    If i run the test with an existing postgres database everything is
    fine. If i try to instantiate and setup the database first (H2 or
    Derby) the bundle under test does not
    find the database with the jndi name:
    javax.naming.NameNotFoundException:
    osgi:service/javax.sql.DataSource/"(osgi.jndi.service.name
    <http://osgi.jndi.service.name>=jdbc/scv_xa)"

    How can i startup and setup the temporary db before the bundle
    under test is started?

    Thanks and best regards
    Karsten

--
--
------------------
OPS4J - http://www.ops4j.org - [email protected] <mailto:[email protected]>

---
You received this message because you are subscribed to a topic in the Google Groups "OPS4J" group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/ops4j/F1YhX1Fvq_Y/unsubscribe. To unsubscribe from this group and all its topics, send an email to [email protected] <mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.

--
--
------------------
OPS4J - http://www.ops4j.org - [email protected]

---
You received this message because you are subscribed to the Google Groups "OPS4J" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.

--
--
------------------
OPS4J - http://www.ops4j.org - [email protected]

--- You received this message because you are subscribed to the Google Groups "OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to