Hi Thiago,
We do in fact scan all of WEB-INF/lib/ and WEB-INF/classes for ejbs.
The openejb.deployments.classpath.include property applies to boot-
time scanning of the system classpath, but we could probably rig up
something that allows you to set that and similar flags for an
individual webapp.
Filed a jira on it: https://issues.apache.org/jira/browse/OPENEJB-925
(for notifications:
https://issues.apache.org/jira/secure/ViewIssue.jspa?id=12406545&watch=true)
-David
On Oct 15, 2008, at 4:29 PM, Thiago Antônio Marafon wrote:
Hello Reza!
Thanks for helping me again.
I made a simple application, using no jars, with only one annotated
EJB, and Tomcat loads in +- 25 seconds.
If I make this app depend on Hibernate, Struts and some others jars
(20 jars total), still with only one EJB, then Tomcat takes 55
seconds to start.
I´ve tried to use the openejb.xml to describe the deployments, tried
the "openejb.deployments.classpath.include" system property, and I
even tried to put the EJB .class files in a jar with an empty ejb-
jar.xml file, but Tomcat still takes more than 50 seconds to start.
We can´t use all of these jars in Tomcat lib because there are many
applications running together and each one using different versions
of the libs. Even Hibernate, some of them uses 3.1.3, others 3.2.5.
Frequently, the apps are so big that we don´t have time to migrate
for the new vesions.
It would be possible to put Struts and some others jars in Tomcat/
lib, but that is not really nice, specially during development. It
is better to have them within the application, so they stay together
in the repository (we still don´t use Maven. I hope we do soon).
".. you can always disable class-path scanning by setting the
metadata-complete attribute to "true" in the deployment descriptor.
However, that will also turn off annotations processing completely."
You mean I would have to describe the EJBs using XML?
Regards,
Thiago
Reza Rahman escreveu:
Thiago,
What kind of boot times are you seeing? How many jars do you have?
Do you need them all in the app or can some of them go in Tomcat/
lib instead? I have to say I haven't seen much of an issue on this,
but I am using OpenEJB for unit testing only, not with Tomcat.
If performance is a very critical issue, you can always disable
class-path scanning by setting the metadata-complete attribute to
"true" in the deployment descriptor. However, that will also turn
off annotations processing completely. That should improve
performance, right David? Are there any other OpenEJB specific
techniques? I am curious to know myself...
Cheers,
Reza
Thiago Antônio Marafon wrote:
Hi all,
I´m evaluation OpenEJB 3.0 with Tomcat 6. Everything is ok, my
test application is working great.
But, I noticed that the more jars the application has, longer is
the Tomcat bootstrap time.
Then I saw this:
http://openejb.apache.org/3.0/application-discovery-via-the-classpath.html
And tried all the alternatives, but it looks like that in Tomcat
these don´t work.
My beans are annotated, there isn´t a ejb-jar.xml, and the .class
files are not in a jar.
Any help?
Cheers,
Thiago