Hi,

just managed to get both working. It was a problem on DBUnit rule where it
was using the datasource at rule apply method instead of statement
evaluation level. The problem to use apply is that junit will call all
chained rules apply methods first and later will evaluate them so just
putting dbunit rules logic inside statement
<https://github.com/rmpestano/dbunit-rules/commit/943d674048c1e5694f68d3d31408299057bb4d88>
fixes the issue.

Also there was another problem I've fixed at dbunit level that it was
caching the connection and app composer was creating db for each test so
when second test was executing the ds created on first level was invalid.
Is it intentional or a bug? anyway dbunit rule is now always getting a
fresh connection.


I've commited here
<https://github.com/rmpestano/tomee/blob/master/examples/application-composer-dbunit/src/test/java/org/superbiz/composed/MoviesTest.java>,
tell me if you are interested in a pull request to add dbunit integration
sample.

Thanks for the help.



2016-08-19 10:42 GMT-03:00 Romain Manni-Bucau [via TomEE & OpenEJB] <
[email protected]>:

> Why shouldn't it work? :)
>
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <https://blog-rmannibucau.rhcloud.com> | Old Wordpress Blog
> <http://rmannibucau.wordpress.com> | Github <https://github.com/
> rmannibucau> |
> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber
> <http://www.tomitribe.com> | JavaEE Factory
> <https://javaeefactory-rmannibucau.rhcloud.com>
>
> 2016-08-19 15:42 GMT+02:00 Rafael Pestano <[hidden email]
> <http:///user/SendEmail.jtp?type=node&node=4679816&i=0>>:
>
> > Now that we have a prototype the implementation is a mere detail ;)
> >
> >
> > Em sex, 19 de ago de 2016 10:33, Romain Manni-Bucau <[hidden email]
> <http:///user/SendEmail.jtp?type=node&node=4679816&i=1>
> > >
> > escreveu:
> >
> > > this was the proposal actually ;)
> > >
> > >
> > > Romain Manni-Bucau
> > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > <https://blog-rmannibucau.rhcloud.com> | Old Wordpress Blog
> > > <http://rmannibucau.wordpress.com> | Github <
> > > https://github.com/rmannibucau> |
> > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber
> > > <http://www.tomitribe.com> | JavaEE Factory
> > > <https://javaeefactory-rmannibucau.rhcloud.com>
> > >
> > > 2016-08-19 15:32 GMT+02:00 Rafael Pestano <[hidden email]
> <http:///user/SendEmail.jtp?type=node&node=4679816&i=2>>:
> > >
> > > > Exactly!
> > > >
> > > > Em sex, 19 de ago de 2016 10:13, Romain Manni-Bucau <
> > > [hidden email] <http:///user/SendEmail.jtp?type=node&node=4679816&i=3>
> > > > >
> > > > escreveu:
> > > >
> > > > > like
> > > https://gist.github.com/rmannibucau/4df57b865a50edab1f2c259fb9c5c6
> > > > e2
> > > > > ?
> > > > >
> > > > >
> > > > > Romain Manni-Bucau
> > > > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > > > <https://blog-rmannibucau.rhcloud.com> | Old Wordpress Blog
> > > > > <http://rmannibucau.wordpress.com> | Github <
> > > > > https://github.com/rmannibucau> |
> > > > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber
> > > > > <http://www.tomitribe.com> | JavaEE Factory
> > > > > <https://javaeefactory-rmannibucau.rhcloud.com>
> > > > >
> > > > > 2016-08-19 15:08 GMT+02:00 Rafael Pestano <[hidden email]
> <http:///user/SendEmail.jtp?type=node&node=4679816&i=4>>:
> > > > >
> > > > > > Thanks for the explanation, I've looked at your sample and see
> too
> > > much
> > > > > > infrastructure code inside the test (e.g. db setup) I'd like to
> > have
> > > > > > something like the example at [1] where we delegate infra code
> to
> > an
> > > > > > interceptor, can we have something similar with app composer, a
> > > 'dbunit
> > > > > > module' makes sense?
> > > > > >
> > > > > >
> > > > > > [1]
> > > > > > https://github.com/rmpestano/dbunit-rules-sample/blob/
> > > > > > master/src/test/java/com/github/dbunit/rules/sample/
> > > > > > cdi/DBUnitRulesCDITest.java
> > > > > >
> > > > > > Em sex, 19 de ago de 2016 09:44, Romain Manni-Bucau <
> > > > > [hidden email]
> <http:///user/SendEmail.jtp?type=node&node=4679816&i=5>
> > > > > > >
> > > > > > escreveu:
> > > > > >
> > > > > > > Basically appcomposer lifecycle is bound to the statement. For
> > the
> > > > > runner
> > > > > > > or @Rule it means a method and for a @ClassRule the class. If
> you
> > > > don't
> > > > > > run
> > > > > > > it before other rules, other rules can't use the container
> > > including
> > > > > > > container resources like datasources. So chaining appcomposert
> > then
> > > > > > dbunit
> > > > > > > rule works. If you check my impl I used @DbUnitInstance to
> mark
> > an
> > > > > > injected
> > > > > > > field as a datasource to use instead of using a
> ConnectionHolder
> > to
> > > > > make
> > > > > > > the test setup smoother.
> > > > > > >
> > > > > > >
> > > > > > > Romain Manni-Bucau
> > > > > > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > > > > > <https://blog-rmannibucau.rhcloud.com> | Old Wordpress Blog
> > > > > > > <http://rmannibucau.wordpress.com> | Github <
> > > > > > > https://github.com/rmannibucau> |
> > > > > > > LinkedIn <https://www.linkedin.com/in/rmannibucau> |
> Tomitriber
> > > > > > > <http://www.tomitribe.com> | JavaEE Factory
> > > > > > > <https://javaeefactory-rmannibucau.rhcloud.com>
> > > > > > >
> > > > > > > 2016-08-19 13:43 GMT+02:00 rmpestano <[hidden email]
> <http:///user/SendEmail.jtp?type=node&node=4679816&i=6>>:
> > > > > > >
> > > > > > > > You Tell me ;) don't know the internals of app composer
> > > > > > > >
> > > > > > > > Em sex, 19 de ago de 2016 02:28, Romain Manni-Bucau [via
> TomEE
> > &
> > > > > > > OpenEJB] <
> > > > > > > > [hidden email]
> <http:///user/SendEmail.jtp?type=node&node=4679816&i=7>> escreveu:
> > > > > > > >
> > > > > > > > > What about creating the container - therefore DB - before
> > > calling
> > > > > > > dbunit?
> > > > > > > > >
> > > > > > > > > Le 19 août 2016 01:53, "rmpestano" <[hidden email]
> > > > > > > > > <http:///user/SendEmail.jtp?type=node&node=4679808&i=0>>
> a
> > > > écrit :
> > > > > > > > >
> > > > > > > > > > Hi again,
> > > > > > > > > >
> > > > > > > > > > I've tried to chain rules but datasource isn't
> initialized
> > > when
> > > > > > > DBunit
> > > > > > > > > rule
> > > > > > > > > > apply method is run:
> > > > > > > > > >
> > > > > > > > > > @Rule
> > > > > > > > > > public TestRule theRule = RuleChain.outerRule(
> > > > > > DBUnitRule.instance(new
> > > > > > > > > > ConnectionHolder() {
> > > > > > > > > >
> > > > > > > > > >     @Override
> > > > > > > > > >     public Connection getConnection() {
> > > > > > > > > >         try {
> > > > > > > > > >             return ds.getConnection(); //called by
> dbunit
> > > rule
> > > > > > apply
> > > > > > > > > >         } catch (Exception e) {
> > > > > > > > > >             e.printStackTrace();
> > > > > > > > > >         }
> > > > > > > > > >         return null;
> > > > > > > > > >     }
> > > > > > > > > > })).around(new ApplicationComposerRule(this));
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Any idea on how to get datasource connection when dbunit
> > rule
> > > > > apply
> > > > > > > > > method
> > > > > > > > > > is called?
> > > > > > > > > >
> > > > > > > > > > Thanks in advance.
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > 2016-08-17 15:03 GMT-03:00 Romain Manni-Bucau [via TomEE
> &
> > > > > > OpenEJB] <
> > > > > > > > > > [hidden email] <http:///user/SendEmail.jtp?
> > > > > > > > type=node&node=4679808&i=1>>:
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > > You need to chain rules: appcomposer then dbunit or
> set
> > > > > > appcomposer
> > > > > > > > as
> > > > > > > > > > > @ClassRule instead of @Rule
> > > > > > > > > > >
> > > > > > > > > > > @Rafael: openejb:Resource/id should work
> > > > > > > > > > >
> > > > > > > > > > > Le 17 août 2016 19:45, "Rafael Pestano" <[hidden
> email]
> > > > > > > > > > > <http:///user/SendEmail.jtp?type=node&node=4679791&i=0>>
>
> > a
> > > > > > écrit :
> > > > > > > > > > >
> > > > > > > > > > > > I've also try to look up the datasource via jndi but
> > > > without
> > > > > > > > success
> > > > > > > > > > > >
> > > > > > > > > > > > 2016-08-17 14:42 GMT-03:00 Rafael Pestano <[hidden
> > email]
> > > > > > > > > > > <http:///user/SendEmail.jtp?
> > type=node&node=4679791&i=1>>:
> > > > > > > > > > > >
> > > > > > > > > > > > > Hi Romain,
> > > > > > > > > > > > >
> > > > > > > > > > > > > I've tried to create DBUnit Rule in AppComposer
> test
> > > but
> > > > > > could
> > > > > > > > not
> > > > > > > > > > > > > instantiate the rule cause it needs a JDBC
> connection
> > > but
> > > > > > looks
> > > > > > > > > like
> > > > > > > > > > > > > composer enriches the datasource after DBUnit rule
> > > apply
> > > > > > method
> > > > > > > > is
> > > > > > > > > > > > invoked.
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > @Resource
> > > > > > > > > > > > > DataSource ds;
> > > > > > > > > > > > > @Rule
> > > > > > > > > > > > > public DBUnitRule dbUnitRule =
> > DBUnitRule.instance(new
> > > > > > > > > > > ConnectionHolder()
> > > > > > > > > > > > > {
> > > > > > > > > > > > > @Override
> > > > > > > > > > > > > public Connection getConnection() { //its called
> by
> > > > 'apply'
> > > > > > > > dbunit
> > > > > > > > > > > method
> > > > > > > > > > > > > rule
> > > > > > > > > > > > > try {
> > > > > > > > > > > > > return ds.getConnection();
> > > > > > > > > > > > > } catch (Exception e) {
> > > > > > > > > > > > > // TODO Auto-generated catch block
> > > > > > > > > > > > > e.printStackTrace();
> > > > > > > > > > > > > }
> > > > > > > > > > > > > return null;
> > > > > > > > > > > > > }
> > > > > > > > > > > > > });
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > Any idea on how to workaround that?
> > > > > > > > > > > > >
> > > > > > > > > > > > > Complete source code can be found here:
> > > > > https://github.com/
> > > > > > > > > > > > > rmpestano/tomee/blob/master/
> > > > examples/application-composer-
> > > > > > > > > > > > > dbunit/src/test/java/org/
> > superbiz/composed/MoviesTest.
> > > > > > java#L62
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > 2016-08-17 11:33 GMT-03:00 Romain Manni-Bucau
> > <[hidden
> > > > > email]
> > > > > > > > > > > <http:///user/SendEmail.jtp?
> > type=node&node=4679791&i=2>>:
> > > > > > > > > > > > >
> > > > > > > > > > > > >> 2016-08-17 16:28 GMT+02:00 hwaastad <[hidden
> email]
> > > > > > > > > > > <http:///user/SendEmail.jtp?
> > type=node&node=4679791&i=3>>:
> > > > > > > > > > > > >>
> > > > > > > > > > > > >> > Hi,
> > > > > > > > > > > > >> > I think I meant if it's possible to run a
> > > interceptor
> > > > > on a
> > > > > > > > test
> > > > > > > > > > > > >> > method....just like the usedataset...
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> Then no cause we don't lookup the instance in CDI
> > but
> > > > keep
> > > > > > the
> > > > > > > > > JUnit
> > > > > > > > > > > one
> > > > > > > > > > > > >> to
> > > > > > > > > > > > >> not break other things - deltaspike cdirunner has
> a
> > > flag
> > > > > for
> > > > > > > > > that,
> > > > > > > > > > > guess
> > > > > > > > > > > > >> it
> > > > > > > > > > > > >> is what you asked for.
> > > > > > > > > > > > >>
> > > > > > > > > > > > >> That said keeping in mind appcomposer is a rule,
> > > another
> > > > > > rule
> > > > > > > is
> > > > > > > > > a
> > > > > > > > > > > > natural
> > > > > > > > > > > > >> interceptor for it - without requiring EE.
> > > > > > > > > > > > >>
> > > > > > > > > > > > >>
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> > OK, I'll have a look at what you've done. I
> think
> > I
> > > > can
> > > > > > make
> > > > > > > > > > > something
> > > > > > > > > > > > >> out
> > > > > > > > > > > > >> > of it :-)
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> > Thx,
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> > hw
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> > --
> > > > > > > > > > > > >> > View this message in context:
> > > > > > > http://tomee-openejb.979440.n4
> > > > > > > > > > > > >> .nabble.com/
> > > > > > > > > > > > >> > Applicaitoncomposer-and-dbunit-rules-
> > > > > > tp4679781p4679783.html
> > > > > > > > > > > > >> > Sent from the TomEE Users mailing list archive
> at
> > > > > > > Nabble.com.
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >>
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > --
> > > > > > > > > > > > > Att,
> > > > > > > > > > > > >
> > > > > > > > > > > > > Rafael M. Pestano
> > > > > > > > > > > > >
> > > > > > > > > > > > > Desenvolvedor Java Cia. de Processamento de Dados
> do
> > > Rio
> > > > > > Grande
> > > > > > > > do
> > > > > > > > > > Sul
> > > > > > > > > > > > > http://rpestano.wordpress.com/
> > > > > > > > > > > > > @realpestano
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > --
> > > > > > > > > > > > Att,
> > > > > > > > > > > >
> > > > > > > > > > > > Rafael M. Pestano
> > > > > > > > > > > >
> > > > > > > > > > > > Desenvolvedor Java Cia. de Processamento de Dados do
> > Rio
> > > > > Grande
> > > > > > > do
> > > > > > > > > Sul
> > > > > > > > > > > > http://rpestano.wordpress.com/
> > > > > > > > > > > > @realpestano
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > ------------------------------
> > > > > > > > > > > If you reply to this email, your message will be added
> to
> > > the
> > > > > > > > > discussion
> > > > > > > > > > > below:
> > > > > > > > > > > http://tomee-openejb.979440.n4.nabble.com/
> > > > > > Applicaitoncomposer-and-
> > > > > > > > > > > dbunit-rules-tp4679781p4679791.html
> > > > > > > > > > > To start a new topic under TomEE Users, email
> > > > > > > > > > > [hidden email] <http:///user/SendEmail.jtp?
> > > > > > > > type=node&node=4679808&i=2>
> > > > > > > > > > > To unsubscribe from TomEE Users, click here
> > > > > > > > > > > <http://tomee-openejb.979440.n4.nabble.com/template/
> > > > > > > > > > NamlServlet.jtp?macro=unsubscribe_by_code&node=
> > 979441&code=
> > > > > > > > > > cm1wZXN0YW5vQGdtYWlsLmNvbXw5Nzk0NDF8MTE1OTM0ODgyNg==>
> > > > > > > > > > > .
> > > > > > > > > > > NAML
> > > > > > > > > > > <http://tomee-openejb.979440.n4.nabble.com/template/
> > > > > > > > > > NamlServlet.jtp?macro=macro_viewer&id=instant_html%
> > > > > > > > > > 21nabble%3Aemail.naml&base=nabble.naml.namespaces.
> > > > > > > > > > BasicNamespace-nabble.view.web.template.NabbleNamespace-
>
> > > > > > > > > > nabble.view.web.template.NodeNamespace&breadcrumbs=
> > > > > > > > > > notify_subscribers%21nabble%3Aemail.naml-instant_emails%
>
> > > > > > > > > > 21nabble%3Aemail.naml-send_instant_email%21nabble%
> > > > 3Aemail.naml>
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > --
> > > > > > > > > > Att,
> > > > > > > > > >
> > > > > > > > > > Rafael M. Pestano
> > > > > > > > > >
> > > > > > > > > > Desenvolvedor Java Cia. de Processamento de Dados do Rio
> > > Grande
> > > > > do
> > > > > > > Sul
> > > > > > > > > > http://rpestano.wordpress.com/
> > > > > > > > > > @realpestano
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > --
> > > > > > > > > > View this message in context:
> http://tomee-openejb.979440.
> > > > > > > > n4.nabble.com/
> > > > > > > > > > Applicaitoncomposer-and-dbunit-rules-
> > tp4679781p4679804.html
> > > > > > > > > > Sent from the TomEE Users mailing list archive at
> > Nabble.com.
> > > > > > > > > If you reply to this email, your message will be added to
> the
> > > > > > > discussion
> > > > > > > > > below:
> > > > > > > > >
> > > > > > > > > http://tomee-openejb.979440.n4.nabble.com/
> > > > Applicaitoncomposer-and-
> > > > > > > > dbunit-rules-tp4679781p4679808.html
> > > > > > > > > To start a new topic under TomEE Users, email
> > > > > > > > > [hidden email]
> <http:///user/SendEmail.jtp?type=node&node=4679816&i=8>
> > > > > > > > > To unsubscribe from TomEE Users, click here
> > > > > > > > > <http://tomee-openejb.979440.n4.nabble.com/template/
> > > > > > > > NamlServlet.jtp?macro=unsubscribe_by_code&node=979441&code=
> > > > > > > > cm1wZXN0YW5vQGdtYWlsLmNvbXw5Nzk0NDF8MTE1OTM0ODgyNg==>
> > > > > > > > > .
> > > > > > > > > NAML
> > > > > > > > > <http://tomee-openejb.979440.n4.nabble.com/template/
> > > > > > > > NamlServlet.jtp?macro=macro_viewer&id=instant_html%
> > > > > > > > 21nabble%3Aemail.naml&base=nabble.naml.namespaces.
> > > > > > > > BasicNamespace-nabble.view.web.template.NabbleNamespace-
> > > > > > > > nabble.view.web.template.NodeNamespace&breadcrumbs=
> > > > > > > > notify_subscribers%21nabble%3Aemail.naml-instant_emails%
> > > > > > > > 21nabble%3Aemail.naml-send_instant_email%21nabble%
> > 3Aemail.naml>
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > View this message in context: http://tomee-openejb.979440.
> > > > > > n4.nabble.com/
> > > > > > > > Applicaitoncomposer-and-dbunit-rules-tp4679781p4679809.html
> > > > > > > > Sent from the TomEE Users mailing list archive at
> Nabble.com.
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
>
> ------------------------------
> If you reply to this email, your message will be added to the discussion
> below:
> http://tomee-openejb.979440.n4.nabble.com/Applicaitoncomposer-and-
> dbunit-rules-tp4679781p4679816.html
> To start a new topic under TomEE Users, email
> [email protected]
> To unsubscribe from TomEE Users, click here
> <http://tomee-openejb.979440.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=979441&code=cm1wZXN0YW5vQGdtYWlsLmNvbXw5Nzk0NDF8MTE1OTM0ODgyNg==>
> .
> NAML
> <http://tomee-openejb.979440.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>



-- 
Att,

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
http://rpestano.wordpress.com/
@realpestano




--
View this message in context: 
http://tomee-openejb.979440.n4.nabble.com/Applicaitoncomposer-and-dbunit-rules-tp4679781p4679825.html
Sent from the TomEE Users mailing list archive at Nabble.com.

Reply via email to