Tools

The toolset I use for Scope development under WindowsXP is listed below. All these tools are free to use except for Visual Slickedit.

Directory structure

Under the top level project directory called "scope" (in "D:\usr\" in my case) lie the following directories:

ant (in SourceForge CVS)
ant libs and build batch files for Windows.
build
target for build.
dist
build final distributions in here.
doc
documentation source directory -- the project web site.
doc/api
build javadoc documentation in here.
etc (in SourceForge CVS)
other resources used by the build process.
lib (in SourceForge CVS)
third party libraries to link and run against.
src (in SourceForge CVS)
java sources, and javadoc global and package-level HTML files.
xdocs (in SourceForge CVS)
Site documentation in XML format to be processed by Anakia / Maven.

This structure is assumed by the build.xml file that Ant uses to build the project.

There is also an ant property "deploy.dir" that specifies the directory a .war should be dropped into to deploy web applications with the "deploy" target. This may need to be changed to point to your servlet container.

Build

Scope is built using Ant invoked using the Windows build.bat file that lives in the scope/ant directory:

This .bat file expects the build target name as its only argument. The following targets are defined in build.xml (checked into CVS):

compile
Builds classes from java sources into bin/classes. Does not copy libraries.
unittest
Runs the JUnit test suite in com.smeyfroi.scope.test.SuiteScope which collects together all other unit tests in a single suite.
javadoc
Cleans existing javadocs in doc/api, then runs javadoc over all sources, building into doc/api.
src_dist
Packages the src directory for distribution as a tar.gz archive.
doc_dist
Packages the doc directory for distribution as a tar.gz archive.
swingsample_dist
Creates the Swing samples distribution.
servletsample_dist
Creates the servlet samples distribution.
runtime_dist
Creates the non-debug, optimized runtime distribution.
dist
Runs unittest, src_dist, doc_dist, swingsample_dist, servletsample_dist, and runtime_dist.
deploy
Builds a war then copies it into the "deploy.dir".

Source code format

A standard header must be included in all Java sources as follows:

/*
 * Scope: a generic MVC framework.
 * Copyright (c) 2000-2002, The Scope development team
 * All rights reserved.
 * 
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 
 * Redistributions of source code must retain the above copyright
 * notice, this list of conditions and the following disclaimer.
 * 
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * 
 * Neither the name "Scope" nor the names of its contributors
 * may be used to endorse or promote products derived from this software
 * without specific prior written permission.
 * 
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 *
 * $Id: $
 */
The following lines must also appear at the end of the class javadoc comments (with appropriate author information):
/**
 *
 * @author <A HREF="mailto:smeyfroi@users.sourceforge.net">Steve Meyfroidt</A>
 * @version $Revision: $ $Date: $
 */