Woops... responded just now to the wrong thread...
Ok, one other item we don't support is an ear with an ejbjar, with no
application.xml, nor an ejb-jar.xml. The EARConfigBuilder needs to
inspect classes for any ejb related annotations in order to classify
it as an ejbjar. Same goes for other modules contained in an ear
with no module or application dd.
However, we can't check for module specific annotations in the
EARConfigBuilder, so do we need to consider adding a new method to
the ModuleBuilder interface (ex. isModule(JarFile)) so that the
individual builders can check for specific annotations and have
something abstract that the EARConfigBuilder can invoke?
On Jan 23, 2007, at 11:52 AM, Prasad Kashyap wrote:
On 1/22/07, David Blevins <[EMAIL PROTECTED]> wrote:
Ok. All of these issues should be fixed.
I did a complete clean Geronimo (& OpenEJB) build. I am still having
issues here -
1) http://issues.apache.org/jira/browse/GERONIMO-2770.
An ejb-module with a missing ejb-jar.xml will not be recognized and
deployed.
2) http://issues.apache.org/jira/browse/OPENEJB-452
An ejb-module with a missing openejb-jar.xml will throw an NPE
11:40:53, 611 WARN [OPENEJB] Auto-deploying ejb Calculator:
EjbDeployment (deployment-id=Calculator, container-id=Default
Stateless Container)
11:40:58, 068 ERROR [Deployer] Deployment failed due to
java.lang.NullPointerException
at
org.apache.geronimo.openejb.deployment.EjbDeploymentBuilder.initContex
t(EjbD
eploymentBuilder.java:107)
at
org.apache.geronimo.openejb.deployment.EjbModuleBuilder.initContext
(EjbModul
eBuilder.java:381)
Since the NPE position has now changed, I believe I have the latest
code in the server.
Cheers
Prasad
-David
On Jan 22, 2007, at 4:46 PM, David Blevins wrote:
>
> On Jan 21, 2007, at 1:03 PM, Prasad Kashyap wrote:
>> I was able to deploy the app successfully but only after using an
>> openejb-jar.xml.
>>
>> Dain & Blevins,
>> On the irc discussion on Sat, 01/20, we thought that an
>> openejb-jar.xml is not mandatory. I debugged the builder and
realized
>> the contrary.
>>
>> In the EJBModuleBuilder.java, it doesn't check to see if the
>> openejb-jar.xml is null or not.
>> String openejbJarXml = XmlUtil.loadOpenejbJarXml(object,
moduleFile);
>> OpenejbJar openejbJar = XmlUtil.unmarshal(OpenejbJar.class,
>> openejbJarXml);
>>
>> http://svn.apache.org/viewvc/geronimo/server/trunk/modules/
>> geronimo-openejb-builder/src/main/java/org/apache/geronimo/
openejb/
>> deployment/EjbModuleBuilder.java?view=log
>
> On Jan 22, 2007, at 8:56 AM, Prasad Kashyap wrote:
>> Jarek,
>>
>> I had the same error.
>>
>> Try something like the following in your openejb-jar.xml
>>
>> <openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1">
>> <ejb-deployment ejb-name="Calculator"
>> deployment-id="samples/calculator/stateless/
>> CalculatorLocal"
>> container-id="Default Stateless Container"/>
>> </openejb-jar>
>
> First, a very big thank you to Prasad for really digging in this
> weekend helping to find things that needed to be fixed. All
> because if his input I was able to find what I think are the the
> last remaining gotchas in the EJB deployment system. I've tried to
> file jiras for everything, so here goes:
>
> The first issue he discovered is with deploying an ejb app with no
> ejb-jar.xml. Geronimo needs that file to determine it's an ejb app,
> so at least an empty one is required to make deployment work.
> Here's the jira for that:
> http://issues.apache.org/jira/browse/GERONIMO-2770
>
> So to fix that I need to see if there are any annotated beans in
> the jar, which will be hard to do as there is no classloader
> available in the 'createModule' section of the Geronimo deployment
> system. I racked my brain for a bit and think with a little work
> to my xbean-finder ClassFinder I can do the required sniffing with
> no classloader as it's all ASM-based. I just need to add a couple
> methods to report that data. I've filed a jira for that as well:
> http://issues.apache.org/jira/browse/XBEAN-70
>
> The second issue that Prasad found is that you have to had to have
> an openejb-jar element in your geronimo-openejb.xml or the
> EjbModuleBuilder will fail with a null pointer. This is the issue
> he posted above. Dain as already fixed that issue and now you can
> have an empty openejb-jar element in your geronimo-openejb.xml.
>
> But I was still surprised about one thing (issue number three).
> Even having an empty openejb-jar, which is something he tried,
> *should* work. So I dug a bit more in the code on the openejb side
> and found that the logic goes "if you have an openejb-jar, use it.
> If you don't have one, create it automatically." I.e. so adding
> the empty openejb-jar element effectively shut off the auto deploy
> functionality. We do have the code that can augment an existing
> openejb-jar and add missing definitions automatically, so I've
> created an issue for that one as well.
> http://issues.apache.org/jira/browse/OPENEJB-452
>
> Hope to get these fixed in a couple hours. Big thank you to Prasad
> for playing detective and finding *all* of these issues. Rather
> than stopping at the first one, he kept going all the way to the
> end and did what it took to get something working. Very
> appreciated and very big time saver for me at least as I spent the
> weekend working on the conversion tool and wouldn't have been able
> to do that without all his work on this.
>
> Nice Job, Prasad!
>
> -David
>
>
>
>
>
>
>
-sachin