[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openejb-development
Subject:    Re: [OpenEJB-dev] Understanding OpenEJB's 0.9.2 ClasspathUtils
From:       David Blevins <david.blevins () visi ! com>
Date:       2003-09-24 14:20:18
[Download RAW message or body]

On Wed, Sep 24, 2003 at 01:49:07PM +0200, Jacek Laskowski wrote:
> Dalibor Topic wrote:
> > Hi David,
> > 
> > I'm a kaffe developer trying to get OpenEJB to run on top of kaffe, 
> > which is a free, clean-room runtime for programs written in, you guessed 
> > it, java.
> > 
> > Currently OpenEJB doesn't load on kaffe because it breaks in 
> > ClasspathUtils method getUcpField. I tried to grasp what the code does, 
> > but the lack of comments didn't help ;)
> > 
> > I don't understand why you need to take the route via an undocumented 
> > variable in some particular implementation of Sun's code, instead of 
> > using the portable system property java.class.path. Could you elaborate 
> > on the design and intentions of your implementation?
> 
> Hi Dalibor,
> 
> Although I didn't write the code, I'm going to help you by answering the 
> questions. David, correct me if I make a mistake in it.
> 
> The goal of the connector is to tie up OpenEJB and Tomcat. As we know 
> the main problem in every integration is how appropriate classes are 
> visible to each component. The code David wrote made the integration 
> possible with *no* dependency on Tomcat-specific jars. If it had been 
> written so that OpenEJB classes directly referenced Tomcat-specific 
> classes, OpenEJB would have required Tomcat jars during its build and at 
> runtime. With the hack it is not required.
> 
> Thus, if you know about any other way to get at classes available in a 
> classloader so that it would also be available to OpenEJB *and* after 
> the changes OpenEJB would compile with no additional container-specific 
> jars, it means you're able to fix it without any problems.
> 

Just to add to this, we also use it for starting the remote server and all of our \
other command line tools.  Windows has a limit to the number of characters any line \
on the command prompt can be.  When we started appending the full path to the jar \
files so that people could deploy from outside the openejb.home directory, we quickly \
exceeded that length.  Windows just gives you a "line input too long" error.


Another thing it is useful for is that someone who wants to embed OpenEJB only has to \
include the openejb_loader-xxx.jar in their classpath, we import the rest of the \
OpenEJB libraries and dependent libraries automatically.

Basically, the short story is that because OpenEJB is embeddible, we aren't usually \
the tool being started on the command line and aren't the ones who control the \
CLASSPATH system variable.  We can make everyone else add all those jars, but that \
becomes a real PITA for them due to the large number of dependent libraries -- and as \
I mention, it isn't possible in windows to add that many jars in the classpath \
variable when you use the full path of the jars.

If you can find another way to get the job done, we're all ears (or eyes as it were).

-David


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
http://OpenEJB.sf.net
OpenEJB-development mailing list
OpenEJB-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openejb-development


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic