Devoxx 2012 Hackergarten Overdrive!
Kick-off
Each project represented at Hackergarten briefly introduced itself and presented ideas to hack on. The presence of Red Hat community projects was very strong (~75%). We’re happy to report that there was lots of interest in Arquillian. It received the most votes for hacking, with JBoss Forge drawing in the second most.
General impressions
The Hackergarten was held in open areas at the back of the pavilion. The areas gave plenty of privacy, but also gave people freedom to move around. We didn’t have to experience that awkwardness of peeking through a door or the distraction of doors opening and closing. We were able to do demos in one section without affecting hacks or discussions going on in other sections because there was enough ambient noise, mostly music from the trade floor. The wired connections provided by switches at each table removed the distraction of getting on wifi, although it took a bit of time and some shuffling around in the morning to figure all that out.
Once we knew to get everyone plugged into the switches, we were off to the hacking races!
Pictures!
See more pictures in Album 1 and Album 2.
Hacking Overview (related to testing)
Code Contributions
- Arquillian Drone + FluentLenium
- Related hack: Thucydides + FluentLenium
- Arquillian Gradle Plugin
- Arquillian Ape demo code
- Improvements to Arquillian Transaction
- EJB injection for Arquillian CloudBees adapter
- Bootstrap API for Thucydides
- Bootstrap API for NoSQLUnit
Design Discussions
- Arquillian Drone + Thucydides
- Arquillian Ape + NoSQLUnit
- Drools rules, Drools decision tables and Drools planner for filtering, prioritizing and coordinating distribution of tests in a suite
- IntelliJ support for Arquillian, JBoss Forge
- Using the web browser as a “container” to incorporate JavaScript tests into a Drone test
- Juzu demo and shout out to use of Arquillian for testing
- Jersey looking into adoption of Arquillian in test suite
- Using Thucydides for CDI test suite and supporting spec documentation
Activity Stream (related to testing)
- At the start of the event, I suggested the hack idea to integrate Arquilliun Drone and FluentLenium to Jan Papoušek
- Jan and I introduced ourselves to Mathilde Lemee and they got to work on the integration straight away, starting off by sharing with each other how their respective projects worked.
- By days end, they completed a working integration
- Mathilde also integrated FluentLenium with Thucydides (“2 CDs”); stay tuned because that integration and the integration with Drone may become one and the same
- In both cases, the integration with FluentLenium was so straightforward (and thus hackable) because of the nice abstraction layer Mathilde created that handled bootstrapping FluentLenium
- Aslak hacked with Hans Dockter, creator of Gradle, on a gradle deployment plugin that uses Arquillian Containers to handle life cycle of dozens of containers (application servers, servlet containers and beyond)
- Bartosz Majsak hacked on a demo for Arquillian Ape and enhanced Arquillian Transaction to work both in-container and embedded
- I spoke with two of the IntelliJ developers (Peter and Yann) about:
- a plugin for Arquillian (similar to the Eclipse Arquillian plugin)
- adding an embedded Forge shell with UI interplay (similar to the JBoss Forge view in JBoss Tools)
- I chatted with Julien Viet about:
- use of Arquillian for testing portlets in isolation and within the portal container
- treating the web browser as a “container” to incorporate JavaScript testing into a Drone test (prototype, proposal)
- Later in the day, Julien gave a presentation and demo of Juzu, excited to say it’s tested w/ Arquillian Core and Arquillian Drone
- I brainstormed with Geoffrey De Smet, lead of Drools Planner, about:
- using rules to handle the filtering decision for tests
- the role decision tables can play in declaring conditions for which tests to run
- optimizing test suite execution using Drools Planner and distributing tests over a grid
- I spoke with John Smart about Arquillian Core and Arquillian Drone integration with Thucydides
- We discussed how much the two projects align and what it would take to integrate
- We concluded the first step is adding a bootstrap API in Thucydides, which he began to flesh out, that could be hooked to the Arquillian event model and all the integrations with individual test runners can be done once in Arquillian
- We talked about how Drone could likely provide management of WebDriver
- John Smart has been busy all week working on a bootstrap API for Thucydides (hacking on it with an ATDD approach, of course)
- Koen Aers gave a demonstration of the JBoss Forge integration in JBoss Tools, talked about each of elements it brings to the Forge experience in the IDE
- Koen wrote his first “Hello, World” IntelliJ plugin to get spun up and prepare to help with the integration
- IntelliJ said they would put it on their roadmap and support the effort where possible
- Alex Soto and Bartosz discussed integrating NoSQLUnit into Arquillian Ape (peristence extension)
- These projects closely align and it pushes Arquillian’s definition of container management forward
- I told Marek Jelen about Alex’s NoSQLUnit demo of testing MongoDB on OpenShift through the port forwarding setup by JBoss Tools; a blog entry may be in the works;
- Arquillian + NoSQLUnit has lots of application, one of which may be testing NoSQL backends in the Infinispan project
- Alexis Hassler was busy improving the Arquillian adapter for CloudBees by adding EJB injection support.
- Aslak discussed with JAX-RS lead about using Arquillian for JAX-RS TCK; not likely soon, but Jersey is entertaining idea of using Arquillian to test Jersey (JAX-RS reference implementation)
- I spoke with Paul Bakker briefly about combining the Forge Arquillian plugin and the Forge Arquillian Extension plugin into one code base
- I brainstormed with David Blevins, lead of TomEE, about the role a test suite can play in the early and in-progress development of a specification
- proposed idea of using a ATDD approach where tests could be not only marked as pending (before a ref impl is in place), but also proposed, open question and alternative
- agreed that using tests can focus the discussion about the spec, clarify ambiguities & resolve different interpretations
- John Smart gave a demo of Thucydides and we contemplated using it for the CDI test suite
Wrap-up
As the event wound down, I discussed with Andres Almiray, who organized the Hackergarten, about what went on during the day, whether Hackergarten accomplished his goals. He talked about the importance of giving people a chance to make a concrete contribution, give them a win to take home with them, lower perception of a barrier to contributing. I talked to him about the fact that Hackergarten is a catalyst for ideas, some of which come into play before the event, already successful and is also ongoing throughout the week, so we’ll only know total impact once conference is over. Some ideas take time to soak. I can attest, we’re still hacking ;)
Finally, Arquillian was invited to join the Nighthacking Tour hosted by Steven Chin on on Wednesday night, so look for that coverage when it comes online.
What people were tweeting…
- Bartosz Majsak (@majson) posted: #devoxx #arquillian @aslakknutsen you have some pull requests
- Markus Eisele (@myfear) posted: What could be the next cool #Arquillian feature? creative @aslakknutsen at the #hackergarden http://twitpic.com/bcv2lv
- Alexis Hassler (@AlexisHassler) posted: GREEN BAR on my #arquillian test. Cloudbees Container Adapter is getting further, thanks to @majson & @aslakknutsen
- Aslak Knutsen (@aslakknutsen) posted: Hacking #Arquillian Container control plugin for #SBT & #Leiningen. #Gradle next…
- Jan Papousek (@jan_papousek) posted: @MathildeLemee the first attempt of integration FluentLenium and Arquillian is here https://github.com/papousek/arquillian-extension-fluentlenium
- Mathilde Lemee (@MathildeLemee) posted: integrating FluentLenium to Arquillian Drone with @jan_papousek
- John Smart (@wakaleo) posted: Awesome concentrated hacking session with @MathildeLemee: integrating #thucydides and FluentLenium in less than 10 lines of code.
- Alex Soto (@alexsotob) posted: @majson Back home ty Arquillian guys for treat me as one of your team