the PreProPer code

The file preproper.zip contains the initial code for the software. It is a recursive zip of the directory preproper, and if you unzip it, cd into that directory, and run ant you will have a running copy of a system that contains 55 source files compiled into classes, 20 sources files compiled into test-classes, along with related materials including a number of JUnit tests of the system.

The ant build package, that ends up producing a war file preproper.war which is a standard web application that provides the two passages PrePro and ProPer, along with the utilities they need.

Just download the whole thing into some directory, give the "ant" command, and it will produce a build.

Example 1. Build of PreProPer


Inside /user/doug/web/softwarekeptsimple/preproper 
on Fri Aug 22 16:44:57 CDT 2008

$ant 

# creates the whole preproper thing 
# with the following stdout
===========================
Buildfile: build.xml

clean:

compile-java:
    [mkdir] Created dir: /user/doug/web/softwarekeptsimple/preproper/classes
    [javac] Compiling 55 source files to /user/doug/web/softwarekeptsimple/preproper/classes
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.

dist:
    [mkdir] Created dir: /user/doug/web/softwarekeptsimple/preproper/dist
      [jar] Building jar: /user/doug/web/softwarekeptsimple/preproper/dist/preproper.jar
   [delete] Deleting directory /user/doug/web/softwarekeptsimple/preproper/classes

compile-test:
    [mkdir] Created dir: /user/doug/web/softwarekeptsimple/preproper/test-classes
    [javac] Compiling 20 source files to /user/doug/web/softwarekeptsimple/preproper/test-classes

copy-cfg:
     [copy] Copying 3 files to /user/doug/web/softwarekeptsimple/preproper/test-classes

junit:
    [mkdir] Created dir: /user/doug/web/softwarekeptsimple/preproper/test-results
    [junit] Running net.sks.preproper.prepro.TestAttributesHTMLMapper
    [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.012 sec
    [junit] Running net.sks.preproper.prepro.TestHTMLStreamTemplate
    [junit] Tests run: 8, Failures: 0, Errors: 0, Time elapsed: 0.373 sec
    [junit] Running net.sks.preproper.prepro.TestHTMLTag
    [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.025 sec
    [junit] Running net.sks.preproper.prepro.TestServletProcessor
    [junit] <html>
    [junit] <head>
    [junit] <title>
    [junit] Test Title
    [junit] </title>
    [junit] </head>
    [junit] <body>
    [junit] <span id="id1">
    [junit] updated text value</span>
    [junit] </body>
    [junit] </html>
    [junit] 
    [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.265 sec
    [junit] Running net.sks.preproper.prepro.TestTypesHTMLMapper
    [junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0.034 sec

all:

BUILD SUCCESSFUL
Total time: 6 seconds