Commits

Fred Grott committed 8301227

first commit

  • Participants

Comments (0)

Files changed (194)

+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="gen"/>
+	<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+	<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+	<classpathentry kind="output" path="bin/classes"/>
+</classpath>
+bin/*
+gen/*
+local.properties
+libs/*
+libsjavadocs/*
+antlibs/*
+ext-libs/*
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>GWSAndroidProjectTemplate</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.ApkBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

.settings/org.eclipse.jdt.core.prefs

+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.source=1.5

AndroidManifest.xml

+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="org.bitbucket.fredgrott.gwsandroidprojecttemplate"
+    android:versionCode="1"
+    android:versionName="1.0" >
+
+    <uses-sdk
+        android:minSdkVersion="11"
+        android:targetSdkVersion="15" />
+
+    <application
+        android:icon="@drawable/ic_launcher"
+        android:label="@string/app_name"
+        android:theme="@style/AppTheme" >
+        <activity
+            android:name=".MainActivity"
+            android:label="@string/title_activity_main" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+
+</manifest>

android.eclipse.checkstyle.xml

+<?xml version="1.0"?>
+<!DOCTYPE module PUBLIC
+    "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
+    "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
+
+
+<!--
+    Checkstyle-Configuration: Android checkstyle by Enea
+    Description: none
+-->
+<module name="Checker">
+  <property name="severity" value="warning"></property>
+  <module name="TreeWalker">
+    <property name="tabWidth" value="4"></property>
+    <module name="JavadocMethod">
+      <property name="logLoadErrors" value="true"></property>
+      <property name="suppressLoadErrors" value="true"></property>
+    </module>
+    <module name="JavadocType"></module>
+    <module name="JavadocVariable"></module>
+    <module name="JavadocStyle"></module>
+    <module name="ConstantName"></module>
+    <module name="LocalFinalVariableName"></module>
+    <module name="LocalVariableName"></module>
+    <module name="MemberName">
+      <metadata name="net.sf.eclipsecs.core.comment" value="only public starts without m"></metadata>
+      <property name="applyToProtected" value="false"></property>
+      <property name="applyToPrivate" value="false"></property>
+    </module>
+    <module name="MethodName"></module>
+    <module name="PackageName"></module>
+    <module name="ParameterName"></module>
+    <module name="StaticVariableName">
+      <metadata name="net.sf.eclipsecs.core.comment" value="starts with 's'"></metadata>
+      <property name="format" value="^[s][a-zA-Z0-9]*$"></property>
+    </module>
+    <module name="TypeName"></module>
+    <module name="AvoidStarImport"></module>
+    <module name="IllegalImport"></module>
+    <module name="RedundantImport"></module>
+    <module name="UnusedImports"></module>
+    <module name="LineLength">
+      <property name="severity" value="ignore"></property>
+      <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"></metadata>
+    </module>
+    <module name="MethodLength"></module>
+    <module name="ParameterNumber"></module>
+    <module name="EmptyForIteratorPad"></module>
+    <module name="MethodParamPad"></module>
+    <module name="NoWhitespaceAfter">
+      <property name="tokens" value="BNOT,DEC,DOT,INC,LNOT,UNARY_MINUS,UNARY_PLUS"></property>
+    </module>
+    <module name="NoWhitespaceBefore"></module>
+    <module name="OperatorWrap"></module>
+    <module name="ParenPad"></module>
+    <module name="TypecastParenPad"></module>
+    <module name="WhitespaceAfter"></module>
+    <module name="WhitespaceAround"></module>
+    <module name="ModifierOrder"></module>
+    <module name="RedundantModifier"></module>
+    <module name="AvoidNestedBlocks"></module>
+    <module name="EmptyBlock"></module>
+    <module name="LeftCurly"></module>
+    <module name="NeedBraces"></module>
+    <module name="RightCurly"></module>
+    <module name="AvoidInlineConditionals"></module>
+    <module name="DoubleCheckedLocking"></module>
+    <module name="EmptyStatement"></module>
+    <module name="EqualsHashCode"></module>
+    <module name="HiddenField"></module>
+    <module name="IllegalInstantiation"></module>
+    <module name="InnerAssignment"></module>
+    <module name="MagicNumber"></module>
+    <module name="MissingSwitchDefault"></module>
+    <module name="RedundantThrows">
+      <property name="logLoadErrors" value="true"></property>
+      <property name="suppressLoadErrors" value="true"></property>
+    </module>
+    <module name="SimplifyBooleanExpression"></module>
+    <module name="SimplifyBooleanReturn"></module>
+    <module name="DesignForExtension">
+      <property name="severity" value="ignore"></property>
+      <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"></metadata>
+    </module>
+    <module name="FinalClass"></module>
+    <module name="HideUtilityClassConstructor"></module>
+    <module name="InterfaceIsType"></module>
+    <module name="VisibilityModifier"></module>
+    <module name="ArrayTypeStyle"></module>
+    <module name="FinalParameters">
+      <property name="severity" value="ignore"></property>
+      <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"></metadata>
+    </module>
+    <module name="TodoComment">
+      <property name="severity" value="ignore"></property>
+      <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"></metadata>
+    </module>
+    <module name="UpperEll"></module>
+    <module name="MethodLength">
+      <property name="max" value="190"></property>
+    </module>
+    <module name="MemberName">
+      <metadata name="net.sf.eclipsecs.core.comment" value="non public members should start with m"></metadata>
+      <property name="applyToPublic" value="false"></property>
+      <property name="format" value="^[m][a-zA-Z0-9]*$"></property>
+    </module>
+    <module name="LineLength">
+      <property name="max" value="300"></property>
+    </module>
+  </module>
+  <module name="JavadocPackage"></module>
+  <module name="NewlineAtEndOfFile">
+    <property name="severity" value="ignore"></property>
+    <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"></metadata>
+  </module>
+  <module name="Translation"></module>
+  <module name="FileTabCharacter">
+    <property name="severity" value="ignore"></property>
+    <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"></metadata>
+  </module>
+  <module name="RegexpSingleline">
+    <property name="severity" value="ignore"></property>
+    <property name="format" value="\s+$"></property>
+    <property name="message" value="Line has trailing spaces."></property>
+    <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"></metadata>
+  </module>
+</module>

android.pmd.ruleset.xml

+<?xml version="1.0"?>
+<ruleset name="Android Application Rules"
+    xmlns="http://pmd.sf.net/ruleset/1.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
+    xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
+
+<description>Ruleset for Android application, its helpful to put the classes on the auxclasspath of the ant task</description>
+
+  <exclude-pattern>.*/R.java</exclude-pattern>
+  <exclude-pattern>.*/gen/.*</exclude-pattern>
+
+  <rule ref="rulesets/android.xml"/>
+
+   <rule name="CallSuperFirst"
+      since="4.2.5" language="java"
+      message="super should be called at the start of the method"
+      class="net.sourceforge.pmd.rules.XPathRule"
+      externalInfoUrl="http://pmd.sourceforge.net/rules/java/android.html#CallSuperFirst">
+    <description>Super should be called at the start of the method</description>
+    <priority>3</priority>
+    <properties>
+      <property name="xpath">
+        <value><![CDATA[
+//MethodDeclaration[MethodDeclarator[
+  @Image='onCreate' or
+  @Image='onConfigurationChanged' or
+  @Image='onPostCreate' or
+  @Image='onPostResume' or
+  @Image='onRestart' or
+  @Image='onRestoreInstanceState' or
+  @Image='onResume' or
+  @Image='onStart'
+  ]]
+    /Block[not(
+      (BlockStatement[1]/Statement/StatementExpression/PrimaryExpression/PrimaryPrefix[@Image= ancestor::MethodDeclaration/MethodDeclarator/@Image]))]
+[ancestor::ClassOrInterfaceDeclaration[//ClassOrInterfaceType[
+  typeof(@Image, 'android.app.Activity', 'Activity') or
+  typeof(@Image, 'android.app.Application', 'Application') or
+  typeof(@Image, 'android.app.Service', 'Service')
+]]]
+]]>
+        </value>
+      </property>
+    </properties>
+    <example><![CDATA[
+public class DummyActivity extends Activity {
+    public void onCreate(Bundle bundle) {
+     // missing call to super.onCreate(bundle)
+        foo();
+    }
+}
+]]>
+    </example>
+  </rule>
+
+  <rule name="CallSuperLast"
+      since="4.2.5" language="java"
+      message="super should be called at the end of the method"
+      class="net.sourceforge.pmd.rules.XPathRule"
+      externalInfoUrl="http://pmd.sourceforge.net/rules/java/android.html#CallSuperLast">
+    <description>Super should be called at the end of the method</description>
+    <priority>3</priority>
+    <properties>
+      <property name="xpath">
+        <value>
+          <![CDATA[
+//MethodDeclaration[MethodDeclarator[
+  @Image='finish' or
+  @Image='onDestroy' or
+  @Image='onPause' or
+  @Image='onSaveInstanceState' or
+  @Image='onStop' or
+  @Image='onTerminate'
+  ]]
+   /Block/BlockStatement[last()]
+    [not(Statement/StatementExpression/PrimaryExpression/PrimaryPrefix[@Image= ancestor::MethodDeclaration/MethodDeclarator/@Image])]
+[ancestor::ClassOrInterfaceDeclaration[//ClassOrInterfaceType[
+  typeof(@Image, 'android.app.Activity', 'Activity') or
+  typeof(@Image, 'android.app.Application', 'Application') or
+  typeof(@Image, 'android.app.Service', 'Service')
+]]]
+]]>
+        </value>
+      </property>
+    </properties>
+    <example>
+      <![CDATA[
+public class DummyActivity extends Activity {
+    public void onPause() {
+        foo();
+        // missing call to super.onPause()
+    }
+}
+]]>
+    </example>
+  </rule>
+
+  <rule name="DoNotHardCodeSDCard"
+      since="4.2.6" language="java"
+      message="Do not hardcode /sdcard."
+      class="net.sourceforge.pmd.rules.XPathRule"
+      externalInfoUrl="http://pmd.sourceforge.net/rules/java/android.html#DoNotHardCodeSDCard">
+    <description>Use Environment.getExternalStorageDirectory() instead of "/sdcard"</description>
+    <priority>3</priority>
+    <properties>
+      <property name="xpath">
+        <value>//Literal[starts-with(@Image,'"/sdcard')]</value>
+      </property>
+    </properties>
+    <example>
+      <![CDATA[
+public class MyActivity extends Activity {
+    protected void foo() {
+        String storageLocation = "/sdcard/mypackage";   // hard-coded, poor approach
+
+        storageLocation = Environment.getExternalStorageDirectory() + "/mypackage"; // preferred approach
+    }
+}
+]]>
+    </example>
+  </rule>
+
+
+  <rule ref="rulesets/clone.xml"/>
+  <rule ref="rulesets/finalizers.xml"/>
+  <rule ref="rulesets/imports.xml"/>
+  <rule ref="rulesets/logging-java.xml"/>
+  <rule ref="rulesets/naming.xml">
+    <exclude name="AbstractNaming"/>
+    <exclude name="LongVariable"/>
+    <exclude name="LongMethodName"/>
+    <exclude name="ShortMethodName"/>
+    <exclude name="ShortVariable"/>
+    <exclude name="VariableNamingConventions"/>
+  </rule>
+
+</ruleset>
+source.dir=src
+out.dir=bin/classes
+company.url=http\://shareme.github.com
+company.name=GrottWorkShop
+copyright.years=2012-Whenever
+masterbranch.projecturl=https\://masterbranch.com/shareme
+apilevel.top=16
+apilevel.bottom=10
+androidsite.url=http\://android.com
+androidsite.name=android.com
+projectrepo.url=https\://bitbucket.org/fredgrott/gwsandroidprojecttemplate

boostrapjars/ivyanttasklib/ivy-2.3.0-rc1.jar

Binary file added.

boostrapjars/log4ant/dep/antxtras/etc/antxtras-funcuts-demo.xml

+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<project name="demo" basedir="." default="main">
+  
+  <!--
+     | Initialize what we need to demonstrate various funcuts.
+     -->
+  <dirname property="root.d" file="${basedir}"/>
+  <path id="jware.path">
+    <fileset dir="${root.d}/lib">
+      <include name="*.jar"/>
+    </fileset>
+  </path>
+
+  <taskdef resource="org/jwaresoftware/antxtras/install/antlib-advanced.xml"
+      classpathref="jware.path"/>
+
+  <tempdir pathproperty="TMP.dir" urlproperty="TMP.url"/>
+
+  <!--
+    | Don't throw any script-stopping errors (just a demo that can't expect setup)
+    -->
+  <property name="jware.antxtras.defaults.haltiferror.funcuts.flag" value="false"/>
+
+  <!--
+     | Starting recording the demo's duration. Used by our $duration funcut.
+     -->
+  <target name="begin">
+    <assign var="start" op="now" copyproperty="start"/>
+  </target>
+
+  <!-- 
+    | Reinsert the 'tstamp' datetime funcut that was removed in v2 series.
+    -->
+  <managefuncuts action="install">
+    <parameter name="tstamp"
+        value="org.jwaresoftware.antxtras.funcuts.datetime.DateTimeFunctionShortcut"/>
+  </managefuncuts>
+
+  <!-- ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -->
+
+  <!--
+    | The demo for our '$oslibext:' and '$osfamily:' info function shortcuts.
+    | @since JWare/AntXtras 2.0.0
+    | @since JWare/AntXtras 3.0.0 added call to $isos: funcut
+    -->
+  <target name="os"
+          description="Demo of the $oslibext:, $osfamily:, $system:, and $sysenv: funcuts">
+    <echo message="OS Family: ${$osfamily:},  General OS Family: ${$osfamily:general}"/>
+    <echo message="Is OS[windows]: ${$isos:windows}"/>
+    <echo message="Native library extension: ${$oslibext:ERROR}"/>
+    <echo message="System property(ANT_HOME): ${$system:ANT_HOME?UNKNOWN}"/>
+    <echo message="System environment(HOME): ${$sysenv:HOME?UNKNOWN}"/>
+  </target>
+
+  
+  <!--
+    | The demo for our '$vendorinfo:' info function shortcuts.
+    | @since JWare/AntXtras 3.0.0
+    -->
+  <target name="vendorinfo"
+          description="Demo of the $vendorinfo: funcut">
+    <echo message="AntXtras RELEASE: ${$vendorinfo:}"/>
+    <echo message="Long Version: ${$vendorinfo:antx?longversion}"/>
+    <echo message="Long Date: ${$vendorinfo:?longdate}"/>
+  </target>
+
+
+  <!--
+    | The demo for our '$x:' or '$fixture:' function shortcut.
+    | @since JWare/AntX 0.5
+    | @since JWare/AntXtras 3.0.0 added location info (not just iteration)
+    -->
+  <target name="fixture"
+          description="Demo of the $x: aka $fixture: function shortcut">
+    <echo message="Iteration ID: ${$x:cycle?id}"/>
+    <echo message="Iteration ClassName: ${$x:cycle?classname}"/>
+    <echo message="Iteration (A) Property: ${$x:cycle?property?Iteration.ITID}"/>
+    <echo message="Iteration (A) FuncutImpl($var:): ${$x:cycle?funcut?var}"/>
+    <echo message="Iteration (B) FuncutImpl($misinhandler): ${$x:cycle?funcut?misinhandler}"/>
+    <!-- -->
+    <echo message="Thread: ${$x:thread}"/>
+    <echo message="Project: ${$x:projectname}"/>
+    <echo message="Target: ${$x:targetname}"/>
+    <echo message="Location: ${$x:location}"/>
+    <echo message="Line: ${$x:line}"/>
+  </target>
+
+
+  <!--
+    | The demo for our '$default:' and '$defaultsproperty:' function shortcuts.
+    | @since JWare/AntX 0.5
+    -->
+  <target name="defaults"
+          description="Demo of the $default: and $defaultsproperty: funcuts">
+    <echo message="Defaults ConfigId Property(none): ${$defaultsproperty:configid}"/>
+    <echo message="Defaults ConfigId: ${$default:configid}"/>
+    <echo message="Defaults Assertions Enabled Property: ${$defaultsproperty:assertions}"/>
+    <echo message="Defaults Assertions Enabled: ${$default:assertions}"/>
+    <echo message="Defaults Password File Property: ${$defaultsproperty:passwordfile}"/>
+    <echo message="Defaults Password File: ${$default:passwordfile}"/>
+    <echo message="Defaults HaltIfError(Funcuts) Property: ${$defaultsproperty:haltiferror.funcuts}"/>
+    <echo message="Defaults HaltIfError(Funcuts): ${$default:haltiferror.funcuts}"/>
+  </target>
+
+
+  <!--
+    | The demo for our '$truefalse:' function shortcut.
+    | @since JWare/AntX 0.5
+    -->
+
+  <target name="truefalse"
+          description="Demo of the $truefalse: funcut">
+    <echo message="TF(true): ${$truefalse:true}"/>
+    <echo message="TF(false): ${$truefalse:false}"/>
+    <echo message="TF(YES): ${$truefalse:YES}"/>
+    <echo message="TF(TrUe,pass|fail): ${$truefalse:TrUe?PASS,,FAIL}"/>
+    <echo message="TF(ofF): ${$truefalse:ofF}"/>
+    <echo message="TF(no): ${$truefalse:no}"/>
+    <echo message="TF(1): ${$truefalse:1}"/>
+    <echo message="TF(0,pass|fail): ${$truefalse:0?PASS,,FAIL}"/>
+    
+    <echo message="TF(0,|doink): '${$truefalse:yes?,,doink}'"/>
+    <echo message="TF(no,happy|): '${$truefalse:no?happy,,}'"/>
+    <echo message="TF(yes,happy|): '${$truefalse:yes?happy,,}'"/>
+
+    <property name="v.0" value="0"/>
+    <echo message="TF(%{0}): ${$truefalse:${v.0}}"/>
+    <assign name="v.ON" value="ON"/>
+    <echo message="TF(v.ON): ${$var:v.ON|$truefalse:?okidoki,,bleech}"/>
+    <echo message="TF(%{v.ON},yes|no): ${$truefalse:${$var:v.ON}?yes,,no}"/>
+  </target>
+
+
+  <!--
+    | The demo for our '$not:' function shortcut.
+    | @since JWare/AntX 0.5
+    -->
+  <target name="not"
+          description="Demo of the $not: funcut">
+    <property name="p.no" value="off"/>
+    <assign var="v.yes" value="yes"/>
+    <assign var="v.999" value="999"/>
+
+    <echo message="Not('yes'): ${$not:yes}"/>
+    <echo message="Not(false-property): ${$not:${p.no}}"/>
+    <echo message="Not(false-property): ${$not:p.no?p}"/>
+    <echo message="Not(yes-var): ${$not:v.yes?var}"/>
+    <echo message="Not(Zero(v.999)): ${$var:v.999|$iszero:|$not:}"/>
+  </target>
+
+
+  <!--
+    | The demo for our '$iszero:' function shortcut.
+    | @since JWare/AntX 0.5
+    -->
+  <target name="iszero"
+          description="Demo of the $iszero: funcut">
+    <property name="p.0" value="0"/>
+    <assign var="v.999" value="999"/>
+    <assign var="v.0" value="0"/>
+    
+    <echo message="IsZero('999'): ${$iszero:999}"/>
+    <echo message="IsZero(p.0): ${$iszero:${p.0}}"/>
+    <echo message="Piped IsZero(p.0): ${$property:p.0|$iszero:}"/>
+    <echo message="IsZero(v.0): ${$var:v.0|$iszero:}"/>
+    <echo message="IsZero(v.999): ${$var:v.999|$iszero:}"/>
+  </target>
+
+
+  <!--
+    | The demo for our '$random:' function shortcut.
+    | @since JWare/AntX 0.5
+    -->
+  <target name="random"
+          description="Demo of the $random: funcut">
+    <echo message="Random String: ${$random:}"/>
+    <echo message="Prefixed Random String ('hello'): ${$random:string?hello}"/>
+    <echo message="Random Integer: ${$random:integer}"/>
+    <echo message="Bounded Random Integer (0-100]: ${$random:int?100}"/>
+    <echo message="Random Long: ${$random:long}"/>
+    <echo message="Random Boolean: ${$random:boolean}"/>
+  </target>
+
+
+  <!--
+    | The demo for our '$newrefid:' function shortcut.
+    | @since JWare/AntX 0.5
+    -->
+  <target name="newrefid"
+          description="Demo of the $newrefid: funcut">
+    <echo message="New refid: ${$newrefid:}"/>
+    <echo message="Another refid: ${$newrefid:}"/>
+    <echo message="Prefixed refid ('hello'): ${$newrefid:hello}"/>
+    <echo message="Uppercased refid: ${$newrefid:aeiou|$uppercase:}"/>
+    <echo message="Temp refid: ${$newrefid:junk?nextid}"/>
+    <echo message="  -> The variable(nextid): ${$var:nextid}"/>
+  </target>
+
+
+  <!--
+    | The demo for our '$isdefined:' function shortcut.
+    | @since JWare/AntX 0.5
+    -->
+  <target name="isdefined"
+          description="Demo of the $isdefined: funcut">
+    <echo message="Defined(ant.file): ${$isdefined:ant.file?property}"/>
+    <echo message="Defined(no-such-ref): ${$isdefined:nosuchref?reference}"/>
+    <property name="blankityblank" value="  "/>
+    <echo message="Defined([:space:]): ${$isdefined:${blankityblank}}"/>
+    <echo message="Defined([:malformed:]): ${$isdefined:a${bogus}value}"/>
+    <assign name="bogus" value="${bogus}" scope="project"/>
+    <echo message="Defined([:badref:]): ${$ref:bogus|$isdefined:}"/>
+    <assign name="blankityblank" value="  " scope="project"/>
+    <echo message="Defined([:space:]): ${$ref:blankityblank|$isdefined:}"/>
+    <echo message="Defined(helloworld): ${$isdefined:helloworld}"/>
+    <echo message="Defined(): ${$isdefined:}"/>
+  </target>
+
+
+  <!--
+    | The demo for our '$istype:' and '$istask:' function shortcuts.
+    | @since JWare/AntX 0.5
+    -->
+  <target name="typecheck"
+          description="Demo of the $typecheck: funcuts">
+    <echo message="IsType(fileset): ${$istype:fileset}"/>
+    <echo message="IsTask(property): ${$istask:property}"/>
+    <echo message="IsType(property): ${$istype:property}"/>
+    <echo message="IsType(nosuchtype): ${$istype:nosuchtype}"/>
+    <echo message="IsTask(nosuchtask): ${$istask:nosuchtask}"/>
+  </target>
+
+
+  <!--
+    | The demo of our '$list:' function shortcut.
+    | @since JWare/AntX 0.5
+    -->
+  <target name="list"
+          description="Demo of the $list: funcut">
+	<strings id="abcstrings">
+	  <string value="a"/>
+	  <string value="bB"/>
+	  <string value="c"/>
+	</strings>
+	<property name="abcptr" value="abcstrings"/>
+
+	<echo message="Test StringList Is: ${$list:abcstrings?dump}"/>
+
+	<echo message="abcstrings has ${$list:abcstrings?size} items"/>
+	<echo message="item[1] is '${$list:${abcptr}?1}'"/>
+	<echo message="item[0] is '${$list:${abcptr}?0}'"/>
+	<echo message="list:abcstrings?99: ${$list:abcstrings?99}"/>
+	<echo message="abcstrings(||) is: ${$list:abcstrings?values,,||}"/>
+
+    <property name="listlist" value="AA,BB,CC,DD"/>
+    <echo message="Inlined StringList Is: ${listlist}"/>
+ 
+    <echo message="inlined list has ${$list:${listlist}?size} items"/>
+    <echo message="inlined list[3] is '${$list:${listlist}?3}'"/>
+    <echo message="'x,y,z'[0] is '${$list:x,y,z?0}'"/>
+    <assign name="x,y,z" value="ERROR" scope="project"/>
+    <echo message="'x,y,z'[0] is '${$list:[x,y,z]?0}'"/>
+    
+    <property name="xyz" value="x,y,z"/>
+    <echo message="sizeof(empty-list) is ${$list:?size}"/>
+    <echo message="'x,y,z'(--) is: ${$list:[${xyz}]?values,,--}"/>
+  </target>
+
+
+  <!--
+    | The demo for our '$map:' function shortcut
+    | @since JWare/AntX 0.5
+    -->
+  <target name="map"
+          description="Demo of the $map: funcut">
+	  <macrodef name="maptrial">
+	    <attribute name="M"/>
+	    <sequential>
+        <property name="@{M}-id" value="@{M}"/>
+        <echo message="sizeof(@{M}): ${$map:@{M}?size}"/>
+        <echo message="isempty(@{M}): ${$map:@{M}?isempty}"/>
+        <echo message="keys(@{M}): ${$map:@{M}?keys}"/>
+        <echo message="keys(@{M},;): ${$map:@{M}?keys,,;}"/>
+        <echo message="values(@{M}): ${$map:${@{M}-id}?values}"/>
+        <echo message="DUMP(@{M}): ${$map:@{M}}"/>
+	    </sequential>
+	  </macrodef>
+	  <macrodef name="copytools">
+	    <attribute name="M"/>
+	    <attribute name="name"/>
+	    <sequential>
+        <createtask name="duptools">
+          <parameters id="@{name}"/>
+        </createtask>
+        <doforeach i="key" list="${$map:@{M}?keys}">
+          <altertask name="duptools" resolveproperties="yes">
+            <property name="${key}" value="${$map:@{M}?${key}}"/>
+          </altertask>
+        </doforeach>
+        <performtask name="duptools"/> 
+	    </sequential>
+	  </macrodef>
+	  <parameters id="emptymap"/>
+    <parameters id="tools">
+      <property name="junit" value="JavaUnit"/>
+      <property name="emma" value="EMMA"/>
+      <property name="pmd" value="PMD"/>
+      <property name="findbugs" value="FindBugs"/>
+      <property name="jdepend" value="jDepend"/>
+    </parameters>
+    <maptrial M="tools"/>
+    <echo message="tools->emma: ${$map:tools?emma}"/>
+    <echo message="tools->jdepend: ${$map:tools?jdepend,,--}"/>
+    <maptrial M="emptymap"/>
+    <copytools M="tools" name="toolscopy"/>
+    <maptrial M="toolscopy"/>
+  </target>
+
+
+
+  <!--
+    | The demo for our '$shorten:' function shortcut.
+    | @since JWare/AntX 0.5
+    -->
+  <target name="shorten"
+          description="Demo of the $shorten: funcut">
+    <echo message="ant.file(l): ${$shorten:${ant.file}}"/>
+    <echo message="ant.file(r): ${$property:ant.file|$shorten:?32,,right}"/>
+    <echo message="$TMP: ${$shorten:${TMP.dir}?,,left,,==>}"/>
+  </target>
+
+
+
+  <!--
+    | The demo for our '$truncate:' function shortcut.
+    | @since JWare/AntX 0.5
+    -->
+  <target name="truncate"
+          description="Demo of the $truncate: funcut">
+    <echo message="ant.file(r): ${$truncate:${ant.file}}"/>
+    <echo message="ant.file(l,17): ${$property:ant.file|$truncate:?17,,left}"/>
+    <echo message="abcdefghij's,10: ${$truncate:AbCdEfGhIjKlMnOpQrStUvWxYz:?10|$lowercase:}"/>
+  </target>
+
+
+
+  <!--
+    | The demo for our '$basename:' function shortcut.
+    | @since JWare/AntX 0.5
+    -->
+  <target name="basename"
+          description="Demo of the $basename: funcut">
+    <echo message="ant.file(1): ${$basename:${ant.file}}"/>
+    <echo message="ant.file(2): ${$basename:${ant.file}?xml}"/>
+    <echo message="basedir: ${$basename:${basedir}}"/>
+  </target>
+
+
+
+  <!--
+    | The demo for our '$dirname:' function shortcut.
+    | @since JWare/AntXtras 2.1.0
+    -->
+  <target name="dirname"
+          description="Demo of the $dirname: funcut">
+    <echo message="ant.file: ${$dirname:${ant.file}}"/>
+    <echo message="basedir: ${$dirname:${basedir}}"/>
+  </target>
+
+
+
+  <!--
+    | The demo for our '$loadfile:' function shortcut.
+    | @since JWare/AntXtras 3.0.0
+    -->
+  <target name="loadfile"
+          description="Demo of the $loadfile: funcut">
+    <pathproperty name="versionfile" value="${root.d}/VERSION.txt"/>
+    <do true="${$filenotempty:${versionfile}}">
+      <assign var="versiontext" value="${$loadfile:${versionfile}}"/>
+      <echo message="${line.separator}${$var:versiontext}"/>
+      <unassign var="versiontext"/>
+    </do>
+  </target>
+
+
+
+  <!--
+    | The demo for our various datetime function shortcuts.
+    | @since JWare/AntX 0.5
+    | @since JWare/AntXtras 3.0.0 added call to $isomillis:
+    -->
+  <target name="datetime"
+          description="Demo of the various datetime funcuts">
+    <echo message="The Current Time Is: ${$time:now}"/>
+    <echo message="The Current Short DateTime Is: ${$shortdatetime:now}"/>
+    <echo message="The Current GMT DateTime Is: ${$gmtdatetime:now}"/>
+    <echo message="The Current ChangeLog Date Is: ${$changelogdate:now}"/>
+    <echo message="The Current ISO Milliseconds Is: ${$isomillis:}"/>
+    <echo message="The Current ISO DateTime Is: ${$isodatetime:now}"/>
+    <echo message="A custom datetime String Is: ${$tstamp:?hh 'o''clock' a, zzzz}"/>
+    <echo message="A duration value: ${$duration:10000000}"/>
+    <echo message="Some milliseconds(3m+279s+123ms): ${$millis:3m+279s+123ms}"/>
+  </target>
+
+
+
+  <!--
+    | The demo for our '$password:'function shortcut.
+    | @since JWare/AntX 0.5
+    -->
+
+  <target name="password"
+          description="Demo of the $password: funcut">
+    <newtempfile prefix="PWF" suffix=".seekrits" 
+        pathproperty="jware.antxtras.defaults.passwordfile">
+      <line value="frank=achoo!"/>
+      <line value="susan=bleech.."/>
+    </newtempfile>
+
+    <echo message="(1) Frank's password: ${$password:frank}"/>
+    <echo message="(1) Susan's password: ${$password:susan}"/>
+
+    <datadef name="passwords">
+      <parameters>
+        <parameter name="jennifer" value="happyfunbags"/>
+        <parameter name="frank" value="ACHOO!"/>
+      </parameters>
+    </datadef>
+
+    <copyreference refid="passwords" torefid="run.passwords"/>
+
+    <overlay defaults.password="anonymoose">
+      <echo message="(2) Default Password Is: ${defaults.password}"/>
+      <echo message="(2) Frank's NEW password: ${$password:frank}"/>
+      <echo message="(2) Jennifer's password: ${$password:jennifer}"/>
+      <echo message="(2) Susan's password: ${$password:susan}"/> <!-- UNDEFINED (default) -->
+    </overlay>
+
+    <copyproperty name="user.pwfile" value="${user.home}/.ant/.private/run.passwords"
+        transform="ospath"/>
+    <tally trueproperty="pwfile.exists">
+      <filenotempty path="${user.pwfile}"/>
+    </tally>
+
+    <unassign reference="run.passwords"/>
+
+    <do if="pwfile.exists">
+      <echo message="User password file: ${$ospath:${user.home}/.ant/.private/run.passwords} FOUND"/>
+      <locals name="pwfile.property">
+        <property name="jware.antxtras.defaults.passwordfile"/>
+      </locals>
+      <isolate block="pwfile.property">
+        <echo message="(3) Frank's password: ${$password:frank}"/>
+        <echo message="(3) NightlyBuild's password: ${$password:nightlybuild}"/> <!-- UNDEFINED -->
+      </isolate>
+    </do>
+    <echo message="(4) Frank's OLD password: ${$password:frank}"/>
+  </target>
+  
+
+  <!--
+    | The demo for our '$transform:' function shortcut. DO THIS LAST.
+    | @since JWare/AntX 0.5
+    | @since JWare/AntXtras 3.0.0 removed obsolete datetime related transforms
+    -->
+  <target name="transform" depends="begin"
+          description="Demo of the $transform: funcuts">
+    <property name="sentence" value="  Bucket Of Trash "/>
+    
+    <echo message="The trimmed sentence:'${$trim:${sentence}}'"/>
+    <echo message="The stripped sentence:'${$stripws: Buc ket O f  Trash }'"/>
+
+    <!-- -->
+    <echo message="lowercased MixEdCasE: ${$lowercase:MixEdCasE}"/>
+    <echo message="UPPERCASED MixEdCasE: ${$uppercase:MixEdCasE}"/>
+    <echo message="UPPERCASED sentence:'${$stripws: Buc ket O f  Trash |$uppercase:}'"/>
+    
+    <echo message="ospathurl(TMP.dir): ${$ospathurl:${TMP.dir}}"/>
+    <echo message="ospath(TMP.url): ${$ospath:${TMP.url}}"/>
+
+    <!-- -->
+    <echo message="decimal(1): ${$decimal:1}"/>
+    <echo message="decimal(0): ${$decimal:0}"/>
+    <echo message="decimal(2.5): ${$decimal:2.5}"/>
+    <echo message="decimal(0.0101): ${$decimal:0.0101}"/>
+    <echo message="decimal(PI=3.1415926535): ${$decimal:3.1415926535}"/>
+
+    <!-- -->
+    <echo message="Transform decimal(garbage): ${$transform:garbageIN?decimal}"/>
+    <echo message="Transform ospathurl(garbage): ${$pathurl:garbageIN}"/>
+ 
+
+    <!-- -->
+    <assign var="delta" op="-now" fromvariable="start" copyproperty="delta"/>
+    <echo message="We Lasted: ${$var:delta|$duration:}"/>
+  </target>
+
+  <!-- ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -->
+
+  <!--
+    | Main entry points. Calls all the AntXtras function shortcut demos.
+    | Note that the depends lists ordering is important for target='main'.
+    | @since JWare/AntX 0.5
+    | @since JWare/AntXtras 3.0.0 expanded for newer funcuts too
+    -->
+  <target name="cat:info"
+          description="[**] Calls all fixture info funcut demos"
+          depends="os,vendorinfo,fixture,defaults,password,list,map"/>
+  
+  <target name="cat:condition"
+          description="[**] Calls all condition funcut demos"
+          depends="typecheck,truefalse,iszero,not,isdefined"/>
+ 
+  <target name="cat:filesystem"
+          description="[**] Calls all filesystem funcut demos"
+          depends="basename,dirname,loadfile"/>
+
+  <target name="cat:general"
+          description="[**] Calls all utility funcut demos"
+          depends="begin,random,newrefid,shorten,truncate,datetime,transform"/>
+
+  <target name="main"
+          description="[**] Calls ALL builtin funcut demos."
+          depends="begin,cat:info,cat:condition,cat:general,cat:filesystem"/>
+
+
+  <target name="tryit" depends="begin">
+    <macrodef name="writefinished">
+       <attribute name="op"/>
+       <attribute name="started"/>
+       <sequential>
+          <assign var="_whenfinished" op="-now" fromvariable="@{started}"/>
+          <echo>
+End Hour: ${$tstamp:now?hh 'o''clock' a, zzzz}
+Duration: ${$var:_whenfinished|$duration:}
+          </echo>
+       </sequential>
+    </macrodef>
+    <sleep seconds="2"/>
+    <writefinished op="test" started="start"/>
+  </target>
+
+</project>
+
+<!-- $Id: antxtras-funcuts-demo.xml 1226 2011-08-13 19:42:32Z ssmc $ -->

boostrapjars/log4ant/dep/antxtras/etc/antxtras-install-check.xml

+<?xml version="1.0"?>
+
+<!--
+   |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
+   | Do-nothing project that ensures Ant can locate and load JWare/AntXtras |
+   | tasks and types. Expects to be run from <ANTXTRAS_HOME>/etc directory. |
+   |                                                                        |
+   | (c) 2003-2012 Sandbox Software MC (SSMC). All rights reserved.         |
+   |________________________________________________________________________|
+   -->
+
+<project name="first-install" xmlns:oja="jwaresoftware.antxtras" 
+         basedir="." default="check-core">
+ 
+  <description>Verifies a binary AntXtras installation re: our How-Tos</description>
+
+  <!-- To locate AntXtras distribution .jar files per type of load -->
+  <dirname property="root.d" file="${basedir}"/>
+
+
+  <!-- 
+    || 1. Loading core antlib into the standard 'blank' Ant namespace
+    -->
+  <target name="check-core" unless="INITED"
+    description="Checks can load core AntXtras antlib into standard namespace">
+
+    <taskdef onerror="failall"
+      resource="org/jwaresoftware/antxtras/install/antlib.xml">
+      <classpath>
+        <fileset dir="${root.d}/lib">
+          <include name="jw-antxtras.jar"/>
+        </fileset>
+      </classpath>
+    </taskdef>
+
+    <vendorinfo name="antxtras"/>
+    <show message="RELEASE: ${antxtras.build.label}"/>
+    <property name="INITED" value="yes"/>
+  </target>
+
+
+  <!-- 
+    || 2. Loading all antlibs into the standard 'blank' Ant namespace
+    -->
+  <target name="check-advanced" unless="INITED"
+    description="Checks can load all AntXtras antlibs into standard namespace">
+
+    <taskdef onerror="failall"
+      resource="org/jwaresoftware/antxtras/install/antlib-advanced.xml">
+      <classpath>
+        <fileset dir="${root.d}/lib">
+          <include name="*.jar"/>
+        </fileset>
+      </classpath>
+    </taskdef>
+
+    <show message="RELEASE: ${$vendorinfo:antxtras?label}"/>
+    <property name="INITED" value="yes"/>
+  </target>
+
+
+  <!-- 
+    || 3. Loading core antlib into its own Ant namespace 'oja'
+    -->
+  <target name="check-ns" unless="INITED"
+    description="Checks can load core AntXtras antlib into own 'oja' namespace">
+
+    <taskdef onerror="failall" 
+      uri="jwaresoftware.antxtras"
+      resource="org/jwaresoftware/antxtras/install/antlib.xml">
+      <classpath>
+        <fileset dir="${root.d}/lib">
+          <include name="jw-antxtras.jar"/>
+        </fileset>
+      </classpath>
+    </taskdef>
+
+    <oja:vendorinfo/>
+    <oja:show message="RELEASE: ${antxtras.build.label}"/>
+    <property name="INITED" value="yes"/>
+  </target>
+
+</project>
+
+<!-- $Id: antxtras-install-check.xml 1390 2012-07-28 19:38:08Z ssmc $ -->

boostrapjars/log4ant/dep/antxtras/etc/ez-build-README.txt

+-----------------------------------------------------------------------
+How To Build Public Source Distribution:
+-----------------------------------------------------------------------
+
+ 1. [Optional] Download the latest project source distribution and
+    any required third-party libraries (see below).
+
+ 2. [Optional] Rename ez-build.xml "build.xml". Otherwise use
+    'ant -f' option with the ez-build.xml file.
+
+ 3. [Optional] Configure ez-build.properties as appropriate for your
+    environment.
+
+ 4. Verify build classpath is appropriate (ez-build does *NOT*
+    assume any class path information, it uses whatever the system
+    classpath is defined to be).
+
+ 5. Run ant from local work area ('ant -file ez-build.xml' if 
+    step 2 skipped). This produces a directory 'out' containing the
+    generated antlib jar(s), javadocs, and a source jar file suitable
+    for linking in an IDE or uploading to an artifact repository.
+
+
+Required Third-party Libraries
+
+ Any libraries, other than Ant, that the project requires can be  
+ found in the "bin_withdeps" binary distribution. If no such distro
+ exists then only Ant is required. You are free to try versions of
+ the dependencies that are newer than the ones we ship. However, 
+ if you do this, you should use the project's programmer test suites
+ to verify that the newer libraries are completely compatible.
+
+-----------------------------------------------------------------------
+$Id: ez-build-README.txt 1390 2012-07-28 19:38:08Z ssmc $

boostrapjars/log4ant/dep/antxtras/etc/ez-build.mf

+Built-By: ssmc
+Specification-Title: JWare AntXtras/Foundation
+Specification-Version: 3.5.0
+Specification-Vendor: Sandbox Software MC (SSMC)
+Implementation-Title: JWare AntXtras/Foundation 3.5.0b1, Jul-28-2012
+Implementation-Version: 3.5.0
+Implementation-Vendor: Sandbox Software MC (SSMC)

boostrapjars/log4ant/dep/antxtras/etc/ez-build.properties

+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# $Id: ez-build.properties 1390 2012-07-28 19:38:08Z ssmc $
+#
+# Configure this file as required for the public source build.
+#
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+build.builder.id=${user.name}
+build.compiler=modern
+javac.depend=false
+javac.source=1.5
+javac.isdebug=on
+javac.isopt=off
+javadoc.isdebug=true
+javadoc.access=protected
+javadoc.use=true
+javadoc.offline=false
+javadoc.j2se.url=http://download.oracle.com/javase/${javac.source}/docs/api/
+javadoc.j2se.packagelist=http://download.oracle.com/javase/${javac.source}/docs/api/
+#
+#
+packagename=antxtras-3.5.0b1
+jarfile=jw-${packagename}.jar
+javadoc.title=JWare/AntXtras Foundation API Documentation
+javadoc.header=JWare AntXtras/Foundation-3.5.0b1
+javadoc.label=<h1>${javadoc.title}</h1>
+javadoc.footer=${javadoc.header}
+javadoc.bottom=\
+<i><div align="center"><font size="-1">\
+Copyright (c) 2002-2012 Sandbox Software MC. All Rights Reserved.\
+</font></div></i>

boostrapjars/log4ant/dep/antxtras/etc/ez-build.xml

+<?xml version="1.0"?>
+
+<!-- ======================================================================= -->
+<!--                                                                         -->
+<!-- Ant script to generate library and javadocs from public sources (.zip). -->
+<!--                                                                         -->
+<!-- ======================================================================= -->
+
+<project name="EZ Build" default="package">
+  <description>Builds public AntXtras-based source distribution</description>
+
+  <!-- ..................................................................... -->
+  <!-- | Required file(s) and directories for any of this to work...       | -->
+  <!-- ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -->
+  <dirname property="root" file="${ant.file}"/>
+
+  <!-- // NB: no point in going any further if the 'main' directory missing -->
+  <available property="src.present" file="${root}/../src/main" type="dir"/>
+  <fail unless="src.present" message="Unable to locate main src directory"/>
+  <available property="mf.present" file="${root}/ez-build.mf" type="file"/>
+  <fail unless="mf.present" message="Unable to locate default jar manifest"/>
+
+  <!-- ..................................................................... -->
+  <!-- | Initialize defaults that aren't specified by builder properties   | -->
+  <!-- ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -->
+
+  <target name="properties">
+    <property file="${root}/ez-build.properties"/>
+    <tstamp prefix="ez"/>
+
+    <!-- // NB: these defaults ignored if specified in ez-build.properties -->
+    <property name="build.sysclasspath" value="first"/>
+    <property name="src" value="${root}/../src/main"/>
+    <property name="out" value="${root}/../out"/>
+    <property name="lib" value="${out}/lib"/>
+    <property name="api" value="${out}/api"/>
+    <property name="packagename" value="untitled"/>
+    <property name="jarfile" value="${packagename}.jar"/>
+    <property name="manifest" value="${root}/ez-build.mf"/>
+
+    <!-- // NB: specify resource files to be copied into class directories -->
+    <patternset id="copyresources">
+      <exclude name="**/*.java"/>
+      <exclude name="**/*.*,in"/>
+      <exclude name="**/package.html"/>
+      <exclude name="**/overview.html"/>
+      <exclude name="**/doc-files/"/>
+    </patternset>
+  </target>
+
+  <!-- ..................................................................... -->
+  <!-- | Clobbers all generated outputs (classes,jars,javadocs).           | -->
+  <!-- ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -->
+  <target name="cleanworkspace" depends="properties"
+          description="o Clobbers all generated artifacts (out)">
+    <delete quiet="true" includeEmptyDirs="true">
+      <fileset dir="${out}"/>
+    </delete>
+  </target>
+
+  <!-- ..................................................................... -->
+  <!-- | Generates all classes and antlib (no tests included by default)   | -->
+  <!-- ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -->
+  <target name="antlib" depends="properties"
+          description="o Generates main antlib jar">
+    <mkdir dir="${out}/classes"/>
+
+    <javac srcdir="${src}" destdir="${out}/classes"
+           debug="${javac.isdebug}" deprecation="${javac.isdebug}"
+           optimize="${javac.isopt}" depend="${javac.depend}"
+           source="${javac.source}"
+           includes="**/*.java"
+           excludes="**/doc-files/">
+
+      <!-- UNCOMMENT IF MERGED WITH A '_withdeps' DISTRO.
+      <classpath>
+        <fileset dir="${root}/../dep">
+          <include name="*/lib/*.jar"/>
+        </fileset>
+      </classpath>
+      -->
+
+    </javac>
+
+    <copy filtering="false" todir="${out}/classes">
+      <fileset dir="${src}">
+        <patternset refid="copyresources"/>
+      </fileset>
+    </copy>
+
+    <mkdir dir="${lib}"/>
+    <jar index="true"
+         basedir= "${out}/classes"
+         destfile="${lib}/${jarfile}"
+         manifest="${manifest}"/>
+    
+    <checksum algorithm="SHA" fileext=".sha1" 
+      format="MD5SUM"
+      file="${lib}/${jarfile}"
+      />
+  </target>
+
+  <!-- ..................................................................... -->
+  <!-- | Generates javadocs for all non-test sources (needs at least 1.4)  | -->
+  <!-- ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -->
+  <target name="apidocs" depends="properties"
+          description="o Generates javadocs">
+    <mkdir dir="${api}"/>
+
+    <javadoc sourcepath="${src}"
+             destdir="${api}"
+             windowtitle="${javadoc.title}"
+             author="true"
+             version="true"
+             access="${javadoc.access}"
+             use="${javadoc.use}"
+             source="${javac.source}"
+             failonerror="false">
+        <tag name=".safety" scope="types,methods,fields" description="Thread Safety:"/>
+        <tag name=".caveat" scope="types,methods,constructors" description="Caveats:"/>
+        <tag name=".group" enabled="false" scope="types" description="Grouping:"/>
+        <tag name=".stereo" scope="types,fields" description="Stereotype:"/>
+        <tag name=".stereotype" scope="types,fields" description="Stereotype:"/>
+        <tag name=".expects" scope="types,methods,constructors" description="Expects:"/>
+        <tag name=".pattern" scope="types,methods,fields" description="Patterns:"/>
+        <tag name=".side-effect" scope="types,methods,constructors" description="Side Effects:"/>
+        <tag name=".sideeffect" scope="types,methods,constructors" description="Side Effects:"/>
+        <tag name=".bug" enabled="${javadoc.isdebug}" scope="types,methods,constructors" description="Bugs:" />
+        <tag name=".todo" enabled="${javadoc.isdebug}" scope="types,methods,constructors" description="To Do:" />
+        <tag name=".ideas" enabled="false" scope="types" description="Ideas:"/>
+        <tag name=".impl" enabled="${javadoc.isdebug}" scope="types,methods,fields,constructors" description="[Impl Note]:" />
+        <header><![CDATA[${javadoc.header}]]></header>
+        <footer><![CDATA[${javadoc.footer}]]></footer>
+        <doctitle><![CDATA[${javadoc.label}]]></doctitle>
+        <bottom><![CDATA[${javadoc.bottom}]]></bottom>
+    </javadoc>
+  </target>
+
+  <!-- ..................................................................... -->
+  <!-- | Generates source package for all non-test sources                 | -->
+  <!-- ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -->
+  <target name="sources" depends="properties"
+          description="o Generates source jar">
+    <basename property="jarbase" file="${jarfile}" suffix=".jar"/>
+    <property name="srcjarfile" value="${jarbase}-sources.jar"/>
+    <jar destfile="${out}/${srcjarfile}" manifest="${manifest}">
+      <zipfileset dir="${src}"/>
+    </jar>
+  </target>
+
+  <!-- ..................................................................... -->
+  <!-- | Does full -*CLEAN*- release ==> clobber all existing first!       | -->
+  <!-- ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -->
+  <target name="package" depends="properties,cleanworkspace,antlib,apidocs,sources"
+          description="o Generates -*clean*- release of antlib, src, apidocs">
+    <property name="pkg" value="${packagename}.zip"/>
+    <zip destfile="${out}/${pkg}"
+      comment="${ez.TODAY} ${ez.TSTAMP}: ${packagename} (local build)">
+        <zipfileset dir="${out}" prefix="${packagename}">
+          <include name="lib/*"/>
+          <include name="api/**"/>
+          <include name="${srcjarfile}"/>
+        </zipfileset>
+        <zipfileset dir="${root}/.." prefix="${packagename}">
+          <include name="VERSION.txt"/>
+          <include name="LICENS*.txt"/>
+        </zipfileset>
+    </zip>
+    <checksum file="${out}/${pkg}"
+      algorithm="SHA" fileext=".sha1" format="MD5SUM" />
+    <checksum file="${out}/${pkg}"
+      algorithm="MD5" fileext=".md5" format="MD5SUM"/>
+    <echo level="info"
+       message="*** PACKAGE: ${pkg} and .sha1 hash files"/>
+  </target>
+
+</project>
+
+<!-- $Id: ez-build.xml 1226 2011-08-13 19:42:32Z ssmc $ -->

boostrapjars/log4ant/dep/antxtras/lib/jw-antxtras-advanced.jar

Binary file added.

boostrapjars/log4ant/dep/antxtras/lib/jw-antxtras-advanced.jar.sha1

+823643e7c9e4b706c66be2461a4c8b94acb1cfd1 *jw-antxtras-advanced.jar

boostrapjars/log4ant/dep/antxtras/lib/jw-antxtras-antunit.jar

Binary file added.

boostrapjars/log4ant/dep/antxtras/lib/jw-antxtras-antunit.jar.sha1

+70a102070315ef44b0e7eb89f9e76dfe6e4a7b91 *jw-antxtras-antunit.jar

boostrapjars/log4ant/dep/antxtras/lib/jw-antxtras.jar

Binary file added.

boostrapjars/log4ant/dep/antxtras/lib/jw-antxtras.jar.sha1

+7770e190088d0e2c4260f91b47c0c676f0615920 *jw-antxtras.jar

boostrapjars/log4ant/dep/json-simple/etc/json.lex

+package org.json.simple.parser;
+
+%%
+
+%{
+private StringBuffer sb=new StringBuffer();
+
+int getPosition(){
+	return yychar;
+}
+
+%}
+
+%table
+%unicode
+%state STRING_BEGIN
+
+%yylexthrow ParseException
+%char
+
+HEX_D = [a-fA-F0-9]
+INT = [-]?[0-9]+
+DOUBLE = {INT}((\.[0-9]+)?([eE][-+]?[0-9]+)?)
+WS = [ \t\r\n]
+UNESCAPED_CH = [^\"\\]
+FALLBACK_CH = .
+%%
+
+<STRING_BEGIN> \"	 			{ yybegin(YYINITIAL);return new Yytoken(Yytoken.TYPE_VALUE, sb.toString());}
+<STRING_BEGIN> {UNESCAPED_CH}+	{ sb.append(yytext());}
+<STRING_BEGIN> \\\" 			{sb.append('"');}
+<STRING_BEGIN> \\\\				{sb.append('\\');}
+<STRING_BEGIN> \\\/				{sb.append('/');}
+<STRING_BEGIN> \\b				{sb.append('\b');}
+<STRING_BEGIN> \\f				{sb.append('\f');}
+<STRING_BEGIN> \\n				{sb.append('\n');}
+<STRING_BEGIN> \\r				{sb.append('\r');}
+<STRING_BEGIN> \\t				{sb.append('\t');}
+<STRING_BEGIN> \\u{HEX_D}{HEX_D}{HEX_D}{HEX_D}	{	try{
+														int ch=Integer.parseInt(yytext().substring(2),16);
+														sb.append((char)ch);
+													}
+													catch(Exception e){
+														throw new ParseException(yychar, ParseException.ERROR_UNEXPECTED_EXCEPTION, e);
+													}
+												}
+<STRING_BEGIN> \\				{sb.append('\\');}
+												
+<YYINITIAL> \" 					{ sb.delete(0, sb.length());yybegin(STRING_BEGIN);}
+<YYINITIAL> {INT}				{ Long val=Long.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE, val);}
+<YYINITIAL> {DOUBLE}			{ Double val=Double.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE, val);}
+<YYINITIAL> "true"|"false"		{ Boolean val=Boolean.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE, val);}
+<YYINITIAL> "null"				{ return new Yytoken(Yytoken.TYPE_VALUE, null);}
+<YYINITIAL> "{"					{ return new Yytoken(Yytoken.TYPE_LEFT_BRACE,null);}
+<YYINITIAL> "}"					{ return new Yytoken(Yytoken.TYPE_RIGHT_BRACE,null);}
+<YYINITIAL> "["					{ return new Yytoken(Yytoken.TYPE_LEFT_SQUARE,null);}
+<YYINITIAL> "]"					{ return new Yytoken(Yytoken.TYPE_RIGHT_SQUARE,null);}
+<YYINITIAL> ","					{ return new Yytoken(Yytoken.TYPE_COMMA,null);}
+<YYINITIAL> ":"					{ return new Yytoken(Yytoken.TYPE_COLON,null);}
+<YYINITIAL> {WS}+		    	{}
+<YYINITIAL> {FALLBACK_CH}		{ throw new ParseException(yychar, ParseException.ERROR_UNEXPECTED_CHAR, new Character(yycharat(0)));}

boostrapjars/log4ant/dep/json-simple/lib/json_simple.jar

Binary file added.

boostrapjars/log4ant/dep/slf4j-log4j12/lib/slf4j-log4j12.jar

Binary file added.

boostrapjars/log4ant/dep/slf4j/etc/pom.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.slf4j</groupId>
+  <artifactId>slf4j-parent</artifactId>
+  <version>1.6.6</version>
+
+  <packaging>pom</packaging>
+  <name>SLF4J</name>
+  <description>Top SLF4J project pom.xml file</description>
+  <url>http://www.slf4j.org</url>
+
+  <organization>
+    <name>QOS.ch</name>
+    <url>http://www.qos.ch</url>
+  </organization>
+  <inceptionYear>2005</inceptionYear>
+
+  <licenses>
+    <license>
+      <name>MIT License</name>
+      <url>http://www.opensource.org/licenses/mit-license.php</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+
+  <scm>
+    <url>https://github.com/ceki/slf4j</url>
+    <connection>git@github.com:ceki/slf4j.git</connection>
+  </scm>
+
+  <properties>
+    <slf4j.api.minimum.compatible.version>1.6.0
+    </slf4j.api.minimum.compatible.version>
+    <cal10n.version>0.7.4</cal10n.version>
+    <log4j.version>1.2.17</log4j.version>
+    <logback.version>1.0.4</logback.version>
+  </properties>
+
+  <developers>
+    <developer>
+      <id>ceki</id>
+      <name>Ceki Gulcu</name>
+      <email>ceki@qos.ch</email>
+    </developer>
+  </developers>
+
+  <modules>
+    <module>slf4j-api</module>
+    <!--<module>slf4j-scala-api</module>-->
+    <module>slf4j-simple</module>
+    <module>slf4j-nop</module>
+    <module>slf4j-jdk14</module>
+    <module>slf4j-log4j12</module>
+    <module>slf4j-jcl</module>
+    <module>slf4j-ext</module>
+    <module>jcl-over-slf4j</module>
+    <module>log4j-over-slf4j</module>
+    <module>jul-to-slf4j</module>
+    <module>integration</module>
+    <module>slf4j-site</module>
+    <module>slf4j-migrator</module>
+  </modules>
+
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+
+  <dependencyManagement>
+    <dependencies>
+
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-jdk14</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>log4j</groupId>
+        <artifactId>log4j</artifactId>
+        <version>${log4j.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>ch.qos.cal10n</groupId>
+        <artifactId>cal10n-api</artifactId>
+        <version>${cal10n.version}</version>
+      </dependency>
+
+    </dependencies>
+  </dependencyManagement>
+
+
+  <build>
+    <extensions>
+      <extension>
+        <groupId>org.apache.maven.wagon</groupId>
+        <artifactId>wagon-ssh</artifactId>
+        <version>2.0</version>
+      </extension>
+    </extensions>
+
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+        <filtering>true</filtering>
+      </resource>
+    </resources>
+
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>2.3.2</version>
+        <configuration>
+          <source>1.3</source>
+          <target>1.3</target>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>2.3.1</version>
+      </plugin>
+
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.10</version>
+        <configuration>
+          <forkMode>once</forkMode>
+          <reportFormat>plain</reportFormat>
+          <trimStackTrace>false</trimStackTrace>
+          <excludes>
+            <exclude>**/AllTest.java</exclude>
+            <exclude>**/PackageTest.java</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-source-plugin</artifactId>
+        <version>2.1.2</version>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <version>2.2</version>
+        <configuration>
+          <descriptors>
+            <descriptor>src/main/assembly/source.xml</descriptor>
+          </descriptors>
+          <finalName>slf4j-${project.version}</finalName>
+          <appendAssemblyId>false</appendAssemblyId>
+          <outputDirectory>target/site/dist/</outputDirectory>
+        </configuration>
+      </plugin>
+
+      <!-- as suggested in http://bugzilla.slf4j.org/show_bug.cgi?id=152 -->
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <version>1.7</version>
+        <executions>
+          <execution>
+            <id>parse-version</id>
+            <goals>
+              <goal>parse-version</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
+      <!-- ====== site plugin ===== -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <version>3.0</version>
+        <configuration>
+          <reportPlugins>
+            <plugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-jxr-plugin</artifactId>
+              <version>2.3</version>
+              <configuration>
+                <aggregate>true</aggregate>
+                <javadocDir>target/site/apidocs/</javadocDir>
+                <linkJavadoc>true</linkJavadoc>
+              </configuration>
+            </plugin>
+            <plugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-javadoc-plugin</artifactId>
+              <version>2.8</version>
+              <configuration>
+                <aggregate>true</aggregate>
+                <excludePackageNames>org.slf4j.migrator:org.slf4j.migrator.*
+                </excludePackageNames>
+                <links>
+                  <link>
+                    http://java.sun.com/j2se/1.5.0/docs/api
+                  </link>
+                </links>
+                <groups>
+                  <group>
+                    <title>SLF4J packages</title>
+                    <packages>org.slf4j:org.slf4j.*</packages>
+                  </group>
+
+                  <group>
+                    <title>SLF4J extensions</title>
+                    <packages>
+                      org.slf4j.profiler:org.slf4j.ext:org.slf4j.instrumentation:org.slf4j.agent
+                    </packages>
+                  </group>
+
+                  <group>
+                    <title>Jakarta Commons Logging packages</title>
+                    <packages>org.apache.commons.*</packages>
+                  </group>
+
+                  <group>
+                    <title>Apache log4j</title>
+                    <packages>org.apache.log4j</packages>
+                  </group>
+
+                  <group>
+                    <title>java.util.logging (JUL) to SLF4J bridge</title>
+                    <packages>org.slf4j.bridge</packages>
+                  </group>
+
+                </groups>
+              </configuration>
+            </plugin>