I'm +1 on the idea of reusing the directory name "test" for the unit test
suite, and moving the current "test" stuff to some other directory like
"exercise", since that is what they really do. Ultimately, a full fledged unit
test suite will be a superset of the current tags anyway.
In terms of mechanics, I'm going to be out of town Tuesday through Friday this
week (speaking at the International Conference on Java Development in NYC), so
I will have only intermittent contact. Vincent and Rob, you should have both
received your logins by now (or will shortly), so you're welcome to start
moving stuff around per this agreement.
I'd like to do this fairly soon (i.e. before 1.0-beta-2) so that we can get the
basic organization structure set correctly. Then, with 1.0-beta-2 we can
branch the CVS repository and start to work on the 1.1 stuff (there is a lot of
people waiting in the wings to start contributing here) while the remaining
cleanup on 1.0 happens undisturbed.
A few further comments below.
Vincent Massol wrote:
> ----- Original Message -----
> From: "Craig R. McClanahan" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Monday, February 26, 2001 1:10 AM
> Subject: [PROPOSAL] Struts Source Directory Structure
>
> > Based on the proposal to include unit tests in Struts, there is a desire
> > to revise the organization of the source repository. Here is a summary
> > of my understanding of the most recent proposal, plus some enhancements
> > to be complete, with annotations on the contents of each directory.
> >
> > jakarta-struts/
> >
> > build/ Build scripts and batch files
>
> +1
>
> >
> > conf/ Config files for components
> > share/ Config files for struts.jar
> > unit/ Config files for unit tests
> >
>
> +1
>
> > doc/ Source documentation files
> > xdocs/ XML input docs and stylesheets
>
> +1
>
> >
> > lib/ JAR files of dependent packages
> > (if we agree to include any)
> >
>
> -1 You have all convinced me that we should leave these outside struts and
> have environment variables to point at them. However, they will be part of
> the SDK or nightly build (or both). So, no lib/ directory. The list of
> external dependencies are (to my knowledge) :
>
So maybe I'm not as much a "Lone Ranger" on this as I thought :-) I'm fine
with not including a "lib" directory in CVS, although we should include one for
the "Struts Development Kit".
>
> - Ant (build process)
> - Stylebook (for generating the documentation/web site)
It is actually not using Stylebook. The dependency is on Ant's <style> tag,
which in turn creates the dependency on an XSL parser described in the next
item. It is really messy to get the right combination of stuff for this to
work, but I've found that having the JAXP-1.1 JAR files (jaxp.jar, crimson.jar,
xalan.jar), plus the xerces.jar from Xerces 1.2, on my classpath -- in that
order -- seems to work.
Longer term, I'm hoping some really good solution for XML based documentation
that can render HTML or PDF output with all of the internal hyperlinks
maintained automatically will come along. Cocoon2 has some promise for this --
in the mean time I suggest we tough it out.
>
> - An XSL processor compatible with Stylebook (Xalan)
> - An XML parser compatible with Ant + Stylebook (Xerces, ...)
> - Servletapi (or any Servlet engine servlet API jar)
> - JUnit (unit tests)
> - J2EEUnit (unit tests)
> - As many servlet engine home directories as possible (ex: TOMCAT_HOME_31,
> TOMCAT_HOME_40, RESIN_HOME_12, ...). These will be used to exercise the
> J2EEUnit tests for Struts. There will be an automated build-test-all script
> to start the tests on each of the servlet engines for whose an environment
> variable is defined. If it is not defined then the tests will be skipped.
> These variables can also be used to automatically deploy the generated
> struts webapps to the servlet engine.
>
Agreed on all of the above.
>
> Am I missing something ?
>
>From the installation.xml document:
* JDK (with JAVA_HOME set)
* JDBC 2.0 Optional Package classes (javax.sql.*)
>
> > src/ Java sources for components
> > example/ Sources for example webapp
> > share/ Sources for struts.jar
> > test/ Sources for test webapp
> > unit/ Sources for unit tests
"test" --> "exercise" so test can be reused
"unit" --> "test" per renaming agreement
>
> > upload/ Sources for upload webapp
>
> +1
>
> >
> > target/ Output of "build" processes
> > -- no files in CVS repository
> > dist/ "build dist" output (i.e. the
> > current nightly distribution)
> > sdk/ "build sdk" output (i.e. the
> > proposed Struts Dev. Kit)
> > unit/ Output of unit test runs
> >
>
> +1
"unit" --> "test" per renaming agreement
>
>
> > web/ Webapp sources for components
> > blank/ Web files for blank webapp
> > example/ Web files for example webapp
> > template/ Web files for template webapp
> > test/ Web files for test webapp
"test" --> "exercise" so test can be reused
>
> > upload/ Web files for upload webapp
> >
>
> +1
>
> >
> > Comments?
> >
> > Craig
> >
>
> Vincent
Craig