On Apr 12, 2011, at 1:19 AM, Andrew Hughes wrote:

> Hi David,
> 
> Great advice, I can see the problems associated with a 20..30 second
> 'embed+launch+deploy+test' method vs the 1..3 second 'ejb context
> creation+test' method of OpenEJB. Considering this, (for anyone reading) I
> think its important to distinctly recognize these as two
> distinctly separate testing methods. Both have a legitimate reason for
> existing, but like anything both are "fit for purpose".

It's tempting to rationalize the differences, but as the one who pretty much 
created both (I was very active in the EJB 3.1 JSR) I can say they are the same 
with one tiny difference.  A slight variation in classpath scanning.

For that slight difference and not wanting to break all the existing users, we 
left 3.1.x alone.  The OpenEJB trunk code (4.0.0) uses the EJBContainer API and 
not the InitialContext technique.

In terms of vendor implementation speed, that's a different story.  In 
GlassFish's defense, the Java EE spec itself can't close until GlassFish is 
"finished" because it's the RI.  So a lot of things that they'd really like to 
spend time on just have to wait till after the final release.  No doubt this 
was one of them and I'm sure that part will speed up at some point in the 
future.

> Thanks OpenEJB ppl, examples are often worth their weight in gold!

Hope they serve you well!


-David


> On Mon, Apr 11, 2011 at 7:02 PM, David Blevins <[email protected]>wrote:
> 
>> 
>> On Apr 11, 2011, at 8:04 AM, Andrew Hughes wrote:
>> 
>>> Thanks to both of you.
>>> 
>>> The OpenEJB solution seems very clean, the
>>> openejb-examples-3.1.4.tar.gz<
>> http://www.apache.org/dyn/closer.cgi/openejb/3.1.4/openejb-examples-3.1.4.tar.gz
>>> 
>>> and openejb-examples-3.1.4.zip<
>> http://www.apache.org/dyn/closer.cgi/openejb/3.1.4/openejb-examples-3.1.4.zip
>>> 
>>> from http://openejb.apache.org/download.html contain "simple-mdb" and
>>> "simple-mdb-with-descriptor" examples that are both maven projects.
>>> 
>>> This might be enough for me to get integration tests working, however...
>>> 
>>> I would also like to persue embedded container deployment (such as
>> Glassfish
>>> and/or JBoss... or ?????).
>> 
>> Note that the Embedded EJBContainer API came from the OpenEJB
>> InitialContext embedding approach.  At the spec level we almost went with it
>> as-is but decided since we were going to make it an official part of the
>> spec, we might as well have control over the interfaces (InitialContext is a
>> different spec group).  So we ended up with
>> 'EJBContainer.createEJBContainer(Map).getContext()' instead of 'new
>> InitialContext(Hashmap)'.
>> 
>> I'm not sure if either of those support MDBs as anything JMS related is not
>> part of EJB Lite and therefore not an embedded requirement.
>> 
>> Speed wise there still seems to be a big gap.  Based on this netbeans
>> howto[1] it looks like Glassfish is in the 23 - 31 second range to run a
>> test.  OpenEJB is in the 1, 2 and 3 second range[2][3].
>> 
>> [1] http://netbeans.org/kb/docs/javaee/javaee-entapp-junit.html
>> [2] https://gist.github.com/913283
>> [3] https://gist.github.com/913286
>> 
>> 
>>> I am not sure if http://www.jboss.org/arquillian is
>>> a good solution or not, I'll look at this when the openejb solution is
>>> working.
>> 
>> I like what the Arquallian guys are doing.  It isn't a container so you'd
>> still need one of those.  It's more a second attempt at something like
>> Codehaus Cargo.
>> 
>> Though I will note that if OpenEJB is the embedded container you end up
>> using, you will get better test case injection support using OpenEJB
>> directly.  Though their OpenEJB adapter digs quite deep into OpenEJB
>> internals so that could easily be improved.
>> 
>> 
>> -David
>> 
>> 
>>> On Mon, Apr 11, 2011 at 3:53 PM, Aldrin Leal <[email protected]> wrote:
>>> 
>>>> To test an MDB you need a container.
>>>> 
>>>> Either wrap as an integration test (probably using FailSafe) and/or,
>> better
>>>> yet: Use OpenEJB and plain JUnit for that.
>>>> 
>>>> --
>>>> -- Aldrin Leal, <[email protected]> /
>> http://www.leal.eng.br/mnemetica/
>>>> 
>>>> 
>>>> 
>>>> On Mon, Apr 11, 2011 at 1:16 AM, Andrew Hughes <[email protected]>
>> wrote:
>>>> 
>>>>> Howdy,
>>>>> 
>>>>> I want to be able to check that the MDB's created actually execute and
>>>>> behave as expected.
>>>>> 
>>>>> For reference, the EE5 tutorial (
>>>>> http://download.oracle.com/javaee/5/tutorial/doc/bnbpq.html) covers
>> two
>>>>> equivalent "tests" :
>>>>> 
>>>>> - *Building, Deploying, and Running the simplemessage Application
>> Using
>>>>> NetBeans IDE*
>>>>> - *Building, Deploying, and Running the simplemessage Application
>> Using
>>>>> Ant*
>>>>> 
>>>>> I can't work out how this is best done in Maven (because surprise,
>>>>> surprise,
>>>>> the NetBean's ant scrips are less than intuitive) and I can't find any
>>>>> doco
>>>>> examples on this.
>>>>> 
>>>>> Help would be excellent :)
>>>>> 
>>>>> Cheers.
>>>>> 
>>>> 
>>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to