How to boost Arquillian to use Weld 2.3 features?


#1

Hey guys. Put together a sample project to see what I’m talking about here: https://github.com/johnament/weld-perf-2.3

This past couple of weeks been doing a lot of test refactoring. Specifically trying to get more stuff to run at lower levels using embedded containers over needing the big app server. One issue I’ve noticed is that my JPA based tests each take about 6s to run. At first I didn’t want to believe it, but it seems like Arquillian is slowing things down here.

If you run this test, the test execution is about 3s on my computer (I’m curious to know what it is on others). If I do the same test, with similar packaging structure as this, using weld ee embedded, the test runtime is about 6s.

My only thought to this is that the local version of this test is using the new bootstrap features of Weld 2.3. It basically creates a private container for use in the test and then shuts down. Would it make sense to create a Weld 2.3 container similar to what was done for Weld 1.0/1.1 to see if it can leverage the shorter bootstrap time?


#2

This is essentially what the Weld 1.0/1.1 container does as well?

What are the bootstrap features of Weld 2.3?

Just for a on the side note; the Weld Team has been working on a new/different CDI container to allow for more isolation / bootstrap testing stuff. Might be worth having a look: https://github.com/tremes/arquillian-container-se


#3

Hi Aslak,
wouldn’t be good to add this arquillian-container-se project to other Arquillian projects there in the github repository https://github.com/arquillian …? It could be better findable and mainly if it was referenced from the Arquillian’s repository directly, it could attract new committers/users (like
johndament :-)).


#4

That container reminds of that thing Andrew was prototyping a long time ago. However, I’m not sure how it helps my case. It looks like its specific to bootstrapping requirements.

Looking at Antonin’s PR, something along those lines, but leveraging a unique weld container for the archive, mentioned in this blog post (this API was backported to 2.3) http://weld.cdi-spec.org/news/2015/08/05/weld-300Alpha12/#_weld_se_bootstrap_api