Re: Making Struts Build Easier (Re: coming out for JSF + Struts, was: Struts JSR?)
Craig R. McClanahan wrote: Quoting Peter A. Pilgrim [EMAIL PROTECTED]: Joe Germuska wrote: Whether the classic and el taglibs are one chunk or two isn't hugely important to me either -- I would prefer that this decision be made by developers who've done more work on that code to date. However, I did find that when I patched o.a.s.t.html.JavascriptValidator, I had to go and make a corresponding change in the EL version. I suspect that changes in those two libraries are going to track pretty tightly. But like I said, I'm not pushing for this; just floating it... Is there any reason that the EL tags wouldn't replace the existing tags for Struts 2.0? Also, IMO, many of the tags can be removed entirely for 2.0 because they've been replaced by more powerful counterparts in the JSTL. As I've been saying (a lot, it seems, lately) on struts-user, I think there are legitimate Struts JSP tags like html:messages that are not best replaced by JSTL. Any time Struts tools put resources in special locations in request or session scope, I think it's nice to have tags which know the special locations, instead of expecting people to dig in and find them. And, for example with html:messages, the message-property filtering is a useful feature that would require a lot of verbose JSTL to achieve the same goal. So, I'd suspect even in 2.0 there will be arguments for a small Struts taglib. But I am 100% on board with pushing people to use the JSTL where it is really equivalent. Joe All +1 Some Struts tags are indeed very great. I also found the original html:options tag to really be useful last year at RBS generating HTML OPTIONS elements. Repeating the same thing JSTL c:if or c:when statment is verbose. If there not EL equivalent of html:options, it will be on my todo list. It's not just an issue of JSTL and EL-enabling Struts tags. JSF, for example, has more powerful equivalents of html:options (f:selectItems -- among other fancy things you can make it create hierarchical option lists by emitting optgroup very easily), as well as equivalents for html:messages (h:message for a single field, h:messages for the general messages). So I guess what you are, in fact, saying that we should be using JavaServer Faces or looking to use it, for 2004/2005. One question are the JSF tag actions h:message and h:messages dependent on a JSF implementation or can they be used standalone? Perhaps that is what we need to do as Developer. Write some kind of feature compatibility matrix. Old Tag:New Tag : Description == html:messagesh:messages extends original behaviour and can make it create hierarchical option lists by emitting optgroup. I presume there are some other Struts HTML tags that are favourites with other people too. Likewise, the Struts-Faces integation library has JSF-componetized equivalents for some of the Struts HTML tags (including messages) to make it easier to use as a drop-in replacement. I'd be interested in hearing specifically what other favorite tags their are, to make sure that equivalent functionality is available to a JSF-based user of Struts. logic:iterate superceded by JSTL logic:forward superceded by JSTL logic:redirect superceded by JSTL logic:equal superceded by JSTL logic:notEqual superceded by JSTL logic:greaterThan superceded by JSTL logic:greaterEqual superceded by JSTL etc logic:match no equalivant in JSTL 1.0 but exists String functions in JSTL 1.1 bean:define replace with c:set bean:size we need a simple tag lib action for JSP 1.2 and JSTL 1.0 to get the size of java.uitl.Collection until there is widespread support JSP 2.0 JSTL 1.1 Investigation continue with rest of Beans taglib ... -- Peter Pilgrim Craig - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Making Struts Build Easier (Re: coming out for JSF + Struts, was: Struts JSR?)
Joe Germuska wrote: Whether the classic and el taglibs are one chunk or two isn't hugely important to me either -- I would prefer that this decision be made by developers who've done more work on that code to date. However, I did find that when I patched o.a.s.t.html.JavascriptValidator, I had to go and make a corresponding change in the EL version. I suspect that changes in those two libraries are going to track pretty tightly. But like I said, I'm not pushing for this; just floating it... Is there any reason that the EL tags wouldn't replace the existing tags for Struts 2.0? Also, IMO, many of the tags can be removed entirely for 2.0 because they've been replaced by more powerful counterparts in the JSTL. As I've been saying (a lot, it seems, lately) on struts-user, I think there are legitimate Struts JSP tags like html:messages that are not best replaced by JSTL. Any time Struts tools put resources in special locations in request or session scope, I think it's nice to have tags which know the special locations, instead of expecting people to dig in and find them. And, for example with html:messages, the message-property filtering is a useful feature that would require a lot of verbose JSTL to achieve the same goal. So, I'd suspect even in 2.0 there will be arguments for a small Struts taglib. But I am 100% on board with pushing people to use the JSTL where it is really equivalent. Joe All +1 Some Struts tags are indeed very great. I also found the original html:options tag to really be useful last year at RBS generating HTML OPTIONS elements. Repeating the same thing JSTL c:if or c:when statment is verbose. If there not EL equivalent of html:options, it will be on my todo list. I presume there are some other Struts HTML tags that are favourites with other people too. -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Making Struts Build Easier (Re: coming out for JSF + Struts, was: Struts JSR?)
to everyone, then we end up hiding our light under a bushel. Now, I haven't brought this idea up to any of the other Committers, and have no idea how any else will feel about it. But it is something that I would personally like to work towards -- once we have our existing code rationalized. (First things first!) I'd be open to it, but I think we have a lot of things we'd want to do to get our own house in order before we actually take action on this. I also think it might be a tricky issue in some respects. For example, we'll be faced with making subjective decisions on potentially substantial bodies of code, leading to the possibility of why not mine? kinds of things. For larger code bases, we'd also likely need to have some discussions with the incubator folks. But, as you say, let's get our own house in order first, and then come back and talk about this some more. -- Martin Cooper -Ted. Craig - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Making Struts Build Easier (Re: coming out for JSF + Struts, was: Struts JSR?)
Ted Husted wrote: On Tue, 23 Mar 2004 10:07:55 +, Peter A. Pilgrim wrote: In my experienc multiple CVS repositories can make a project much harder to manage. But are we singing from the same hymn sheet? Is a multiple repository equal ( or not equal) to a CVS module? We mean multiple CVS modules. The original idea being each module would generate a jar. Product==JAR==Module==unit-of-release. One list of potential products -- each with its own JAR, module, and release cycle -- would be: * core (including tiles and validator) * examples * site * whiteboard (or sandbox) * opt-taglib * opt-el * opt-faces aka the seven dwarfs :) Now it clearer. Well this is how Expresso CVS is laid out and an old investment bank project which I was involved in a couple years ago was laid out like that as well. I guess the hard part of copying jar and build a web app from CVS modules have already been discussed. Still it is the only way to go if you want to Struts to be modular. So +1 from me. -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Making Struts Build Easier (Re: coming out for JSF + Struts, was: Struts JSR?)
Peter A. Pilgrim wrote: Ted Husted wrote: On Tue, 23 Mar 2004 10:07:55 +, Peter A. Pilgrim wrote: In my experienc multiple CVS repositories can make a project much harder to manage. But are we singing from the same hymn sheet? Is a multiple repository equal ( or not equal) to a CVS module? We mean multiple CVS modules. The original idea being each module would generate a jar. Product==JAR==Module==unit-of-release. One list of potential products -- each with its own JAR, module, and release cycle -- would be: * core (including tiles and validator) * examples * site * whiteboard (or sandbox) * opt-taglib * opt-el * opt-faces aka the seven dwarfs :) Now it clearer. Well this is how Expresso CVS is laid out and an old investment bank project which I was involved in a couple years ago was laid out like that as well. I guess the hard part of copying jar and build a web app from CVS modules have already been discussed. Still it is the only way to go if you want to Struts to be modular. So +1 from me. Let me clarify my own post ( grabbing GNU Emacs and picture-mode ). The way it is organised under the current CVS module is `src' for Java source and `web' file. So you could live with this structure. 1) I think you should keep the same elementary structure Case#1 CVS Repository | + core (including tiles and validator) | | | +---web | +---src | + examples | | | +---web | +---src | + site | | | +---web | +---src | + whiteboard (or sandbox) | | ... + opt-taglib | | ... + opt-el | | ... + opt-faces 2) Or you can remove all the `web' stuff and merge under one `web' (public_html) module. But I have never liked this idea as a workable solution. I seen it once long ago and I hated it then and now. Case#2 CVS Repository | +--web | | | +-- examples | +-- core | +-- ... | + core (including tiles and validator) | | | +---src | + examples | | | +---src | + site | | | +---src | + whiteboard (or sandbox) | | ... + opt-taglib | | ... + opt-el | | ... + opt-faces In any case in order to build a single WAR or EAR, can be quite hard on the ANT XML build file. There is a lot of possible copying of files, JARing, and/or JARing involved in order to build a release. In my limited architectural experience you only need to get the initial build right once, then you can forget about it, as long as other people developers understand what is going on. 1) Developers have to understand the project directory structure and standards in order to not to step on each other shoes. e.g In order to build a WAR of all modules that runs out of the box, you cannot have two different sub project developers, say from `examples' and `site', each with a CVS file called CVS-MODULE/web/some/foobar/acme.jsp. Conflict of interest on files. The same applies to source code and resources as well. Top level package names must be agreed well in advanced. Of the course the current mapping CVS-MODULE/src/shared/org/apache/struts/** can be simplified to: CVS-MODULE/src/org/apache/struts/** in the new modular structure. 2) Organise fragments that are included into a larger configuration files. e.g Each sub project may have TLD files, Properties files, i18n resources, or Servlet Mappings and Servlet Paths that are merged into a final file. Servlet mapping fragments are inserted into the final web.xml file. Same goes for any Servlet filters. NB: This is similar to using XML includes notation in order build a giant `struts-config.xml', which shared by a large development team. I am not sure if you need to do this as committers. Only I mention it if you need to build a Struts Adventure Petstore demonstration example in the far off future. Will properties file probably have to merge them with ANT core tasks or some custom made build tool. 3) Agree to keep to a convention document so that the mythical `master' build.xml does not blow up into smitherings. 4) Some one has to write standards conventions document so that everybody knows what time it is, and plays in a solid team. 5) Another other business obviously include JUnit, Struts documentation, javadoc etc etc It is starting resemble a big project with more 10+ developers working across CVS modules. Having said all that I wish you great bundle of luck. Regards -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail
Re: Struts TLP Sub-projects (RE: Making Struts Build Easier)
Ted Husted wrote: On Tue, 23 Mar 2004 02:49:44 +, Peter A. Pilgrim wrote: Would the same principle work with people who have taken Struts and integrated or embedded as another framework? Having spent some type integrating 1.1 into Expresso Framework in 2002, in our case can we be classified as Struts extenders? Also some repository will not want to become a sub project of Struts because of logical sense, politics or legal entity status? Something like Expresso is large enough to be a framework in its own right. If the Expresso Community ever wanted to apply to Apache for incubation as an ASF project, I'd certainly support the idea. Or, if there were a coherent subset of Expresso that could be used by Struts developers as an extension, independently of Expresso, that might be something that could live as a Struts opt-* modules. Personally, I'd love to see a proposal from Expresso of some helpful code that they would like to grant to the ASF -- especially if it gave us an excuse to nominate you as a committer, Peter. :) Not a decision I could make on my own, dear boy. You would have to discuss it with Expresso repository copyright holders. Just like the advert that ask please get permission from the (telephone) bill payer before calling the premium rate competition number. My view might be paraphrased as who ever legally owns the CVS repository and pays real money annually to host it to world wide web has the right to do what they please with the source code base. As for the framework itself, last year, we were looking at some componentisation and micro kernel-like idea but some teething problems prevent us in the present release from dismantling the framework and reassembling it. I suppose any component that might be presented piece-meal to ASF would be derived from this work. Hey, who knows? It's always purple hazey out there in the future. On the other hand. I can certainly see if I can help you personally on Struts 2.0 work in the meantime. Of course, it is very true that not every open source project is suited for Apache. There is a specific Apache culture and management style that doesn't work for everyone. We would never simply annex a codebase and then redistribute it under the ASL. We consider the community behind a codebase to be more important than the code itself. It's the extension's community that we would pursue, more than the code itself. Regards -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts TLP Sub-projects (RE: Making Struts Build Easier)
Ted Husted wrote: On Tue, 23 Mar 2004 06:31:51 -0500, Ted Husted wrote: Something like Expresso is large enough to be a framework s/framework/Apache project See my other earlier post for my views. -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Making Struts Build Easier (Re: coming out for JSF + Struts, was: Struts JSR?)
Joe Germuska wrote: At 3:47 PM -0500 3/23/04, Ted Husted wrote: At this point, we're down to whether to organize the subprojects (units of release) into multiple modules or around top-level-directories in a single module. My only feeling is that should we start inviting some of the popular extensions to join us, the module approach seems like it would scale better. I don't have a very strong opinion about it. However, from a Maven perspective, if we want to share resources such as a common project.xml, having multiple modules leaves us with no place to put the shared project. I've also had reasonably good results with the maven multiproject goal for building a number of related projects, which would also require a shared project.xml I just to try build Struts with Maven, what am I doing wrong? [EMAIL PROTECTED] [175] maven java:compile __ __ | \/ |__ _Apache__ ___ | |\/| / _` \ V / -_) ' \ ~ intelligent projects ~ |_| |_\__,_|\_/\___|_||_| v. 1.0-rc1-SNAPSHOT Attempting to download commons-validator-1.1.2-dev.jar. WARNING: Failed to download commons-validator-1.1.2-dev.jar. The build cannot continue because of the following unsatisfied dependency: commons-validator-1.1.2-dev.jar (try downloading from http://jakarta.apache.org/commons/validator/) Total time: 6 seconds Finished at: Tue Mar 23 22:11:19 GMT 2004 -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Making Struts Build Easier (Re: coming out for JSF + Struts, was: Struts JSR?)
Joe Germuska wrote: I just to try build Struts with Maven, what am I doing wrong? ... Attempting to download commons-validator-1.1.2-dev.jar. WARNING: Failed to download commons-validator-1.1.2-dev.jar. The build cannot continue because of the following unsatisfied dependency: The problem is that the project.xml file declares a dependency on a version of commons-validator which isn't in your local Maven repository and which is not in the shared repository. Maven looked here: http://ibiblio.org/maven/commons-validator/jars/ for commons-validator-1.1.2-dev.jar and as you can see if you follow that URL, it isn't there. You can control the versions that Maven uses for dependencies by specifying certain properties. (Full details at http://maven.apache.org/reference/user-guide.html#Properties_Processing) Probably the easiest way to set the properties would be to create or edit build.properties in the root of your local Struts sandbox (same directory where build.xml and project.xml are). Add the following lines: maven.jar.override=on maven.jar.commons-validator=1.1.1 That's a version of commons-validator that's on the shared Maven repository, although I don't have time just at the minute to see if Struts will still build against it! Yes the above did the trick. I have update the Struts Wiki page. Ta also. You could also check out commons-validator and run maven jar:install-snapshot and use maven.jar.commons-validator=SNAPSHOT instead. Hope that helps. If we stick to our guns about avoiding dependencies on unreleased software, this won't come up again... it's not Maven's fault! ==== -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Making Struts Build Easier (Re: coming out for JSF + Struts, was: Struts JSR?)
Joe Germuska wrote: I just to try build Struts with Maven, what am I doing wrong? ... Attempting to download commons-validator-1.1.2-dev.jar. WARNING: Failed to download commons-validator-1.1.2-dev.jar. The build cannot continue because of the following unsatisfied dependency: I cannot seem to build the resource files. XSL Templates. [EMAIL PROTECTED] [266] maven jar:install ... java:prepare-filesystem: java:compile: [echo] Compiling to m-target/classes java:jar-resources: Copying 16 files to /new/peterp/jakarta-struts/m-target/classes [style] Transforming into /new/peterp/jakarta-struts/m-target/classes/META-INF/tlds [style] Processing /new/peterp/jakarta-struts/doc/userGuide/struts-bean.xml to /new/peterp/jakarta-struts/m-target/classes/META-INF/tlds/struts-bean.tld [style] Loading stylesheet /new/peterp/jakarta-struts/doc/stylesheets/tld.xsl [style] Processing /new/peterp/jakarta-struts/doc/userGuide/struts-html.xml to /new/peterp/jakarta-struts/m-target/classes/META-INF/tlds/struts-html.tld [style] new/peterp/jakarta-struts/doc/userGuide/struts-html.xml:1440:2: Fatal Error! The content of elements must consist of well-formed character data or markup. [style] Failed to process /new/peterp/jakarta-struts/doc/userGuide/struts-html.xml BUILD FAILED File.. file:/new/peterp/jakarta-struts/ Element... ant:style Line.. 29 Column 28 Fatal error during transformation Total time: 16 seconds Finished at: Wed Mar 24 01:14:25 GMT 2004 What are required `build.properties' for Xalan/Struts? Many tia -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Making Struts Build Easier (Re: coming out for JSF + Struts, was: Struts JSR?)
Joe Germuska wrote: java:jar-resources: Copying 16 files to /new/peterp/jakarta-struts/m-target/classes ==== [style] new/peterp/jakarta-struts/doc/userGuide/struts-html.xml:1440:2: Fatal Error! The content of elements must consist of well-formed character data or markup. [style] Failed to process /new/peterp/jakarta-struts/doc/userGuide/struts-html.xml I don't think your problem is with XSLT (Xalan is defined as a dependency in project.xml just for this purpose) -- from the logs it looks as if struts-bean.xml is being styled correctly before struts-html.xml fails. It seems unlikely that this would be the problem, but are you sure you have the head version of doc/userGuide/struts-html.xml? I just did maven clean followed by maven jar and didn't get any errors. Thanks Joe Running `maven jar' works now. Looks like it was a CVS conflict with an older version. Purged all the `doc' directory tree, then updated CVS to get latest deltas. I got delta 1.76 for `doc/userGuide/struts-html.xml' too. ==== -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts TLP Sub-projects (RE: Making Struts Build Easier)
James Holmes wrote: +1 on this!! You hit the nail on the head. Many people (mostly managers) are reluctant to adopt Struts add-ons because they are not perceived as having the same tried and true stamp as the official Struts core. I think doing this would be a huge boon for Struts and would foster a lot of the development interest that's been talked about over the past couple of days. Also, +1 on having the creators of those projects become committers so long as they've shown a protracted history in maintaining their respective projects and have an interest to continue doing so. -James http://www.jamesholmes.com/struts/ Would the same principle work with people who have taken Struts and integrated or embedded as another framework? Having spent some type integrating 1.1 into Expresso Framework in 2002, in our case can we be classified as Struts extenders? Also some repository will not want to become a sub project of Struts because of logical sense, politics or legal entity status? - Here's something else to mull over: Now that Struts is a TLP, we might want to talk about whether we want to ask the most popular open source Struts extensions -- like Struts Menu, Workflow, Stxx, SSL, and TestCase -- whether they would like to donate their code to the ASF and live as Struts opt subprojects. This would be a continuation of what we started with Tiles, Validator, and Nested, which are all favorites with our community. People working on such packages might be brought on as Struts Committers, since they have proved they have what it takes to run a project, and after an appropriate period, later invited to join the Struts PMC. Kind regards -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts TLP Sub-projects (RE: Making Struts Build Easier)
James Holmes wrote: Not exactly sure what you're referring to here, but am guessing you mean would there be an offer for integrators/embedders to become committers? I personally think this makes sense for cases like Expresso. My point was to show my support for Ted's proposal (of sorts) that projects like stxx and sslext become sub projects of the top-level Struts project. I am not going to argue over the latter point. I could not agree more because projects like Stxx, Ssltext, and Workflow are ``true'' extensions of the Struts framework, because they could not logically exist without the Struts core itself. Whereas Expresso Framework existed long before Struts was a glint in Craig's eye. From: Peter A. Pilgrim [mailto:[EMAIL PROTECTED] ==== James Holmes wrote: +1 on this!! You hit the nail on the head. Many people (mostly managers) are reluctant to adopt Struts add-ons because they are not perceived as having the same tried and true stamp as the official Struts core. I think doing this would be a huge boon for Struts and would foster a lot of the development interest that's been talked about over the past couple of days. ==/== Would the same principle work with people who have taken Struts and integrated or embedded as another framework? Having spent some type integrating 1.1 into Expresso Framework in 2002, in our case can we be classified as Struts extenders? Also some repository will not want to become a sub project of Struts because of logical sense, politics or legal entity status? ==== Regards -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Compartmentalization of Modules (was Re: [18111] et al)
Ted Husted wrote: Like James, I've been counseling teams to go multiple struts-configs rather than modules, because of the issues with cross-linking and sharing resources between modules. If we go ahead with the patch to html:link, to match the other changes we made this week, then I wouldn't have to steer people away from modules. As it stands, I believe the most common use case is that large teams want to use modules as part of a divide-and-conquer strategy. I'd suggest that we go ahead an apply these remaining patches, so that we support sharing of resources and linking between the named modules and the default module. If someone comes up with a patch to make the contextRelative tag attribute configurable or immutable, then we can apply that too. My one concern is that contextRelative is a verbose attribute name and potentially confusing. From one perspective, the module is the current context :). It really means to say applicationContextRelative, but that's impossibly long for an attribute name. While I'm at it, how about if we turn the attribute around and deprecate contextRelative=true in favor of modular=false? So we'd have things tags html:img page=/assets/logo.gif modular=false / instead of html:img page=/assets/logo.gif contextRelative=true / I am in favour of this +1 This is useful for large e-commerce projects where I would prefer modularity and also a way of sharing resources. With this compartmentalisation of modules, is there now a true to set up a module for utilities such as generic form editor, or search page. In a different can we have another module say for operations that call Actions in the `utilities' methods easily. With strict separation I understand this is not possible. So I am correct in assuming that Struts 1.2 will allow users to do this finally? As mentioned, once we mop this up, I believe we can roll 1.2.0. :) -Ted. -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [struts chain] Investigating Dynamic / Proxy Commands?
Ted Husted wrote: It might be better to bring this up on Commons Chain, Peter, since these questions seem to transcend our implementation of the Request Processor (aka Struts Chain). -Ted. Peter A. Pilgrim wrote: I am investigating the possibility of commands that can branch dynamically. Why was the ChainBase frozen in the execute() method? What is the design decision or intention of NonDelegatingCommand.java? What do you need to successfully compile and build the chain module? Well I guess what I am really after is a successful action chaining features that works with Commons Chain. I see there are couple of abstract classes: contrib/struts-chain/src/java/org/apache/struts/chain/AbstractSelectAction.java contrib/struts-chain/src/java/org/apache/struts/chain/AbstractExecuteAction.java To perform the action chain means add two these into a new Chain or creating a new Catalog with these Chains. This is why I wanted to know is Action going to be more a Command, or is it going to stay a seperate entity as it is now the Controller in MVC Model 2. -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[struts chain] Investigating Dynamic / Proxy Commands?
I am investigating the possibility of commands that can branch dynamically. Why was the ChainBase frozen in the execute() method? What is the design decision or intention of NonDelegatingCommand.java? What do you need to successfully compile and build the chain module? -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Where is Struts 2 going?
Craig R. McClanahan wrote: On Tue, 16 Sep 2003, Mete Kural wrote: --///-- The best way to get involved would be to check out CVS sources for both jakarta-struts and jakarta-commons-sandbox, become familiar with the code referenced above, and start making suggestions and improvements. A really good starting point would be portlet-specific implementations of all the commands that currently have only servlet-specific implementations. I found the nightly cvs builds, but would rather grab updates via CVS. What is the CVS checkout module called for commons chain? In the past I can do % cvs -d:pserver:[EMAIL PROTECTED]:/home/cvspublic checkout jakarta-struts but the following fails % cvs -d:pserver:[EMAIL PROTECTED]:/home/cvspublic checkout commons-chain cvs server: cannot find module `commons-chain' - ignored cvs [checkout aborted]: cannot expand modules TIA -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Where is Struts 2 going?
Ted Husted wrote: I working on something similar right now too, but using the FormProc package. I believe that we should represent entire input form in XML, including things like the default control type and field labels, and so forth, along with prompts, error messages, validations, and type conversions. Ideally, we should be able to write a default form just by reference to an XML element. What I like about FormProc is that is not focussed on JavaBeans, but on the process of validating a list of parameters against a form definition and then transferring the validated properties to some target object. The object can also be a Map, which makes for a very nifty hand-off to something like a Context. =:) In fact, expanding on the DynaForm idea, it might also be possible to create a type-safe Context backed by a XML-configured form object. We could then use the same XML document on both layers. On the presentation layer, it can generate and/or validate the data-entry form. On the business layer, it can define the properties expected by a Context. Of course, this is much like what we've been talking about doing for the Validator, but right now the emphasis there seems to be on the JavaBean and moving away from the form, where I believe we should be emphasizing the form and moving away from (pure) JavaBeans. Ted You lost me over the architecture. What I dont understand is that the current browsers are communicating HTML on HTTP. So how in the first do you get XML in the front end? Are proposing that there are new types of browsers that communicate exclusively XML over HTTP? If so then it makes for interesting future, where the HTTP request representing a HMTL Form for example, a POST method, is a XML document and the output is XML. -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Where is Struts 2 going?
Ted Husted wrote: The browsers universally accept HTML documents as output over HTTP, but they do not input HTML or XML, but a simple list of parameters. We've been experimenting with transforming that list into JavaBeans, and I'm not sure that the experiment has succeeded. It made writing tags more convenient but maintaining the JavaBeans has been costly. Especially when, for a lot of teams, the formbeans correspond 1:1 with their model beans, except for a few native parameters. The list being the CGI parameters ( terminology from my PERL/ CGI days / pre-servlet ) on the servlet request. I assume that the JavaBeans are capturing subset of the servlet request parameter of which they can be an arbitary size. Consider a loginform bean with only username and password, I would argue that you only want to capture these two CGI parameter. You can define a dyna bean for this two. So I disagree that the model design is wrong. Following the Struts perspective, the Command Validator is designed to validate a JavaBean. But, when the input is coming in from HTTP, I don't really want a JavaBean. I want to validate the parameters and, if they pass, then I might want to put them on a JavaBean or a Map, or whatever my business layer expects. If validation fails, I don't really want to display the object I'm validating (following the Validator perspective), I want to redisplay the original input. What I really want to do is take a list of parameters, validate the parameters, and if they pass, set them to an arbitrary target object. I also don't want to catch every matching parameter, I just want the ones I need for this workflow (or form). And, if validation fails, I want to redisplay the original input. So what you want to is not instantiate or populate a form bean, but transfer the CGI parameters into an XML document object. You want to validate that XML document and then pass that doc to the business tier layer. You are assuming in your business delegate or whereever you have an XML document to EJB or JDO or whatever ValueObject transformation. In other words the XML doc is used to instantiate a business value object and populate it. I can see that this is flawed, because if you are calling several business tier methods with your XML doc then every call to the business tier involves a transformation. Is this correct? If it is not then you must cache this transformation somewhere? Secondly you need to alter the taglibs for struts. The standard tags understand a form bean and property. Are you suggesting that the tags are changed or modified to support XPath syntax. xmlbean:write path=/myform/mydoc/myproperty / Which is what FormProc does. =:0) Where is this FormProc? What is the URL? I had to patch the original input list so that it could be exposed. Next I want to make the stock converters bi-directional. So, if it's supposed to take a String like 12/31/2003 and turn it into a Date, I can also hand it a Date and get back a String like 12/31/2003. This way I can pass my Model object to the form and get a list of String parameters to expose to the server page. Are you going against advice in your book here? I am sure that you recommend not exposing the model object in your form bean, because some one could fake a primary key or data. For example if you store a value object directly in a action form you then it might expose employeeId and salaryId unless to make provision to protect these properties. Also some field in the form bean should be always be Strings and we should perform the conversion between String and Date in the form bean. But if we dont have a form bean, but a list of CGI parameters how do we do this? Is this what your FormProc does? Sounds to me like a fancy hash map of sorts. When I mentioned XML, I mean define a object deployment descriptor in XML, same as the struts-config.xml, web.xml, and validator.xml. But, neither Validator or FormProc goes far enough. I want a form object that describes everything about the form, so that I could actually hand that object to a tag or Velocimacro or something and have it render a default HTML input form for me, just as we hand it the output from that form so that it can tender a default validation. Sounds to me like inject intermediate language that is look and feel neutral, between the Struts Action and the view (JSP or Velcity or otherwise) ---- -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: ActionForwards, et al (was SuccessAction)
David Graham wrote: --- PILGRIM, Peter, FM [EMAIL PROTECTED] wrote: -Original Message- From: David Graham [mailto:[EMAIL PROTECTED] --//-- I chose my words carefully when I said ActionContext interface. I *think* we can all agree that if we added this it should be an interface :-). ---- Why would want the ActionContext to be an interface? Well, ServletContext is an interface and it makes sense for this to be an interface rather than an unnecessarily limiting base class. --//-- I presume that there would be default implementation , then. What I am getting at here, this default implementation could be extended by normal web application developers, say to add in security profile information. Non-trival web application, say framework developers like myself, would write implementation of the interface. In Expresso there are two contextes ( ControllerRequest and ControllerResponse) abstractions of the web servlet request and servlet response. We can write controller that run outside of the web app environment. I think this is where you are going with the ActionContext interface. If the interface was supposed to be environment free what would this interface be? -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Parameter/Mapping/ConfigDispatchAction (Was RE: Addition of twonew actions)
Steve Raeburn wrote: I *think* we agreed to add this action. Pick a name. [ ] ParameterDispatchAction [ ] MappingDispatchAction [ ] ConfigDispatchAction Steve What happens if English is not your mother language. Are you suggesting we have? ErfolgreichAction -- German ExitosAction -- Spanish If we have Global.SUCCESS_FORWARD and Global.FAILURE_FORWARD to represent common ActionForward names it might help. Ted Husted suggests such naming in his book, but if program your variables with name that are non-english then you may not agree this. -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: ActionForwards, et al (was SuccessAction)
Craig R. McClanahan wrote: On Tue, 12 Aug 2003, Peter A. Pilgrim wrote: So we could have convenience methods such as StrutsWebContext scontext = (StrutsWebContext)context; // Where ``StrutsWebContext'' is a type of ``ServletWebContext'' ActionForm form = scontext.getActionForm(); ActionMapping mapping = scontext.getActionMapping(); If we're talking about a Struts2 world (where we're willing to reconsider the calling sequence of an Action anyway), wouldn't it be better to make StrutsWebContext just extend WebContext instead of ServletWebContext? That way we could have transparent support for servlets and portlets. So instead you would make convenience method from WebContext instead I see the `WebContext.getRequestScope()' returns a mutable map of attribute values. In other words they are derived from `ServletRequest.getAttributeNames()'. But looking at the current Struts 1.1 library would you for compatibility reason also supply the `HttpServletRequest' object to Struts users? HttpServletRequest = StrutsWebContext.getRequest(); // convenience method and like wise `HttpServletResponse' object? Another import idea is that, if we wanted, we could also add other other convenience methods to the context without breaking the signature. My question above. And presumably we [as application developer] will be able to subclass the ServletWebContext and add application features like Single Sign-On / Security / personalisation etcetera. We will be able to configure Struts Module to use our custom `Context' instead of the Struts default context. Yep this is looking sexy. Yep ... lots of interesting room for playing around here. To say nothing of the fact that you can compose your own request processor pipeline to boot. Moving swiftly back to the original design reason. The [old] request processor is now effectively a `Chain' isn't it? ( ... I will now continue this note at work ) -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: ActionForwards, et al (was SuccessAction)
Ted Husted wrote: Peter A. Pilgrim wrote: If the interface was supposed to be environment free what would this interface be? Have a look at the abstract WebContext in the Craig's new Chain of Responsibility package. http://jakarta.apache.org/builds/jakarta-commons/nightly/commons-chain/ So, the ActionContext interface *might* start with the WebContext members and then add some convenience methods for retrieving the ActionMapping and ActionForm. MyActionForm form = (MyActionForm) context.getActionForm(); The idea being that at runtime Struts could be passing around a ServletActionContext or a PortletActionContext, or a generic ActionContext (implemented with HashMaps) that you populated yourself as part of an automatic test. Right. So we could have convenience methods such as StrutsWebContext scontext = (StrutsWebContext)context; // Where ``StrutsWebContext'' is a type of ``ServletWebContext'' ActionForm form = scontext.getActionForm(); ActionMapping mapping = scontext.getActionMapping(); Another import idea is that, if we wanted, we could also add other other convenience methods to the context without breaking the signature. And presumably we [as application developer] will be able to subclass the ServletWebContext and add application features like Single Sign-On / Security / personalisation etcetera. We will be able to configure Struts Module to use our custom `Context' instead of the Struts default context. Yep this is looking sexy. -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [OT] Re: ActionForwards, et al (was SuccessAction)
Micael wrote: Sigh! I cannot stand bad grammar, so once again I must remind my nerd +++ friends that et al strictly applies to people, and that an ~~~ ^ ^ ActionForward, while dear to my heart, is just not a person. LOL! I * ew%U(R** hope you take this as interesting and new knowledge and not as a pain in the patoosh. Bye 'd bye! ~~~ Time you had a watch -- PP - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[Fwd: Re: [Opensource] [Volunteer Call] Review Commons-Resources]
-- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' ---BeginMessage--- Michael Rimov wrote: Hey Folks! Craig McClanahan has asked me if the Expresso community could review the Commons-Resources package. Struts itself [and thus, indirectly Expresso] will eventually be based off of it. What is it? An I18N package for dealing with different properties files. Check out the sandbox page for the rationale for the creation. It basically is an API with a few implementations. Craig says that DB-based resources will eventually be added. [or at least a hook] So! Since the direction of Struts directly affects the direction of Expresso. Could we get some folks to take a look at: http://jakarta.apache.org/commons/sandbox/resources/index.html And report back: 1 - Is there anything API-wise that MUST be changed for our own use? If so, now is the time to give Craig some critical design feedback so he can get things changed while resources is still in the sandbox. An issue that has come up in the Struts-dev mailing list is the fact the java.util.ResourceBundle supports `parent' attribute. Meaning ResourceBundle can be delegated. I am not sure that common resources has this support in it. 2 - Does it have anything worthwhile design wise to adopt directly into Expresso? Since we use the Struts 1.1 MessageResource already I dont see anything at mo... 3 - Is it usable? ie, can you see how to code it straight away without a lot of extraneous code? If you know the Struts API then it looks vaguely familiar. If haven't used the Struts API before then YMMV. The interesting thing is that common resources was a way to let Struts developer move the application resources from a flat file to a database. This might be interesting for implementing a `personalisation' by storing application resources inside a simple name/value database table. I suppose you can do the same with an implementation that uses a `DBObject'. I am wondering how would plug-in your DBObject application resource implementation into Struts. Worth investigation? Thanks folks in advance! -Mike --//-- -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' ---End Message--- - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
New Request Processor System [was Re: DO NOT REPLY [Bug 21479] - Add ServletRequest or HttpServletRequest to ActionForm constructor]
David Graham wrote: There is some movement towards separating Struts from the Servlet API so that it may be used in by the upcoming Portlets API. Craig is implementing a new RequestProcessor system that accomodates that and I would hate to move things in the opposite direction by tying ActionForms even more to HttpServletRequest objects. David --- Kurt Post [EMAIL PROTECTED] wrote: As one of those contributors to the whole Composable Request Processor a while ago, is there chance that we will get hint to what the Request Processor system look likes? -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: New Request Processor System [was Re: DO NOT REPLY [Bug 21479] - Add ServletRequest or HttpServletRequest to ActionForm constructor]
David Graham wrote: As one of those contributors to the whole Composable Request Processor a while ago, is there chance that we will get hint to what the Request Processor system look likes? I haven't seen it yet but I hear it's based on the GoF Chain of Responsibility pattern and will be a commons component, not Struts specific. This seemed to be an appropriate middle ground between the Filters vs. Struts only RequestProcessor debate to me. Chain of Responsibility is appropriate. My guess is there may be probably multiple CoR here just by casual inspection of the current request processor. Anyway, the bug bear would be the configuration details of the new request processor. This is what the previous bun-fight debate detoriated to? Should it be with XML and/or programmatically? I wait with baited breathe. I finished of Struts 1.1 FCS integration Expresso Framework today, time to catch some well deserved sun and sea. -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: composable RequestProcessor
David Graham wrote: One thing that bothers me is that RequestProcessor is not an interface which leads to the Tiles situation. If it were an interface, you could implement your one method and delegate the rest to the TilesRequestProcessor or any number of other processors. IMO, RequestProcessor should be an interface in Struts 2.0 to allow the composition you're looking for. David If RequestProcessor becomes an interface then you ought invent a RequestProcessorManager interface, which is an object responsible for managing and invoking request processor. In other words we have a manager and worker children. If not the controller XML needs changing. How about manager class=ControllerManager controller class=TilesRequestProcessor / controller class=FoobarRequestProcessor / controller class=AcmeRequestProcessor / /manager For Expresso I too have subclassed the TilesRequestProcessor for our own ExpressoRequestProcessor. Can a module have more than one controller? -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: composable RequestProcessor
Joe Germuska wrote: At 16:33 +0100 6/1/03, Peter A. Pilgrim wrote: For Expresso I too have subclassed the TilesRequestProcessor for our own ExpressoRequestProcessor. Can a module have more than one controller? Not the way it is right now, and I'm not sure why you'd need it. I think if you want to use the approach you described: manager class=ControllerManager controller class=TilesRequestProcessor / controller class=FoobarRequestProcessor / controller class=AcmeRequestProcessor / /manager ... then it makes more sense to define interfaces for each lifecycle method of RequestProcessor and use the XML to configure a collection of handlers. But David, at least, seems to think that's overkill. I don't feel very strongly about it, but no one else has even weighed in. It would mean a lot of interfaces, given that RequestProcessor has 16 process* methods. Probably it is overkill... Given the XML you provided, how would the Manager know which controller to use when? Ah ha! I thought you saying something different. Before I thought ComposableRequestProcessor is not a RequestProcessor. But you are saying that is. That is why my example XML is nonsense. You cannot chain request processors from one to another, because they were not design that way. I agree which process method do you call? Let's take a back step, then. What is a composable request processor? What is the thing that you are trying to build? MasterRequestProcessor master = new MasterRequestProcessor(); master.add( TilesRequestProcessor ); master.add( FoobarRquestProcessor ); Is this it? Another question what is it that the different request processors are override or overloading? For the Tiles controller it is the init(), doForward(), processForwardConfig(), internalModuleRelativeForward(), internalModuleRelativeInclude() ? For Expresso controller we override init(), processPreprocesss(), createAction() There is a no common method here in these two controllers. We cannot isolate a method that would make up a composable request processor. -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Forcing or replacing a request processor version 1.1 beta3 -
David Graham wrote: If not synchronizing is the only reason for freezing the config, then we may want to reconsider that decision. Is there really a noticable performance improvement by not synchronizing? It makes sense that the config objects are frozen because then they reflect exactly what's in the config file. OTOH, it may be useful to dynamically change the config. Maybe a configuration setting to not freeze the config objects? Dave If your change needs to be reflected in the underlying FooConfig objects and collections, you're going to have a problem -- after the freeze() method is called, any call to a property setter on these things will throw IllegalStateException. The reason for this is so that Struts can access the HashMaps used for internal storage without needing to synchronize, since it knows that the undelrying map cannot be changed by another thread. Craig I do not want to change the configuration for all time. I alway want to suggest at initialisation that object class B should be used instead A and do that programmatically. -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Forcing or replacing a request processor version 1.1 beta3
Hi I am looking at the Struts source code. I want to find out the ActionServlet that is responsible for loading and setting the RequestProcessor. I see a ControllerConfig in the utility with the default org.apache.struts.action.RequestProcessor. Is there a way of overriding this hard setting programmatical? I want to create an ActionServlet subclass that will default to a CustomRequestProcessor without having to set it in XML config. Also in the `ActionServlet.initModuleConfig' which I think is responsible for initialisation all the module configuration from the XML I was thinking I could do something like this: // Parse the configuration for this module ModuleConfig config = null; InputStream input = null; String mapping = null; try { //@todo FIXME replace with a FactoryMethod ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory(); config = factoryObject.createModuleConfig(prefix); ControllerConfig cc = moduleConfig.getControllerConfig(); if ( cc.getProcessorClass().equals( org.apache.struts.action.RequestProcessor ) ) cc.setProcessorClass(com.xenonsoft.fire.MyCustomProcessor); Is this a good idea? Tia -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Forcing or replacing a request processor version 1.1 beta3
David Graham wrote: Why you don't want to set the RequestProcessor in the struts-config.xml file? David Because I want to distribute Expresso Framework with the custom request processor as standard. Does that answer the question? Of course XML config works. From: Peter A. Pilgrim [EMAIL PROTECTED] Reply-To: Struts Developers List [EMAIL PROTECTED] To: Struts Dev [EMAIL PROTECTED] Subject: Forcing or replacing a request processor version 1.1 beta3 Date: Wed, 12 Feb 2003 00:02:59 + Hi I am looking at the Struts source code. I want to find out the ActionServlet that is responsible for loading and setting the RequestProcessor. I see a ControllerConfig in the utility with the default org.apache.struts.action.RequestProcessor. Is there a way of overriding this hard setting programmatical? I want to create an ActionServlet subclass that will default to a CustomRequestProcessor without having to set it in XML config. Also in the `ActionServlet.initModuleConfig' which I think is responsible for initialisation all the module configuration from the XML I was thinking I could do something like this: // Parse the configuration for this module ModuleConfig config = null; InputStream input = null; String mapping = null; try { //@todo FIXME replace with a FactoryMethod ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory(); config = factoryObject.createModuleConfig(prefix); ControllerConfig cc = moduleConfig.getControllerConfig(); if ( cc.getProcessorClass().equals( org.apache.struts.action.RequestProcessor ) ) cc.setProcessorClass(com.xenonsoft.fire.MyCustomProcessor); Is this a good idea? Tia -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] _ The new MSN 8: advanced junk mail protection and 2 months FREE* http://join.msn.com/?page=features/junkmail - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Forcing or replacing a request processor version 1.1 beta3
David Graham wrote: After a quick glance at the code, I think your solution will work because it looks like TilesPlugin does the same thing. David Ah ha! I will have to look at TilesPlugin as well to see why it is doing the same thing? From: Peter A. Pilgrim [EMAIL PROTECTED] Reply-To: Struts Developers List [EMAIL PROTECTED] To: Struts Developers List [EMAIL PROTECTED] Subject: Re: Forcing or replacing a request processor version 1.1 beta3 Date: Wed, 12 Feb 2003 00:52:51 + David Graham wrote: Why you don't want to set the RequestProcessor in the struts-config.xml file? David Because I want to distribute Expresso Framework with the custom request processor as standard. Does that answer the question? Of course XML config works. From: Peter A. Pilgrim [EMAIL PROTECTED] Reply-To: Struts Developers List [EMAIL PROTECTED] To: Struts Dev [EMAIL PROTECTED] Subject: Forcing or replacing a request processor version 1.1 beta3 Date: Wed, 12 Feb 2003 00:02:59 + Hi I am looking at the Struts source code. I want to find out the ActionServlet that is responsible for loading and setting the RequestProcessor. I see a ControllerConfig in the utility with the default org.apache.struts.action.RequestProcessor. Is there a way of overriding this hard setting programmatical? I want to create an ActionServlet subclass that will default to a CustomRequestProcessor without having to set it in XML config. Also in the `ActionServlet.initModuleConfig' which I think is responsible for initialisation all the module configuration from the XML I was thinking I could do something like this: // Parse the configuration for this module ModuleConfig config = null; InputStream input = null; String mapping = null; try { //@todo FIXME replace with a FactoryMethod ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory(); config = factoryObject.createModuleConfig(prefix); ControllerConfig cc = moduleConfig.getControllerConfig(); if ( cc.getProcessorClass().equals( org.apache.struts.action.RequestProcessor ) ) cc.setProcessorClass(com.xenonsoft.fire.MyCustomProcessor); Is this a good idea? Tia -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] _ The new MSN 8: advanced junk mail protection and 2 months FREE* http://join.msn.com/?page=features/junkmail - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] _ Add photos to your e-mail with MSN 8. Get 2 months FREE*. http://join.msn.com/?page=features/featuredemail - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Peter Pilgrim __ _ _ _ / //__ // ___// ___/ + Serverside Java / /___/ // /__ / /__ + Struts / // ___// ___// ___/ + Expresso Committer __/ // /__ / /__ / /__ + Independent Contractor /___/////// + Intrinsic Motivation On Line Resume || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [VOTE] Struts 1.1 Beta 3 Release Plan (revised)
James Mitchell wrote: Vote: Struts 1.1b3 Release Plan [X] +1 I am in favor of the release, and HAVE HELPED support it [ ] +0 I am in favor of the release, but am unable tohelp support it [ ] -0 I am not in favor of the release [ ] -1 I am against this proposal (must include a reason). -- Peter Pilgrim ServerSide Java Specialist My on-line resume and for interview videos about myself, J2EE Open Source, Struts and Expresso. || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: [PROPOSED] html:link should have an action= option
James Turner wrote: I find I write a lot of code that uses an intermediate action to link between two web pages (this is good Struts policy in general) However, since the html:link tag has a forward= but no action=, I have to use page= and supply a URI with the .do extension at the end, rather than being about to use action= as I would with an html:form. What do folks think about adding action= to html:link? I dont think this a problem. Normally you want to provide servlet request parameters such also. -- Peter Pilgrim ServerSide Java Specialist My on-line resume and for interview videos about myself, J2EE Open Source, Struts and Expresso. || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
[OT] Merry Xmas. Kwanza, Navidad, Weihnacht
This is Peter Pilgrim, live en la casa en London Merry Christmas, Happy Kwanza, Happy Holidays, or Winter Festival, Schoene Weihnachten, Buena Navidad and Bottom Solstice Interlude to everybody. Keep on moving -- Peter Pilgrim ServerSide Java Specialist My on-line resume and for interview videos about myself, J2EE Open Source, Struts and Expresso. || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Tying Up Loose Ends
Craig R. McClanahan wrote: Given a little time to work on Struts (finally), I'd like to tackle the top two bugs (based on severity) in our remaining list: * 14669 -- reset() in DynaActionForm acts the same as in ActionForm * 14800 -- Fix initialization bug and size parameter to form-property What I propose to do for 14669 is based on the patch proposed by Peter Pilgrim, but with the loaded property renamed to cleared -- for consistency with the method name clear() -- and the cleared property stuff being protected instead of public. For general users of action forms, I don't see why the cleared state would be relevant, although it might to advanced DynaActionForm subclasses. The clear() methods will, as proposed, be public so that application logic can call them as needed. Well, Craig, I made it public because may be you want to clear the attributes back to the default initial values in a action controller. I think I am repeated what you just wrote. When I added the loaded / cleared attribute I was not sure whether to make it `public' or `protected'. I called the attributed loaded because the DynaActionForm loads the states XML config files. I almost called it configured. Also I assume logically and semantically that ` DAF.isLoaded() != DAF.isCleared() ' ---- How many bugs are out standing now? -- Peter Pilgrim ServerSide Java Specialist My on-line resume and for interview videos about myself, J2EE Open Source, Struts and Expresso. || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
What is XSLProcessor from com/kvisco/xsl
I just did an ANT build of Struts from CVS and got the following error prepare.library: compile.library: Compiling 271 source files to /new/peterp/jakarta-struts/target/library/classes Note: Some input files use or override a deprecated API. Note: Recompile with -deprecation for details. Copying 7 files to /new/peterp/jakarta-struts/target/library/classes Copying 9 files to /new/peterp/jakarta-struts/target/library DEPRECATED - xslp processor is deprecated. Use trax or xalan instead. java.lang.NoClassDefFoundError: com/kvisco/xsl/XSLProcessor at org.apache.tools.ant.taskdefs.optional.XslpLiaison.init(XslpLiaison.java:80) at java.lang.Class.newInstance0(Native Method) at java.lang.Class.newInstance(Class.java:237) at org.apache.tools.ant.taskdefs.XSLTProcess.resolveProcessor(XSLTProcess.java:376) at org.apache.tools.ant.taskdefs.XSLTProcess.getLiaison(XSLTProcess.java:557) at org.apache.tools.ant.taskdefs.XSLTProcess.execute(XSLTProcess.java:195) at org.apache.tools.ant.Task.perform(Task.java:317) at org.apache.tools.ant.Target.execute(Target.java:309) at org.apache.tools.ant.Target.performTasks(Target.java:334) at org.apache.tools.ant.Project.executeTarget(Project.java:1306) at org.apache.tools.ant.Project.executeTargets(Project.java:1250) at org.apache.tools.ant.Main.runBuild(Main.java:610) at org.apache.tools.ant.Main.start(Main.java:196) at org.apache.tools.ant.Main.main(Main.java:235) java.lang.NoClassDefFoundError: org/apache/xalan/xslt/XSLTProcessorFactory at org.apache.tools.ant.taskdefs.optional.XalanLiaison.init(XalanLiaison.java:84) at java.lang.Class.newInstance0(Native Method) at java.lang.Class.newInstance(Class.java:237) at org.apache.tools.ant.taskdefs.XSLTProcess.resolveProcessor(XSLTProcess.java:379) at org.apache.tools.ant.taskdefs.XSLTProcess.getLiaison(XSLTProcess.java:554) at org.apache.tools.ant.taskdefs.XSLTProcess.execute(XSLTProcess.java:195) at org.apache.tools.ant.Task.perform(Task.java:317) at org.apache.tools.ant.Target.execute(Target.java:309) at org.apache.tools.ant.Target.performTasks(Target.java:334) at org.apache.tools.ant.Project.executeTarget(Project.java:1306) at org.apache.tools.ant.Project.executeTargets(Project.java:1250) at org.apache.tools.ant.Main.runBuild(Main.java:610) at org.apache.tools.ant.Main.start(Main.java:196) at org.apache.tools.ant.Main.main(Main.java:235) BUILD FAILED Any help appreciated? TIA -- Peter Pilgrim ServerSide Java Specialist My on-line resume and for interview videos about myself, J2EE Open Source, Struts and Expresso. || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Where are the Tag Library Descriptors?
Hi Where are the TLD for Struts CVS? peterp@goldfish [126] find . -name *tld* ./contrib/validator/web/example/WEB-INF/tlds ./contrib/validator/web/jdbc-example/WEB-INF/tlds ./contrib/struts-el/doc/stylesheets/tld.xsl ./doc/stylesheets/tld.xsl ./web/example/WEB-INF/app.tld ./web/template-example/WEB-INF/tlds ./target/library/classes/META-INF/tlds -- Peter Pilgrim ServerSide Java Specialist My on-line resume and for interview videos about myself, J2EE Open Source, Struts and Expresso. || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: What is XSLProcessor from com/kvisco/xsl [SOLVED]
Peter A. Pilgrim wrote: I just did an ANT build of Struts from CVS and got the following error prepare.library: compile.library: Compiling 271 source files to /new/peterp/jakarta-struts/target/library/classes Note: Some input files use or override a deprecated API. Note: Recompile with -deprecation for details. Copying 7 files to /new/peterp/jakarta-struts/target/library/classes Copying 9 files to /new/peterp/jakarta-struts/target/library DEPRECATED - xslp processor is deprecated. Use trax or xalan instead. java.lang.NoClassDefFoundError: com/kvisco/xsl/XSLProcessor at org.apache.tools.ant.taskdefs.optional.XslpLiaison.init(XslpLiaison.java:80) DONT BOTHER! The Answer is in the `README' file I copied `xalan.jar' to ${ANT_HOME}/lib and the world is right again. -- Peter Pilgrim ServerSide Java Specialist My on-line resume and for interview videos about myself, J2EE Open Source, Struts and Expresso. || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Where do you submit patches?
Where do you submit patches for Strus-Dev? Which web page? Also is the `Bugzilla New Account' working? I tried creating myself a new account with my email address an hour ago but I still haven't receive any email from server http://issues.apache.org/bugzilla/query.cgi?GoAheadAndLogIn=1 -- Peter Pilgrim ServerSide Java Specialist My on-line resume and for interview videos about myself, J2EE Open Source, Struts and Expresso. || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Where do you submit patches?
Martin Cooper wrote: On Mon, 16 Dec 2002, Peter A. Pilgrim wrote: Where do you submit patches for Strus-Dev? Which web page? Click Enter a new bug report on this page: http://issues.apache.org/bugzilla/ I tried I got to the First, you must pick a product on which to enter a bug `http://issues.apache.org/bugzilla/enter_bug.cgi' page so scrolled down and hit the Struts link and then I am challenged by a password login. Stuck! Then enter your bug report, and add the patch as an attachment. More information on submitting patches is available here: http://jakarta.apache.org/site/source.html Been there, done that Also is the `Bugzilla New Account' working? I tried creating myself a new account with my email address an hour ago but I still haven't receive any email from server The machine that processed Apache mail seems to be a bit slow right now, so it may just be that. Ok -- Peter Pilgrim ServerSide Java Specialist My on-line resume and for interview videos about myself, J2EE Open Source, Struts and Expresso. || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Bugzilla SysAdmin? [was RE: Where Do You Submit Patches?]
Hal Deadman wrote: You need to create an account on bugzilla. http://issues.apache.org/bugzilla/createaccount.cgi. Just enter your name and email. It will mail you a password. Already did that ---- Also is the `Bugzilla New Account' working? I tried creating myself a new account with my email address an hour ago but I still haven't receive any email from server The machine that processed Apache mail seems to be a bit slow right now, so it may just be that. Is there a wizard behind the machine bugzilla at Apache.org? Someone who could check the bugzilla is working? -- Peter Pilgrim ServerSide Java Specialist My on-line resume and for interview videos about myself, J2EE Open Source, Struts and Expresso. || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Commons Resources and Commons Validator
Hi I look in the build.xml and found a lot of (required) jars. I have some but do not have all the jars. Where can i find Commons Resources and Commons Validator? I tried to find the download page on commons home. I see `validator-1.0.tar.gz' but where is the resources-1.0.tar.gz. I also looked on GUMP, but no luck. -- Peter Pilgrim ServerSide Java Specialist My on-line resume and for interview videos about myself, J2EE Open Source, Struts and Expresso. || \\=== `` http://www.xenonsoft.demon.co.uk/no-it-striker.html '' -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]