RE: Stable 1.0 and deployment ....
Allton Paul wrote: Sorry to bug, but is there a planned release date for a milestone 1.0 release? Just made the decision to go with Struts and I've been playing with v0.5. I'm looking to use it in a production environment so I'm not keen on using unstable releases ... but I also dont want to use 0.5 if there are going to be major changes In a nutshell should I deploy with 0.5 now, or is 1.0 immenient? It is relatively imminent ... but I had to spend a very large amount of November picking up the pieces and getting Tomcat 3.2 out the door (final release was last night). :-( There have been very substantial changes between 0.5 and the current code base. I would expect relatively few incompatible changes from the current code to final release, although there will probably need to be some as we implement the remaining suggestions and features. Personally, I would base new development on the current code. Finally, currently it seems that for each deployed application you need to have struts.jar and all the taglibraries, is it possible to have one instance of for container. Presumably the .jar can just be added to the classpath, but how do I share the taglib's (I'm using Tomcat) Yes, you need struts.jar and the tag library descriptors in each web app. It would be technically feasible to share the struts.jar file by putting it on the classpath, but that would break the Digester module -- it would no longer be able to see user classes that really were in WEB-INF/clasess or WEB-INF/lib. There is no mechanism to share TLDs across web apps. The whole idea is that a web app should be a self-contained component that can be installed on any servlet container, and it will "just work". Although this ideal is not completely met yet (primarily due to buggy servlet containers), it is pretty close to the case. I agree in principal, the whole point of having a WAR file is so that its easy to deploy elsewhere. But in reality it means you have to either put everything into one webapp, which would quickly get out of hand if you have a lot of pages. Or if you split into seperate webapps then you are forced to have a copy of the .jar and .tld's in each one, which sounds like it will lead to version control nightmare Cheers ... p. Craig McClanahan The information in this email is confidential and is intended solely for the addressee(s). Access to this email by anyone else is unauthorised. If you are not an intended recipient, you must not read, use or disseminate the information contained in the email. Any views expressed in this message are those of the individual sender, except where the sender specifically states them to be the views of The Capital Markets Company. http://www.capco.com ***
Re: Stable 1.0 and deployment ....
Allton Paul wrote: There is no mechanism to share TLDs across web apps. The whole idea is that a web app should be a self-contained component that can be installed on any servlet container, and it will "just work". Although this ideal is not completely met yet (primarily due to buggy servlet containers), it is pretty close to the case. I agree in principal, the whole point of having a WAR file is so that its easy to deploy elsewhere. But in reality it means you have to either put everything into one webapp, which would quickly get out of hand if you have a lot of pages. Or if you split into seperate webapps then you are forced to have a copy of the .jar and .tld's in each one, which sounds like it will lead to version control nightmare System administrators have to deal with this kind of thing all the time -- it's by no means unique to web apps. All it takes is some discipline and the use of scripts rather than manual commands to do updates. You also run into the same issue with development environments. Consider the case where you're using Struts to build three different web apps. What I do is set up my directories like this: DEVELOPMENT-HOME/ jakarta-struts/-- Struts distribution my-app-1/-- My App 1 source code my-app-2/-- My App 2 source code my-app-3/-- My App 3 source code BUILD-HOME/ my-app-1/-- My App 1 WAR directory structure my-app-2/-- My App 2 WAR directory structure my-app-3/-- My App 3 WAR directory structure And I use Ant build scripts (the same way that Struts itself is built -- if you're not using Ant you are working way too hard!) for the three individual apps that always copy the appropriate stuff from "../jakarta-struts/lib" every time I build. In all cases, the build occurs into separate build directories that have the exact structure of a web application. These directories are mapped as Context entries in Tomcat. Now, I can rebuild a particular app from scratch by simply deleting the BUILD-HOME/my-app-2 directory (for example), and running the build script for my-app-2. I'm always guaranteed to pick up the current version of the Struts files, and they will always be in the right place -- so it's very difficult to make a mistake. For more on my recommended approach to organizing development of web applications (including those that use Struts), see the Application Developer's Guide that is included in the documentation directory of the Tomcat 3.2 distribution. Craig
Re: Stable 1.0 and deployment ....
Allton Paul wrote: Sorry to bug, but is there a planned release date for a milestone 1.0 release? Just made the decision to go with Struts and I've been playing with v0.5. I'm looking to use it in a production environment so I'm not keen on using unstable releases ... but I also dont want to use 0.5 if there are going to be major changes In a nutshell should I deploy with 0.5 now, or is 1.0 immenient? It is relatively imminent ... but I had to spend a very large amount of November picking up the pieces and getting Tomcat 3.2 out the door (final release was last night). :-( There have been very substantial changes between 0.5 and the current code base. I would expect relatively few incompatible changes from the current code to final release, although there will probably need to be some as we implement the remaining suggestions and features. Personally, I would base new development on the current code. Finally, currently it seems that for each deployed application you need to have struts.jar and all the taglibraries, is it possible to have one instance of for container. Presumably the .jar can just be added to the classpath, but how do I share the taglib's (I'm using Tomcat) Yes, you need struts.jar and the tag library descriptors in each web app. It would be technically feasible to share the struts.jar file by putting it on the classpath, but that would break the Digester module -- it would no longer be able to see user classes that really were in WEB-INF/clasess or WEB-INF/lib. There is no mechanism to share TLDs across web apps. The whole idea is that a web app should be a self-contained component that can be installed on any servlet container, and it will "just work". Although this ideal is not completely met yet (primarily due to buggy servlet containers), it is pretty close to the case. Cheers ... p. Craig McClanahan