Copying the CLI2 site.xml over, to then be tightened up to be a CLI1 website

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/cli/branches/cli-1.x@756333 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/site/resources/images/1x1.gif b/src/site/resources/images/1x1.gif
new file mode 100755
index 0000000..35d42e8
--- /dev/null
+++ b/src/site/resources/images/1x1.gif
Binary files differ
diff --git a/src/site/resources/images/logo.jpg b/src/site/resources/images/logo.jpg
new file mode 100644
index 0000000..bcb7422
--- /dev/null
+++ b/src/site/resources/images/logo.jpg
Binary files differ
diff --git a/src/site/resources/images/logo.png b/src/site/resources/images/logo.png
new file mode 100644
index 0000000..7c68933
--- /dev/null
+++ b/src/site/resources/images/logo.png
Binary files differ
diff --git a/src/site/resources/images/options.png b/src/site/resources/images/options.png
new file mode 100644
index 0000000..b0f9d8f
--- /dev/null
+++ b/src/site/resources/images/options.png
Binary files differ
diff --git a/src/site/resources/images/svg/commandlines.svg b/src/site/resources/images/svg/commandlines.svg
new file mode 100644
index 0000000..3ab520c
--- /dev/null
+++ b/src/site/resources/images/svg/commandlines.svg
@@ -0,0 +1,57 @@
+<?xml version="1.0" standalone="no"?>
+<?xml-stylesheet type="text/css" href="diagrams.css" ?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+
+<svg id="root" width="420" height="360" x="0" y="0">
+
+<script type="text/ecmascript" xlink:href="diagrams.js"/>
+<script type="text/ecmascript" xlink:href="diagrams-cli2.js"/>
+<script type="text/ecmascript">
+
+displayAttributes = false;
+displayMethods = false;
+
+</script>
+
+<g 
+	onload="new PackageSymbol('org.apache.commons.cli2',400,340).insert(evt)" 
+	transform="translate(10,10)"><g transform="translate(10,30)">
+	
+	<g transform="translate(  0, 30)" class="option"   onload="CommandLine.insert(evt);" />
+	<g transform="translate(  0,130)" class="group"    onload="WriteableCommandLine.insert(evt);"/>
+	
+	<g 
+		onload="new PackageSymbol('commandline',180,300).insert(evt)" 
+		transform="translate(200,0)"><g transform="translate(10,30)">
+		
+		<g transform="translate(0,  0)" class="option"   onload="Parser.insert(evt);" />
+		<g transform="translate(0, 50)" class="parent"   onload="DefaultingCommandLine.insert(evt);" />
+		<g transform="translate(0,100)" class="parent"   onload="PropertiesCommandLine.insert(evt);" />
+		<g transform="translate(0,190)" class="parent"   onload="PreferencesCommandLine.insert(evt);" />
+	</g></g>
+<!--	
+-->
+
+<polyline class="extends"    points="80,130 80,70"/>
+<polyline class="implements" points="210, 95 180, 95 180,45 170,45"/>
+<polyline class="implements" points="210,145 180,145 180,45 170,45"/>
+<polyline class="implements" points="210,235 180,235 180,45 170,45"/>
+
+</g></g>
+</svg>
\ No newline at end of file
diff --git a/src/site/resources/images/svg/diagrams-cli2.js b/src/site/resources/images/svg/diagrams-cli2.js
new file mode 100644
index 0000000..9f1a9a2
--- /dev/null
+++ b/src/site/resources/images/svg/diagrams-cli2.js
@@ -0,0 +1,291 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+var Option = new Interface("Option");
+Option.addMethod("process(...)");
+Option.addMethod("canProcess(...)");
+Option.addMethod("getTriggers()");
+Option.addMethod("getPrefixes()");
+Option.addMethod("validate(...)");
+Option.addMethod("helpLines(...)");
+Option.addMethod("appendUsage(...)");
+Option.addMethod("getPreferredName()");
+Option.addMethod("getDescription()");
+Option.addMethod("getId()");
+Option.addMethod("findOption(...)");
+
+var Group = new Interface("Group");
+Group.addMethod("appendUsage(...)");
+Group.addNote("-a | -b | -c | -d | -e");
+
+var Parent = new Interface("Parent");
+Parent.addMethod("processParent(...)");
+Parent.addNote("-f <arg1>");
+
+var Argument = new Interface("Argument");
+Argument.addMethod("getInitialSeparator()");
+Argument.addMethod("processValues(...)");
+Argument.addMethod("validate(...)");
+Argument.addNote("<arg1> [<arg2> ...]");
+
+var CommandLine = new Interface("CommandLine");
+CommandLine.addMethod("hasOption(...)");
+CommandLine.addMethod("getOption(...)");
+CommandLine.addMethod("getValue(...)");
+CommandLine.addMethod("getValues(...)");
+CommandLine.addMethod("getSwitch(...)");
+CommandLine.addMethod("getProperty(...)");
+CommandLine.addMethod("getProperties()");
+CommandLine.addMethod("getOptionCount(...)");
+CommandLine.addMethod("getOptions()");
+CommandLine.addMethod("getOptionTriggers()");
+
+var WriteableCommandLine = new Interface("WriteableCommandLine");
+WriteableCommandLine.addMethod("addOption(...)");
+WriteableCommandLine.addMethod("addValue(...)");
+WriteableCommandLine.addMethod("addSwitch(...)");
+WriteableCommandLine.addMethod("addProperty(...)");
+WriteableCommandLine.addMethod("looksLikeOption(...)");
+
+
+
+
+
+var PropertyOption = new Class("PropertyOption");
+PropertyOption.addAttribute("optionString");
+PropertyOption.addAttribute("description");
+PropertyOption.addAttribute("prefixes");
+PropertyOption.addNote("-Dproperty=value");
+
+var DefaultOption = new Class("DefaultOption");
+DefaultOption.addAttribute("optionString");
+DefaultOption.addAttribute("description");
+DefaultOption.addAttribute("prefixes");
+DefaultOption.addNote("-f (--file, --filelist)");
+
+var Command = new Class("Command");
+Command.addAttribute("preferredName");
+Command.addAttribute("aliases");
+Command.addAttribute("required");
+Command.addAttribute("triggers");
+Command.addNote("update (up, upd)");
+
+var Switch = new Class("Switch");
+Switch.addAttribute("enabledPrefix");
+Switch.addAttribute("disabledPrefix");
+Switch.addAttribute("preferredName");
+Switch.addAttribute("aliases");
+Switch.addAttribute("required");
+Switch.addAttribute("triggers");
+Switch.addAttribute("prefixes");
+Switch.addNote("+d|-d (+display|-display)");
+
+var SourceDestArgument = new Class("SourceDestArgument");
+SourceDestArgument.addAttribute("preferredName");
+SourceDestArgument.addAttribute("aliases");
+SourceDestArgument.addAttribute("required");
+SourceDestArgument.addAttribute("triggers");
+SourceDestArgument.addNote("<src1> <src2> ... <dst>");
+
+
+
+
+var Parser = new Class("Parser");
+Parser.addMethod("parse(...)");
+Parser.addMethod("parseAndHelp(...)");
+Parser.addMethod("setGroup(...)");
+Parser.addMethod("setHelpFormatter(...)");
+Parser.addMethod("setHelpOption(...)");
+Parser.addMethod("setHelpTrigger(...)");
+
+var DefaultingCommandLine = new Class("DefaultingCommandLine");
+DefaultingCommandLine.addMethod("appendCommandLine(...)");
+DefaultingCommandLine.addMethod("insertCommandLine(...)");
+DefaultingCommandLine.addMethod("commandLines()");
+
+var PropertiesCommandLine = new Class("PropertiesCommandLine");
+PropertiesCommandLine.addAttribute("properties");
+PropertiesCommandLine.addNote("java.util.Properties");
+
+var PreferencesCommandLine = new Class("PreferencesCommandLine");
+PreferencesCommandLine.addAttribute("preferences");
+PreferencesCommandLine.addNote("java.util.prefs.Preferences");
+
+
+
+
+
+var ArgumentBuilder = new Class("ArgumentBuilder");
+ArgumentBuilder.addMethod("withId(...)");
+ArgumentBuilder.addMethod("withName(...)");
+ArgumentBuilder.addMethod("withDescription(...)");
+ArgumentBuilder.addMethod("withConsumeRemaining(...)");
+ArgumentBuilder.addMethod("withValidator(...)");
+ArgumentBuilder.addMethod("withMinimum(...)");
+ArgumentBuilder.addMethod("withMaximum(...)");
+ArgumentBuilder.addMethod("withDefault(...)");
+ArgumentBuilder.addMethod("withDefaults(...)");
+ArgumentBuilder.addMethod("withInitialSeparator(...)");
+ArgumentBuilder.addMethod("withSubsequentSeparator(...)");
+ArgumentBuilder.addMethod("create()");
+ArgumentBuilder.addMethod("reset()");
+
+var CommandBuilder = new Class("CommandBuilder");
+CommandBuilder.addMethod("withId(...)");
+CommandBuilder.addMethod("withName(...)");
+CommandBuilder.addMethod("withDescription(...)");
+CommandBuilder.addMethod("withArgument(...)");
+CommandBuilder.addMethod("withChildren(...)");
+CommandBuilder.addMethod("withRequired(...)");
+CommandBuilder.addMethod("create()");
+CommandBuilder.addMethod("reset()");
+
+var DefaultOptionBuilder = new Class("DefaultOptionBuilder");
+DefaultOptionBuilder.addMethod("withId(...)");
+DefaultOptionBuilder.addMethod("withShortName(...)");
+DefaultOptionBuilder.addMethod("withLongName(...)");
+DefaultOptionBuilder.addMethod("withDescription(...)");
+DefaultOptionBuilder.addMethod("withArgument(...)");
+DefaultOptionBuilder.addMethod("withChildren(...)");
+DefaultOptionBuilder.addMethod("withRequired(...)");
+DefaultOptionBuilder.addMethod("create()");
+DefaultOptionBuilder.addMethod("reset()");
+DefaultOptionBuilder.addAttribute("shortPrefix");
+DefaultOptionBuilder.addAttribute("longPrefix");
+DefaultOptionBuilder.addAttribute("burstEnabled");
+
+var DefaultOptionBuilder = new Class("DefaultOptionBuilder");
+DefaultOptionBuilder.addMethod("withId(...)");
+DefaultOptionBuilder.addMethod("withShortName(...)");
+DefaultOptionBuilder.addMethod("withLongName(...)");
+DefaultOptionBuilder.addMethod("withDescription(...)");
+DefaultOptionBuilder.addMethod("withArgument(...)");
+DefaultOptionBuilder.addMethod("withChildren(...)");
+DefaultOptionBuilder.addMethod("withRequired(...)");
+DefaultOptionBuilder.addMethod("create()");
+DefaultOptionBuilder.addMethod("reset()");
+
+var GroupBuilder = new Class("GroupBuilder");
+GroupBuilder.addMethod("withName(...)");
+GroupBuilder.addMethod("withDescription(...)");
+GroupBuilder.addMethod("withOption(...)");
+GroupBuilder.addMethod("withMinimum(...)");
+GroupBuilder.addMethod("withMaximum(...)");
+GroupBuilder.addMethod("create()");
+GroupBuilder.addMethod("reset()");
+
+var PatternBuilder = new Class("PatternBuilder");
+PatternBuilder.addMethod("withPattern(...)");
+PatternBuilder.addMethod("create()");
+PatternBuilder.addMethod("reset()");
+PatternBuilder.addAttribute("groupBuilder");
+PatternBuilder.addAttribute("optionBuilder");
+PatternBuilder.addAttribute("argumentBuilder");
+
+var SwitchBuilder = new Class("SwitchBuilder");
+SwitchBuilder.addMethod("withId(...)");
+SwitchBuilder.addMethod("withName(...)");
+SwitchBuilder.addMethod("withDescription(...)");
+SwitchBuilder.addMethod("withArgument(...)");
+SwitchBuilder.addMethod("withChildren(...)");
+SwitchBuilder.addMethod("withRequired(...)");
+SwitchBuilder.addMethod("create()");
+SwitchBuilder.addMethod("reset()");
+SwitchBuilder.addAttribute("enabledPrefix");
+SwitchBuilder.addAttribute("disabledPrefix");
+
+
+
+var Validator = new Class("Validator");
+Validator.addMethod("validate(...)");
+
+var ClassValidator = new Class("ClassValidator");
+ClassValidator.addAttribute("classLoader");
+ClassValidator.addAttribute("instance");
+ClassValidator.addAttribute("loadable");
+
+var DateValidator = new Class("DateValidator");
+DateValidator.addAttribute("formats");
+DateValidator.addAttribute("minimum");
+DateValidator.addAttribute("maximum");
+
+var EnumValidator = new Class("EnumValidator");
+EnumValidator.addAttribute("validValues");
+
+var FileValidator = new Class("FileValidator");
+FileValidator.addAttribute("directory");
+FileValidator.addAttribute("existing");
+FileValidator.addAttribute("file");
+FileValidator.addAttribute("hidden");
+FileValidator.addAttribute("readable");
+FileValidator.addAttribute("writable");
+
+var FileValidator = new Class("FileValidator");
+FileValidator.addAttribute("format");
+FileValidator.addAttribute("minimum");
+FileValidator.addAttribute("maximum");
+
+var UrlValidator = new Class("UrlValidator");
+UrlValidator.addAttribute("format");
+UrlValidator.addAttribute("minimum");
+UrlValidator.addAttribute("maximum");
+
+
+
+
+var Comparators = new Class("Comparators");
+Comparators.addMethod("chain(...)");
+Comparators.addMethod("commandFirst(...)");
+Comparators.addMethod("commandLast(...)");
+Comparators.addMethod("defaultOptionFirst(...)");
+Comparators.addMethod("defaultOptionLast(...)");
+Comparators.addMethod("groupFirst(...)");
+Comparators.addMethod("groupLast(...)");
+Comparators.addMethod("namedFirst(...)");
+Comparators.addMethod("namedLast(...)");
+Comparators.addMethod("preferredNameFirst(...)");
+Comparators.addMethod("preferredNameLast(...)");
+Comparators.addMethod("requiredFirst(...)");
+Comparators.addMethod("requiredLast(...)");
+Comparators.addMethod("switchFirst(...)");
+Comparators.addMethod("switchLast(...)");
+
+var HelpFormatter = new Class("HelpFormatter");
+HelpFormatter.addMethod("print()");
+HelpFormatter.addMethod("printDivider()");
+HelpFormatter.addMethod("printException()");
+HelpFormatter.addMethod("printFooter()");
+HelpFormatter.addMethod("printGutterLeft()");
+HelpFormatter.addMethod("printGutterRight()");
+HelpFormatter.addMethod("printHeader()");
+HelpFormatter.addMethod("printHelp()");
+HelpFormatter.addMethod("printUsage()");
+HelpFormatter.addAttribute("comparator");
+HelpFormatter.addAttribute("displaySettings");
+HelpFormatter.addAttribute("divider");
+HelpFormatter.addAttribute("exception");
+HelpFormatter.addAttribute("footer");
+HelpFormatter.addAttribute("fullUsageSettings");
+HelpFormatter.addAttribute("group");
+HelpFormatter.addAttribute("gutterCenter");
+HelpFormatter.addAttribute("gutterLeft");
+HelpFormatter.addAttribute("gutterRight");
+HelpFormatter.addAttribute("header");
+HelpFormatter.addAttribute("lineUsageSettings");
+HelpFormatter.addAttribute("pageWidth");
+HelpFormatter.addAttribute("printWriter");
+HelpFormatter.addAttribute("shellCommand");
diff --git a/src/site/resources/images/svg/diagrams.css b/src/site/resources/images/svg/diagrams.css
new file mode 100644
index 0000000..d8691da
--- /dev/null
+++ b/src/site/resources/images/svg/diagrams.css
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+.option .outline, .option polygon.note {
+	fill:rgb(191,255,255);
+}
+.group rect.outline, .group polygon.note {
+	fill:rgb(255,191,191);
+}
+
+.parent rect.outline, .parent polygon.note {
+	fill:rgb(191,255,191);
+}
+.argument rect.outline, .argument polygon.note {
+	fill:rgb(191,191,255);
+}
+.property rect.outline, .property polygon.note {
+	fill:rgb(255,191,255);
+}
+
+.package rect {
+	fill:rgb(255,255,191);
+}
+
+.package rect.inner {
+	fill: rgb(255,255,255);
+	stroke: none;
+}
+
+text.title {
+	text-anchor: middle;
+}
+
+.type text {
+	fill: rgb(0,0,0);
+}
+rect, line, polygon, polyline {
+	stroke:rgb(0,0,0);
+	stroke-width:2;
+	stroke-linejoin: bevel;
+	stroke-linecap: round;
+}
+
+.implements, .extends {
+	fill: none;
+	marker-end: url(util.svg#HollowArrow); 
+}
+
+.implements, .note.connect {
+	stroke-dasharray: 5;
+}
diff --git a/src/site/resources/images/svg/diagrams.js b/src/site/resources/images/svg/diagrams.js
new file mode 100644
index 0000000..4e8a5a7
--- /dev/null
+++ b/src/site/resources/images/svg/diagrams.js
@@ -0,0 +1,368 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+
+var textHeight = 10;
+var padding = 10;
+var namespace = "http://www.w3.org/2000/svg";
+
+var displayAttributes = true;
+var displayMethods = true;
+var displayNotes = true;
+
+function Type(name){
+	this.width = 160;
+	this.style = "type";
+	
+	this.insert = function(evt){
+		y = 0;
+		y = this.insertOutline(evt,y);
+		y = this.insertName(evt,y);
+		if(displayAttributes==true){
+			y = this.insertAttributes(evt,y);
+		}
+		if(displayMethods==true){
+			y = this.insertMethods(evt,y);
+		}
+		if(displayNotes==true){
+			y = this.insertNotes(evt,y);
+		}
+	}
+	
+	this.height = function(){
+		height = 0;
+		height += this.heightName();
+		if(displayAttributes==true){
+			height += this.heightAttributes();
+		}
+		if(displayMethods==true){
+			height += this.heightMethods();
+		}
+		return height;
+	}
+	
+	
+	
+	
+	
+	
+	this.insertOutline = function(evt,y){
+
+		style = evt.target.getAttributeNS(null, "class");
+		evt.target.setAttributeNS(null,"class",style+" "+this.style);
+
+		e = document.createElementNS(namespace, "rect");
+		e.setAttributeNS(null, "x", 0);
+		e.setAttributeNS(null, "y", 0);
+		e.setAttributeNS(null, "width",  this.width);
+		e.setAttributeNS(null, "height", this.height());
+        	e.setAttributeNS(null, "class", "outline");
+        	evt.target.appendChild(e);
+
+		return y;
+	}
+	
+	
+	
+	
+	
+	
+	
+	this.name = name;
+	
+	this.heightName = function(){
+		return padding * 2 + textHeight;
+	}
+	
+	this.insertName = function(evt,y){
+	
+		y += padding;
+		y += textHeight;
+		
+		e = document.createElementNS(namespace, "text");
+		e.setAttributeNS(null, "x", this.width/2);
+		e.setAttributeNS(null, "y", y);
+		e.setAttributeNS(null, "class", "title");
+		e.appendChild(document.createTextNode(this.name));
+		evt.target.appendChild(e);
+        
+		y += padding;
+	
+		return y;
+	}
+	
+	
+	
+	
+	
+	
+	
+	this.attributeList = new Array();
+	this.attributeCount = 0;
+	
+	this.addAttribute = function(text){
+		this.attributeList[this.attributeCount++]=text;
+	}
+	
+	this.heightAttributes = function(){
+		if(this.attributeCount>0){
+			return padding * 2 + this.attributeCount*textHeight;
+		}
+		else{
+			return padding;
+		}
+	}
+	
+	this.insertAttributes = function(evt,y){
+	
+		e = document.createElementNS(namespace, "line");
+		e.setAttributeNS(null, "x1", 0);
+		e.setAttributeNS(null, "y1", y);
+		e.setAttributeNS(null, "x2", this.width);
+		e.setAttributeNS(null, "y2", y);
+		e.setAttributeNS(null, "class", "divider");
+		evt.target.appendChild(e);
+		
+		y += padding;
+		
+		for(i=0;i<this.attributeCount;++i){
+			y += textHeight;
+			
+			e = document.createElementNS(namespace, "text");
+			e.setAttributeNS(null, "x", padding);
+			e.setAttributeNS(null, "y", y);
+			e.setAttributeNS(null, "class", "attribute");
+			e.appendChild(document.createTextNode(this.attributeList[i]));
+			evt.target.appendChild(e);
+		}
+		
+		if(this.attributeCount>0){
+			y += padding;
+		}
+	
+		return y;
+	}
+	
+	
+	
+	
+	
+	this.methodList = new Array();
+	this.methodCount = 0;
+	
+	this.addMethod = function(text){
+		this.methodList[this.methodCount++]=text;
+	}
+	
+	this.heightMethods = function(){
+		if(this.methodCount>0){
+			return padding * 2 + this.methodCount*textHeight;
+		}
+		else{
+			return padding;
+		}
+	}
+	
+	this.insertMethods = function(evt,y){
+	
+		e = document.createElementNS(namespace, "line");
+		e.setAttributeNS(null, "x1", 0);
+		e.setAttributeNS(null, "y1", y);
+		e.setAttributeNS(null, "x2", this.width);
+		e.setAttributeNS(null, "y2", y);
+		e.setAttributeNS(null, "class", "divider");
+		evt.target.appendChild(e);
+		
+		y += padding;
+		
+		for(i=0;i<this.methodCount;++i){
+			y += textHeight;
+			
+			e = document.createElementNS(namespace, "text");
+			e.setAttributeNS(null, "x", padding);
+			e.setAttributeNS(null, "y", y);
+			e.setAttributeNS(null, "class", "method");
+			e.appendChild(document.createTextNode(this.methodList[i]));
+			evt.target.appendChild(e);
+		}
+		
+		if(this.methodCount>0){
+			y += padding;
+		}
+	
+		return y;
+	}
+	
+	
+	
+	
+	
+	this.noteList = new Array();
+	this.noteCount = 0;
+	
+	this.addNote = function(text){
+		this.noteList[this.noteCount++]=text;
+	}
+	
+	this.insertNotes = function(evt,y){
+		if(this.noteCount>0){
+			joinTop = y;
+		
+			y += padding;
+			
+			e = document.createElementNS(namespace, "line");
+			e.setAttributeNS(null, "x1", this.width/2-padding*2);
+			e.setAttributeNS(null, "y1", y);
+			e.setAttributeNS(null, "x2", this.width/2+padding*2);
+			e.setAttributeNS(null, "y2", joinTop);
+			e.setAttributeNS(null, "class", "note connect");
+			evt.target.appendChild(e);
+			
+			
+			
+			height = this.heightNotes();
+			
+			e = document.createElementNS(namespace, "polygon");
+			e.setAttributeNS(null, "points", "0,"+(y+padding)+" 0,"+(y+height)+" "+this.width+","+(y+height)+" "+this.width+","+y+" "+padding+","+y);
+			e.setAttributeNS(null, "class", "note");
+			evt.target.appendChild(e);
+			
+			e = document.createElementNS(namespace, "polygon");
+			e.setAttributeNS(null, "points", ""+padding+","+y+" 0,"+(y+padding)+" "+padding+","+(y+padding));
+			e.setAttributeNS(null, "class", "note corner");
+			evt.target.appendChild(e);
+			
+			y += padding;
+			
+		
+			for(i=0;i<this.noteCount;++i){
+				y += textHeight;
+
+				e = document.createElementNS(namespace, "text");
+				e.setAttributeNS(null, "x", padding);
+				e.setAttributeNS(null, "y", y);
+				e.setAttributeNS(null, "class", "note");
+				e.appendChild(document.createTextNode(this.noteList[i]));
+				evt.target.appendChild(e);
+			}
+		}
+	}
+	
+	this.heightNotes = function(){
+		if(this.noteCount>0){
+			return padding*2 + this.noteCount*textHeight;
+		}
+	}
+}
+
+function Interface(name){
+	this.superclass = Type;
+	this.superclass(name);
+	delete this.superclass; 
+	this.rounded = true;
+	
+	this.insertOutline = function(evt,y){
+
+		style = evt.target.getAttributeNS(null, "class");
+		evt.target.setAttributeNS(null,"class",style+" "+this.style);
+
+		e = document.createElementNS(namespace, "rect");
+		e.setAttributeNS(null, "x", 0);
+		e.setAttributeNS(null, "y", 0);
+		e.setAttributeNS(null, "width",  this.width);
+		e.setAttributeNS(null, "height", this.height());
+		e.setAttributeNS(null, "rx", padding*1.5);
+		e.setAttributeNS(null, "ry", padding*1.5);
+        	e.setAttributeNS(null, "class", "outline");
+		evt.target.appendChild(e);
+
+		return y;
+	}
+	
+	this.heightAttributes = function(){
+		return 0;
+	}
+	
+	this.insertAttributes = function(evt,y){
+		return y;
+	}
+	
+}
+Interface.prototype = new Type;
+
+function Class(name){
+	this.superclass = Type;
+	this.superclass(name);
+	delete this.superclass; 
+	this.rounded = false;
+}
+Class.prototype = new Type;
+
+
+
+
+function PackageSymbol(name,width,height){
+	this.name = name;
+	this.nameWidth = 150;
+	this.width = width;
+	this.height = height;
+	
+	this.insert = function(evt){
+		
+		style = evt.target.getAttributeNS(null, "class");
+		evt.target.setAttributeNS(null,"class",style+" package");
+		
+		first = evt.target.getFirstChild();
+		
+		e = document.createElementNS(namespace, "rect");
+		e.setAttributeNS(null, "x", 0);
+		e.setAttributeNS(null, "y", 0);
+		e.setAttributeNS(null, "width", this.nameWidth);
+		e.setAttributeNS(null, "height", textHeight+padding);
+		e.setAttributeNS(null, "class", "outline");
+		e.appendChild(document.createTextNode(this.name));
+		evt.target.insertBefore(e,first);
+		
+		e = document.createElementNS(namespace, "text");
+		e.setAttributeNS(null, "x", this.nameWidth/2);
+		e.setAttributeNS(null, "y", textHeight+padding/2);
+		e.setAttributeNS(null, "class", "title");
+		e.appendChild(document.createTextNode(this.name));
+		evt.target.insertBefore(e,first);
+		
+		e = document.createElementNS(namespace, "rect");
+		e.setAttributeNS(null, "x", 0);
+		e.setAttributeNS(null, "y", textHeight+padding);
+		e.setAttributeNS(null, "width", this.width);
+		e.setAttributeNS(null, "height", this.height-textHeight-padding);
+		e.setAttributeNS(null, "class", "outline");
+		e.appendChild(document.createTextNode(this.name));
+		evt.target.insertBefore(e,first);
+		
+		e = document.createElementNS(namespace, "rect");
+		e.setAttributeNS(null, "x", padding);
+		e.setAttributeNS(null, "y", textHeight+padding*2);
+		e.setAttributeNS(null, "width", this.width-padding*2);
+		e.setAttributeNS(null, "height", this.height-textHeight-padding*3);
+		e.setAttributeNS(null, "class", "inner");
+		e.appendChild(document.createTextNode(this.name));
+		evt.target.insertBefore(e,first);
+		
+		
+	}
+}
+
diff --git a/src/site/resources/images/svg/options.svg b/src/site/resources/images/svg/options.svg
new file mode 100644
index 0000000..cdb5160
--- /dev/null
+++ b/src/site/resources/images/svg/options.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" standalone="no"?>
+<?xml-stylesheet type="text/css" href="diagrams.css" ?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg id="root" width="460" height="530" x="0" y="0">
+
+<script type="text/ecmascript" xlink:href="diagrams.js"/>
+<script type="text/ecmascript" xlink:href="diagrams-cli2.js"/>
+<script type="text/ecmascript">
+
+displayAttributes = false;
+displayMethods = false;
+
+</script>
+
+<g 
+	onload="new PackageSymbol('org.apache.commons.cli2',440,510).insert(evt)" 
+	transform="translate(10,10)"><g transform="translate(10,30)">
+	
+	<g transform="translate(  0, 30)" class="option"   onload="Option.insert(evt);" />
+	<g transform="translate( 50,120)" class="group"    onload="Group.insert(evt);"/>
+	<g transform="translate( 50,210)" class="parent"   onload="Parent.insert(evt);"/>
+	<g transform="translate( 50,390)" class="argument" onload="Argument.insert(evt);"/>
+	
+	
+	<g 
+		onload="new PackageSymbol('option',180,470).insert(evt)" 
+		transform="translate(240,0)"><g transform="translate(10,30)">
+		
+		<g transform="translate(0,  0)" class="option"   onload="PropertyOption.insert(evt);" />
+		<g transform="translate(0, 90)" class="parent"   onload="DefaultOption.insert(evt);" />
+		<g transform="translate(0,180)" class="parent"   onload="Command.insert(evt);" />
+		<g transform="translate(0,270)" class="parent"   onload="Switch.insert(evt);" />
+		<g transform="translate(0,360)" class="argument" onload="SourceDestArgument.insert(evt);" />
+	</g></g>
+</g></g>
+
+<polyline class="implements" points="270,85 190,85 "/>
+
+<polyline class="implements" points="270,175 250,175 250,265 240,265"/>
+<polyline class="implements" points="270,265 250,265 250,265 240,265"/>
+<polyline class="implements" points="270,355 250,355 250,265 240,265"/>
+
+<polyline class="implements" points="270,445 240,445 "/>
+
+<polyline class="extends" points="70,445 40,445 40,110"/>
+<polyline class="extends" points="70,265 40,265 40,110"/>
+<polyline class="extends" points="70,175 40,175 40,110"/>
+
+
+</svg>
\ No newline at end of file
diff --git a/src/site/resources/images/svg/util.svg b/src/site/resources/images/svg/util.svg
new file mode 100644
index 0000000..b86d760
--- /dev/null
+++ b/src/site/resources/images/svg/util.svg
@@ -0,0 +1,47 @@
+<?xml version="1.0" standalone="no"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="1" height="1">
+	<defs>
+        <marker 
+            id="FilledArrow"
+            viewBox="0 0 10 10" refX="0" refY="5" 
+            markerUnits="strokeWidth"
+            markerWidth="5" markerHeight="14"
+            orient="auto"
+            >
+            <path 
+                d="M 10 0 L 0 5 L 10 10 L 10 0 Z" 
+                fill="rgb(0,0,0)"
+                />
+        </marker>
+        <marker 
+            id="HollowArrow"
+            markerUnits="userSpaceOnUse"
+            rexX="10" refY="5"
+            markerWidth="20" markerHeight="20"
+            orient="auto"
+            >
+            <path 
+                d="M 10 5 L 1 0 L 1 10 L 10 5 " 
+                fill="rgb(255,255,255)"
+                stroke="rgb(0,0,0)"
+                />
+        </marker>
+	</defs>	
+</svg>
\ No newline at end of file
diff --git a/src/site/site.xml b/src/site/site.xml
new file mode 100644
index 0000000..74c6826
--- /dev/null
+++ b/src/site/site.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="Commons CLI">
+    <bannerRight>
+        <name>Commons CLI</name>
+        <src>/images/logo.png</src>
+        <href>/index.html</href>
+    </bannerRight>
+
+    <body>
+        <menu name="Commons CLI">
+            <item name="Overview"             href="/index.html"/>
+            <item name="Download"             href="http://commons.apache.org/downloads/download_cli.cgi"/>
+            <item name="Changes Report"       href="/changes-report.html"/>
+            <item name="Mailing Lists"        href="/mail-lists.html"/>
+            <item name="Issue Tracking"       href="/issue-tracking.html"/>
+            <item name="Source Repository"    href="/source-repository.html"/>
+        </menu>
+
+        <menu name="CLI 1 User Guide">
+            <item name="Getting started"      href="/introduction.html"/>
+            <item name="Usage scenarios"      href="/usage.html"/>
+            <item name="Option properties"    href="/properties.html"/>
+            <item name="Javadoc (1.2)"        href="api-release/index.html"/>
+        </menu>
+
+        <menu name="CLI 2 User Guide (dev)">
+            <item name="Overview"             href="/manual/index.html"/>
+            <item name="Examples"             href="/examples/index.html"/>
+            <item name="Options"              href="/manual/options.html"/>
+            <item name="Validators"           href="/manual/validators.html"/>
+            <item name="Javadoc (SVN latest)" href="apidocs/index.html"/>
+        </menu>
+
+    </body>
+
+</project>