Hi, I'm currently working in the Arquillian adapters for TomEE in the sandbox area, specifically I'm:
- Adding the ability for the remote adapter to download either the straight TomEE webprofile zip, or the TomEE+ zip, extract it and test against that - Refactoring the adapters to eliminate common code (most of the modules started as straight copies of each other) - Setting up the tests so they all sit in one place, and are run against all the variants of the adapter (Embedded, Remote etc etc) during the build. I was wondering whether I could get people's thoughts on the adapters we have. Currently we have: 1) Embedded: This is the fully embedded adapter. We bootstrap both Tomcat and OpenEJB in the test, and we have just enough code to nudge the Tomcat loader to make everything start up correctly. 2) Embedded with war: This adapter bootstraps Tomcat in the test, and uses a small extension to the Maven functionality in Arquillian to grab openejb.war and deploy it to give a "semi-embedded" TomEE setup. The idea here is to get an embedded setup, but only requiring your classpath have the minimal set of jars (about 4 for Tomcat I think). 3) Remote: This is fully remote - it only has the deploy and undeploy code implemented, you have to start TomEE manually before you run your Arquillian test. 4) Remote with zip: This is an extension to the remote adapter which will use Arquillian's Maven feature to download the TomEE zip, extract it, and boot it before doing the deploy. Most Arquillian adapters for other app servers seem to have options 1 and 3 (Embedded and Remote) if I remember correctly, so it makes sense to have both of these. When I hacked up the Remote with zip adapter I intended to merge it into the remote adapter - along the lines of: check to see if TomEE is running on the port specified in arquillian.xml. If it is, just deploy straight to it. If not, go grab the zip and use that. Does that sound like a reasonable idea? That leaves the embedded-with-war adapter as something that might seem a bit odd. Currently I can't get it to run correctly, but that might be something wrong with my machine. What's people's opinion of this method? Should we drop this, or is it a useful adapter to hang on to? Any thoughts you have would be much appreciated! Cheers Jon
