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

Reply via email to