On Wed, 14 Aug 2002, Steve Downey wrote: > First is that o.a.c.startup.CatalinaService doesn't distinguish between > catalina.home and catalina.base. setHome() actually sets both of them. > Adding a setBase() is trivial, but it affects the semantics of > initialization. Any current client expects both to be set by a call to > setHome(), and just moving the setProperty to setBase() breaks that. Of > course if the setProperty("catalina.base",s) is left in setHome(), then > initialization is order dependent. For now, and I just added a setBase() > and ignored the problem.
Well, CatalinaService is not 'completed' - just started :-) What we do in 3.3 is have 2 setters, and at execute check if: - if only one is set, the other takes this value - if none is set, use discovery ( locate the base from the CLASSPATH ) - if both are set, use that. If you want to implement this - great, if not I'll do it when I find time ( or I need it ). > The next problem was that the task runs in VM. Ant's xercesImpl chokes > on parsing the schemas. This is the known dependency on Xerces 2.0.1. > Replacing the xercesImpl.jar in Ant fixed that, but that seems an ugly > requirement. Well... As I said, it is a major problem if we can't use any JAXP but require a specific parser and version... One solution is to remove schema validation ( and validation in general ) from tomcat runtime, and have a separate validation program that can be run on a webapp _before_ it is deployed on tomcat. There are many other solutions - but requiring anyone using tomcat5 to use Xerces2.0.1 and subjecting every user to hugely expensive and redundant validation is the worse. > In any case, after doing that, Catalina service starts up, but doesn't > seem to be able to find the servlet apis to compile JSP pages. As an > added irritation, stdout isn't redirected to catalina.out, and it is > quite noisy. Yes - I have few more classes to convert to commons-logging, after that we'll have full control over the messages and verbosity. I'll probably commit somthing this weekend ( large commit, need to filter out some changes and test more ). Regarding servlet apis - it may be a bug in AnClasstLoader. I use CVS_HEAD and it works fine for me, but I had the same problem with 1.5. I can try to find a workaround ( I think I've seen a fix in the 1.5 branch for classloader that may fix this, so you can use the head of 1.5 branch as well ). I love classloaders and reverse delegation... > So, my current patch may not be the best possible, but it does have the > advantage of working. Ok. > I think it will make more sense to use the launcher as the basis for a > task to run tomcat. Running it in process leads to a lot of state > leaking over. For testing I think it's safer to run it as much as > possible in its own environment. You can also use <java execute> ( it is commented out in build2.xml, but should work fine ). Regarding output redirection, I think Patrick mentioned adding some methods in the startup code to redirect programmatically. Costin -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>