about our arquillian adapters,

do we drop arquillian-tomee-embedded-with-war ? (+1 for me ;))

- Romain

2011/10/5 Jonathan Gallimore <[email protected]>

> Will do (will be tomorrow now, its getting late for me!), thanks for the
> link!
>
> Jon
> On Oct 5, 2011 12:02 AM, "Mark Struberg" <[email protected]> wrote:
> > You could take a look at what Dan and I did for native owb:
> >
> > https://github.com/struberg/arquillian-container-openwebbeans
> > LieGrue,
> > strub
> >
> >
> > ----- Original Message -----
> >> From: Jonathan Gallimore <[email protected]>
> >> To: [email protected]
> >> Cc:
> >> Sent: Wednesday, October 5, 2011 12:57 AM
> >> Subject: Re: Arquillian adapters
> >>
> >> On Thu, Sep 29, 2011 at 12:13 AM, Jonathan Gallimore <
> >> [email protected]> wrote:
> >>
> >>>
> >>>
> >>> On Thu, Sep 29, 2011 at 12:01 AM, David Blevins
> >> <[email protected]>wrote:
> >>>
> >>>>
> >>>> On Sep 28, 2011, at 3:36 PM, Jonathan Gallimore wrote:
> >>>>
> >>>> > 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?
> >>>>
> >>>> Very reasonable.  That's what the itests have done for years, the
> >> CDI TCK
> >>>> does and the Java EE TCK setup does.
> >>>>
> >>>> It's pretty easy to have the rule of "if you don't want us
> >> to start a
> >>>> server, make sure a server is started"
> >>>>
> >>>
> >>> Cool, I'll get that done.
> >>>
> >>
> >> I've extended the remote adapter to allow this. If you specify something
> >> like (note the 1.0.0-beta-1 OpenEJB version and no Tomcat version):
> >>
> >> <arquillian
> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> >> xsi:schemaLocation="http://jboss.org/schema/arquillian
> >> http://jboss.org/schema/arquillian/arquillian_1_0.xsd";>
> >>       <container qualifier="tomee" default="true">
> >>           <configuration>
> >>               <property
> >> name="dir">/tmp/arquillian-apache-tomee</property>
> >>               <property name="httpPort">9080</property>
> >>               <property name="stopPort">9005</property>
> >>               <property name="tomcatVersion"></property>
> >>               <property
> >> name="openejbVersion">1.0.0-beta-1</property>
> >>           </configuration>
> >>       </container>
> >> </arquillian>
> >>
> >> if nothing is running on port 9080 we'll download TomEE, unzip it, start
> it
> >> and use that for the test.
> >>
> >> If you changed the OpenEJB and Tomcat versions to, say:
> >>
> >>               <property
> >> name="tomcatVersion">7.0.21</property>
> >>               <property
> >> name="openejbVersion">4.0.0-beta-1</property>
> >>
> >> We'd download Tomcat and the OpenEJB.war, set that up, and use that
> instead.
> >> So we should be able to use this to test against Tomcat 5.5/6 with
> OpenEJB.
> >>
> >> I quite like this, but it would be great to get any feedback.
> >>
> >>
> >>>
> >>>
> >>>>
> >>>> > 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?
> >>>>
> >>>> My impression is I would never ever advise a user to use it.  That
> >> said,
> >>>> it's an absolutely fabulous way for us to test the drop-in-war
> >>>> functionality.  Well, almost fabulous... the real world scenario is an
> >>>> existing Tomcat install, not an embedded one.
> >>>>
> >>>> Either way, if we say to people "you can do this and it
> >> works!" having an
> >>>> adapter for it us a must.  Especially if we get things to the point
> >> where we
> >>>> can easily reuse the full set of tests on each adapter.  At that point
> >> we
> >>>> just need to hook up each adapter with a buildbot builder and suddenly
> >> we
> >>>> have a dreamlike level of testing for the various features we offer.
> >>>>
> >>>
> >>> We shouldn't have any issues getting the tests to run on all the
> >> adapters.
> >>> Worst case we can use Maven profiles and run the tests against the
> embedded
> >>> adapter by default, and you just switch profile to use the other modes.
> The
> >>> buildbot builders can then presumably be setup with the necessary
> profile
> >>> switch in their build.
> >>>
> >>> I was thinking it would be cool to try and extend either the test suite
> or
> >>> the Arquillian test runner somehow so the test then runs against all
> the
> >>> adapters in one go.
> >>>
> >>> I was going to do the Maven profile bit first, as that should be
> reasonably
> >>> straightforward, and then take it from there.
> >>>
> >>>
> >>
> >> I've done some refactoring around the Arquillian test suite, so the
> tests
> >> now run against both adapters. Currently we have ~6 failures and 2
> errors
> >> for both adapters, and it should be the same tests in both cases. We
> >> currently run 82 tests.
> >>
> >> This was a pretty bug refactor - it seemed like things worked well in
> the
> >> embedded case, because everything is right there on the classpath.
> Running
> >> remotely a lot of tests failed as they relied on the test or junit being
> >> available from the app being tested. I've separated the inner classes
> out,
> >> divided things up into packages and tried to move a couple of methods to
> >> trim what would need to be added to the Shrinkwrap archives. We still
> need
> >> junit in a couple of cases, so in a couple of places we add that in as a
> >> lib. Hope that's all ok. There's probably some duplicate classes we
> >> could
> >> chop out.
> >>
> >> Running the tests can be done by running the test Maven goal in the
> >> arquillian-tomee-tests module. Choosing which adapter to use is done by
> >> enabling a Maven profile. By default we run against the embedded adapter
> >> (arquillian-tomee-embedded). Doing a 'mvn -Parquillian-tomee-remote
> clean
> >> install' will build and test against the remote adapter. If you're using
> >> an
> >> IDE plugin such as m2e, you should be able to specify the desired Maven
> >> profile in your IDE settings and the tests should run straight from the
> IDE
> >> (works for me in Eclipse) - please shout if you have trouble, I'll be
> more
> >> than happy to help!
> >>
> >> Jon
> >>
>

Reply via email to