Following up in this thread as I need to plug in some annotation
based test into the itests as we are having some issues in the
Geronimo integration that are nearly impossible to get working or
ensure are working without actual annotations.
We had discussed a separate test suite for annotated beans, which is
still a good idea. I plan to make a purely annotated version of our
jndi enc and field injection tests, I'll just put them in new classes
next to the other tests. We can move them out later if we want to go
ahead with the plan to test a completely ejb-jar.xml free set of itests.
-David
On Nov 26, 2006, at 6:48 PM, David Blevins wrote:
Hi Manu,
On Nov 23, 2006, at 2:04 AM, Manu George wrote:
Hi David/Mohammad,
What I was planning was to add annotated beans for each of the
corressponding beans deployed using the deployment descriptor. Then
execute all the test cases existing for the dd deployed beans for the
annotated beans as well.
Sounds great.
In addition to this we need to create new
test cases for checking the overrides as well as the defaults(i.e.
beans with the very minimum annotations. The unpecified config
attributes should be substituted by defaults).
Even with the override testing idea I posted before, we'll still
want a few beans and tests, so this is still a good idea.
I was thinking that if we can deploy the annotated ejbs with
the same name as the dd based ones we can execute the existing tests
as well. We will have the beans and remote interfaces extending from
the existing ones as well.
We don't have support for it yet, but we can use the mappedName
attribute of the @Stateful, @Stateless, or @MessageDriven
annotations to specify the OpenEJB deploymentId. We'll likely want
to start using the mappedName of some of the other annotations as
well. And we'll definitely want to document how we've allocated
the "mappedName" attributes of various annotations on the website
nice and clearly as it's vendor-specific. Maybe a table of some sort.
I plan to implement this by creating two new TestSuites
corressponding to iTest and RemoteiTest namely AnnotatediTest and
AnnotatedRemoteiTest. In iTest and RemoteiTest I will add the
following system property
System.setProperty("openejb.deployments.classpath.exclude",
".*openejb-itests-annotated-beans.*");
This will prevent openejb from loading the descriptors in that
directory and so the annotated beans.Similarly if I set the property
to .*openejb-itests-beans.* in AnnotatediTests suite then the dd
based
beans won't be deployed. This will minimize the tests we need to
write
for annotated beans.
Exactly what that's for! Though I'm beginning to think we should
add an "openejb.deployments.classpath.include" as well. Is this
something someone want's to add?
One issue I am not sure of here is even though we
will have annotated business interfaces in the jar deployed in server
the existing tests will use the parent interfaces only so we may need
to create some tests with annotated interfaces used at client side.
I'm not sure out that will play out either. We should be able to
get by, but there may be places we want tests dedicated to the
annotated beans/interfaces.
Now I may have been missing something when i came up with
this approach and so it may not work. So I am looking for your
comments poiniting out the issues with this approach. Better
ideas,improvements and comments are welcome from anyone.
You nailed it pretty well.
One thing in general is that the field injection, setter injection,
EJBContext.lookup (no JIRA for this yet), and JNDI ENC lookup tests
are all going to doing pretty much the exact same things. It'd be
best if they were all as similar as possible. We have a test for
the JNDI ENC lookups on the types available in EJB 1.1 (needs to be
updated for EJB3 also).
http://svn.apache.org/repos/asf/incubator/openejb/trunk/openejb3/
itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/
stateless/EncStatelessBean.java
http://svn.apache.org/repos/asf/incubator/openejb/trunk/openejb3/
itests/openejb-itests-client/src/main/java/org/apache/openejb/test/
stateless/StatelessJndiEncTests.java
This may or may not be useful as a launching pad for the new
tests. We don't have to follow that style and we very well may
want to rewrite that test to follow the style of the new tests if
it turns out to be different.
-David
Thanks
Manu
On 11/20/06, David Blevins <[EMAIL PROTECTED]> wrote:
On Nov 20, 2006, at 1:48 AM, Manu George wrote:
> Hi David,
> Have you created the beans that we are going to test
> annotations? If not shall I go ahead and create the beans as
extending
> from the current test beans. I plan to create the session beans
> required for testing the annotations you have implemented.
Go for it!
You can throw everything into an itests/openejb-itests-annotated-
beans/ module.
Note sure just yet how we'll wire it in to run with the other tests.
If you have any ideas, I'm all ears.
-David