2016-08-22 17:46 GMT+02:00 Rafael Pestano <[email protected]>:

> 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.
>
>
Not a DB per test but a full container/deployment/resource per unit of
work. @Rule = method, @ClassRule = class (which doesn't prevent to have
DBUnit per method)


>
> 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