summaryrefslogtreecommitdiffstats
path: root/test/resources
diff options
context:
space:
mode:
authormattinger <[email protected]>2006-07-06 21:53:00 +0000
committermattinger <[email protected]>2006-07-06 21:53:00 +0000
commit1159111b7a71b72eb04326df33211e1733f7e742 (patch)
treef0a80c384f633e521649654ab78e6239cf5e0d6f /test/resources
Initial addition into subversion with build script changes
git-svn-id: file:///home/sven/projects/JOGL/temp/ant-contrib/svn/ant-contrib-code/trunk/ant-contrib@5 32d7a393-a5a9-423c-abd3-5d954feb1f2f
Diffstat (limited to 'test/resources')
-rw-r--r--test/resources/antclipse/.classpath9
-rw-r--r--test/resources/antclipse/antclipsetest.xml42
-rw-r--r--test/resources/antserver/antservertest.xml138
-rw-r--r--test/resources/antserver/clientfile.txt1
-rw-r--r--test/resources/design/designfiles/arraydepend.xml6
-rw-r--r--test/resources/design/designfiles/arraydepend2.xml6
-rw-r--r--test/resources/design/designfiles/arraydepend3.xml6
-rw-r--r--test/resources/design/designfiles/badxml.xml6
-rw-r--r--test/resources/design/designfiles/castdepend.xml6
-rw-r--r--test/resources/design/designfiles/catchdepend.xml6
-rw-r--r--test/resources/design/designfiles/declarejavautil.xml6
-rw-r--r--test/resources/design/designfiles/declarejavautilfail.xml8
-rw-r--r--test/resources/design/designfiles/declarejavax.xml6
-rw-r--r--test/resources/design/designfiles/declarejavaxpass.xml7
-rw-r--r--test/resources/design/designfiles/fielddepend.xml6
-rw-r--r--test/resources/design/designfiles/fieldrefdepend.xml6
-rw-r--r--test/resources/design/designfiles/innerclassdepend.xml6
-rw-r--r--test/resources/design/designfiles/instanceofdepend.xml6
-rw-r--r--test/resources/design/designfiles/interfacedepend.xml6
-rw-r--r--test/resources/design/designfiles/localvardepend.xml9
-rw-r--r--test/resources/design/designfiles/localvarrefdepend.xml6
-rw-r--r--test/resources/design/designfiles/missingattribute.xml6
-rw-r--r--test/resources/design/designfiles/multipleerrors.xml7
-rw-r--r--test/resources/design/designfiles/newdepend.xml6
-rw-r--r--test/resources/design/designfiles/newdepend2.xml6
-rw-r--r--test/resources/design/designfiles/nodebugoption.xml6
-rw-r--r--test/resources/design/designfiles/nojar.xml6
-rw-r--r--test/resources/design/designfiles/paramdepend.xml6
-rw-r--r--test/resources/design/designfiles/passlocaldepend.xml6
-rw-r--r--test/resources/design/designfiles/pathelementpath.xml7
-rw-r--r--test/resources/design/designfiles/putstatic.xml6
-rw-r--r--test/resources/design/designfiles/recursion.xml6
-rw-r--r--test/resources/design/designfiles/recursion2.xml6
-rw-r--r--test/resources/design/designfiles/recursion3.xml5
-rw-r--r--test/resources/design/designfiles/returnvaldepend.xml6
-rw-r--r--test/resources/design/designfiles/signatureexceptiondepend.xml6
-rw-r--r--test/resources/design/designfiles/staticdepend.xml6
-rw-r--r--test/resources/design/designfiles/staticfield2depend.xml6
-rw-r--r--test/resources/design/designfiles/staticfielddepend.xml6
-rw-r--r--test/resources/design/designfiles/staticfinaldepend.xml6
-rw-r--r--test/resources/design/designfiles/superdepend.xml6
-rw-r--r--test/resources/design/designfiles/warfailure.xml6
-rw-r--r--test/resources/design/designfiles/warsuccess.xml6
-rw-r--r--test/resources/design/src/mod/arraydepend/ClassDependsOnArray.java32
-rw-r--r--test/resources/design/src/mod/arraydepend2/ClassDependsOnArray.java32
-rw-r--r--test/resources/design/src/mod/arraydepend3/ClassDependsOnArray.java34
-rw-r--r--test/resources/design/src/mod/castdepend/ClassDependsOnCast.java32
-rw-r--r--test/resources/design/src/mod/catchdepend/ClassDependsOnCatch.java37
-rw-r--r--test/resources/design/src/mod/declarejavautil/ClassDependsOnJavaUtil.java30
-rw-r--r--test/resources/design/src/mod/declarejavax/ClassDependsOnJavax.java31
-rw-r--r--test/resources/design/src/mod/dummy/DummyClass.java33
-rw-r--r--test/resources/design/src/mod/dummy/DummyException.java27
-rw-r--r--test/resources/design/src/mod/dummy/DummyInterface.java27
-rw-r--r--test/resources/design/src/mod/dummy/DummyRuntimeException.java27
-rw-r--r--test/resources/design/src/mod/fielddepend/ClassDependsOnField.java31
-rw-r--r--test/resources/design/src/mod/fieldrefdepend/ClassDependsOnReferenceInFieldDeclaration.java31
-rw-r--r--test/resources/design/src/mod/innerclassdepend/InnerClassDependsOnSuper.java32
-rw-r--r--test/resources/design/src/mod/instanceofdepend/ClassDependsOnInstanceOf.java35
-rw-r--r--test/resources/design/src/mod/interfacedepend/ClassDependsOnInterfaceMod2.java31
-rw-r--r--test/resources/design/src/mod/localvardepend/ClassDependsOnLocalVar.java34
-rw-r--r--test/resources/design/src/mod/localvarrefdepend/ClassDependsOnLocalVariableReference.java32
-rw-r--r--test/resources/design/src/mod/newdepend/ClassDependsOnNew.java32
-rw-r--r--test/resources/design/src/mod/newdepend2/ClassDependsOnNewInField.java30
-rw-r--r--test/resources/design/src/mod/nodebugoption/ClassDependsOnLocalVar.java35
-rw-r--r--test/resources/design/src/mod/paramdepend/ClassDependsOnParameter.java32
-rw-r--r--test/resources/design/src/mod/passlocaldepend/ClassDependsOnClassInSamePackage.java30
-rw-r--r--test/resources/design/src/mod/passlocaldepend/FakeClass.java27
-rw-r--r--test/resources/design/src/mod/putstatic/ClassDependsOnNothing.java32
-rw-r--r--test/resources/design/src/mod/recursion/client/ClassDependsOnSubPackage.java32
-rw-r--r--test/resources/design/src/mod/recursion/rec/a/FakeClass.java27
-rw-r--r--test/resources/design/src/mod/recursion2/dependency/Dependency.java27
-rw-r--r--test/resources/design/src/mod/recursion2/rec/client/SubpackageClassDependsOnPackage.java32
-rw-r--r--test/resources/design/src/mod/recursion3/client/SubpackageClassDependsOnSubpackage.java32
-rw-r--r--test/resources/design/src/mod/recursion3/svc/DependencyClass.java27
-rw-r--r--test/resources/design/src/mod/returnvaldepend/ClassDependsOnReturnValue.java32
-rw-r--r--test/resources/design/src/mod/signatureexceptiondepend/ClassDependsOnExceptionInMethodSignature.java32
-rw-r--r--test/resources/design/src/mod/staticdepend/ClassDependsOnStatic.java32
-rw-r--r--test/resources/design/src/mod/staticfield2depend/ClassDependsOnStaticField.java32
-rw-r--r--test/resources/design/src/mod/staticfielddepend/ClassDependsOnStaticField.java32
-rw-r--r--test/resources/design/src/mod/staticfinaldepend/ClassDependsOnConstant.java32
-rw-r--r--test/resources/design/src/mod/superdepend/ClassDependsOnSuperMod2.java30
-rw-r--r--test/resources/design/src/mod/temp/Factory.java32
-rw-r--r--test/resources/design/src/mod/warfailure/ClassDependsOnSuperMod2.java30
-rw-r--r--test/resources/design/src/mod/warsuccess/ClassDependsOnSuperMod2.java30
-rw-r--r--test/resources/design/verifydesign.xml440
-rw-r--r--test/resources/design/web.xml0
-rw-r--r--test/resources/logic/antcallbacktest.xml54
-rw-r--r--test/resources/logic/asserttest.xml86
-rw-r--r--test/resources/logic/foreach.xml104
-rw-r--r--test/resources/logic/if.xml146
-rw-r--r--test/resources/logic/limittest.xml65
-rw-r--r--test/resources/logic/outofdate.xml155
-rw-r--r--test/resources/logic/switch.xml87
-rw-r--r--test/resources/logic/throw.xml15
-rw-r--r--test/resources/logic/timestampselector.xml76
-rw-r--r--test/resources/logic/trycatch.xml108
-rw-r--r--test/resources/math/mathtest.xml22
-rw-r--r--test/resources/platform/osfamily.xml20
-rw-r--r--test/resources/platform/shellscript.xml108
-rw-r--r--test/resources/property/pathtofileset.xml45
-rw-r--r--test/resources/property/propertycopy.xml33
-rw-r--r--test/resources/property/propertyselector.properties7
-rw-r--r--test/resources/property/propertyselector.xml34
-rw-r--r--test/resources/property/variabletest.xml82
-rw-r--r--test/resources/walls/compilewithwalls.xml237
-rw-r--r--test/resources/walls/dependsafter.xml7
-rw-r--r--test/resources/walls/packageB-break.xml9
-rw-r--r--test/resources/walls/testA/mod/modA/ModuleA.java10
-rw-r--r--test/resources/walls/testA/mod/modB/ModuleB.java6
-rw-r--r--test/resources/walls/testB/mod/modA/TestBModuleA.java7
-rw-r--r--test/resources/walls/testB/mod/modB/TestBModuleB.java9
-rw-r--r--test/resources/walls/testC/mod/TestCModule.java11
-rw-r--r--test/resources/walls/testC/mod/modA/TestCModuleA.java7
-rw-r--r--test/resources/walls/testC/mod/modB/TestCModuleB.java7
-rw-r--r--test/resources/walls/walls.xml9
115 files changed, 3714 insertions, 0 deletions
diff --git a/test/resources/antclipse/.classpath b/test/resources/antclipse/.classpath
new file mode 100644
index 0000000..8a55b01
--- /dev/null
+++ b/test/resources/antclipse/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <!-- this is an awfully hacked Eclipse classpath file, must find a way to test libs-->
+ <classpathentry kind="src" path="../../../src"/>
+ <classpathentry kind="src" path="../../../test/src"/>
+ <classpathentry kind="src" path="../../../test/resources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="."/>
+</classpath>
diff --git a/test/resources/antclipse/antclipsetest.xml b/test/resources/antclipse/antclipsetest.xml
new file mode 100644
index 0000000..460bbad
--- /dev/null
+++ b/test/resources/antclipse/antclipsetest.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<project default="everything" name="Antclipse test xml file" basedir=".">
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+
+<target name="make.fs.output">
+ <!-- creates a fileset including all the files from the output directory, called ecl1-bin if your binary directory is bin/ -->
+ <antclipse produce="fileset" idcontainer="ecl1" includeoutput="true" includesource="false"
+ includelibs="false" verbose="true"/>
+</target>
+
+<target name="make.fs.sources">
+ <!-- creates a fileset for each source directory, called ecl2-*source-dir-name*/ -->
+ <antclipse produce="fileset" idcontainer="ecl2" includeoutput="false" includesource="true"
+ includelibs="false" verbose="true"/>
+</target>
+
+<target name="make.fs.libs">
+ <!-- creates a fileset sontaining all your project libs called ecl3/ -->
+ <antclipse produce="fileset" idcontainer="ecl3" verbose="true"/>
+</target>
+
+<target name="make.cp">
+ <!-- creates a fileset sontaining all your project libs called ecl3/ -->
+ <antclipse produce="classpath" idcontainer="eclp" verbose="true" includeoutput="true"/>
+</target>
+
+<target name="everything" depends="make.fs.libs, make.fs.output, make.fs.sources, make.cp">
+ <echo message="The output path is ${ecl1outpath}"/>
+ <echo message="The source path is ${ecl2srcpath}"/>
+ <!-- makes a jar file with the content of the output directory -->
+ <zip destfile="out.jar"><fileset refid="ecl1-${ecl1outpath}"/></zip>
+ <!-- makes a zip file with all your sources (supposing you have only source directory) -->
+ <zip destfile="src.zip"><fileset refid="ecl2-${ecl2srcpath}"/></zip>
+ <!-- makes a big zip file with all your project libraries -->
+ <zip destfile="libs.zip"><fileset refid="ecl3"/></zip>
+ <!-- imports the classpath into a property then echoes the property -->
+ <property name="cpcontent" refid="eclp"/>
+ <echo>The newly created classpath is ${cpcontent}</echo>
+</target>
+</project> \ No newline at end of file
diff --git a/test/resources/antserver/antservertest.xml b/test/resources/antserver/antservertest.xml
new file mode 100644
index 0000000..77f8db0
--- /dev/null
+++ b/test/resources/antserver/antservertest.xml
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="Project" default="default" basedir=".">
+
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
+
+ <property name="server.host" value="localhost" />
+ <property name="server.port" value="17000" />
+
+ <target name="default">
+ </target>
+
+ <!-- =============================================== -->
+ <!-- TEST 1 -->
+ <!-- =============================================== -->
+ <target name="test1_remote">
+ <echo message="Test1 Successfully Called" />
+ </target>
+
+ <target name="dotest1">
+ <remoteant machine="${server.host}" port="${server.port}">
+ <runtarget target="test1_remote">
+ </runtarget>
+ </remoteant>
+ </target>
+
+ <target name="test1">
+ <antcall target="run.test.with.server">
+ <param name="test.target" value="dotest1" />
+ </antcall>
+ </target>
+
+ <!-- =============================================== -->
+ <!-- TEST 2 -->
+ <!-- =============================================== -->
+ <target name="test2_remote">
+ <echo message="${message}" />
+ </target>
+
+ <target name="dotest2">
+ <remoteant machine="${server.host}" port="${server.port}">
+ <runtarget target="test2_remote">
+ <property name="message" value="Test2 Successfully Called" />
+ </runtarget>
+ </remoteant>
+ </target>
+
+ <target name="test2">
+ <antcall target="run.test.with.server">
+ <param name="test.target" value="dotest2" />
+ </antcall>
+ </target>
+
+ <!-- =============================================== -->
+ <!-- TEST 3 -->
+ <!-- =============================================== -->
+ <target name="test3_remote">
+ <touch file="E:/test3.txt" />
+ <echo message="Test3 Successfully Called" />
+ </target>
+
+ <target name="dotest3">
+ <remoteant machine="${server.host}" port="${server.port}">
+ <runant target="test3_remote" antfile="${ant.file}">
+ </runant>
+ </remoteant>
+ </target>
+
+ <target name="test3">
+ <antcall target="run.test.with.server">
+ <param name="test.target" value="dotest3" />
+ </antcall>
+ </target>
+
+ <!-- =============================================== -->
+ <!-- TEST 4 -->
+ <!-- =============================================== -->
+ <target name="test4_remote">
+ <echo message="${message}" />
+ </target>
+
+ <target name="dotest4">
+ <remoteant machine="${server.host}" port="${server.port}">
+ <runant target="test4_remote" antfile="${ant.file}">
+ <property name="message" value="Test4 Successfully Called" />
+ </runant>
+ </remoteant>
+ </target>
+
+ <target name="test4">
+ <antcall target="run.test.with.server">
+ <param name="test.target" value="dotest4" />
+ </antcall>
+ </target>
+
+ <target name="dotest5">
+ <mkdir dir="servertests" />
+ <remoteant machine="${server.host}" port="${server.port}">
+ <sendfile file="clientfile.txt" todir="servertests" />
+ </remoteant>
+ <available property="file.available"
+ file="servertests/clientfile.txt" />
+ <fail unless="file.available" />
+ </target>
+
+ <target name="cleanup">
+ <delete quiet="yes" dir="servertests"/>
+ </target>
+
+ <target name="test5">
+ <antcall target="run.test.with.server">
+ <param name="test.target" value="dotest5" />
+ </antcall>
+ </target>
+ <target name="run.test.with.server">
+ <parallel>
+ <antserver port="${server.port}" />
+
+ <sequential>
+ <waitfor checkevery="500" checkeveryunit="millisecond">
+ <socket port="${server.port}" server="${server.host}" />
+ </waitfor>
+
+ <trycatch>
+ <try>
+ <antcall target="${test.target}" />
+ </try>
+ <finally>
+ <remoteant machine="${server.host}" port="${server.port}">
+ <shutdown />
+ </remoteant>
+ </finally>
+ </trycatch>
+ </sequential>
+ </parallel>
+ </target>
+
+
+</project>
diff --git a/test/resources/antserver/clientfile.txt b/test/resources/antserver/clientfile.txt
new file mode 100644
index 0000000..68f4931
--- /dev/null
+++ b/test/resources/antserver/clientfile.txt
@@ -0,0 +1 @@
+This is the file from the client.
diff --git a/test/resources/design/designfiles/arraydepend.xml b/test/resources/design/designfiles/arraydepend.xml
new file mode 100644
index 0000000..cdd0aeb
--- /dev/null
+++ b/test/resources/design/designfiles/arraydepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.arraydepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/arraydepend2.xml b/test/resources/design/designfiles/arraydepend2.xml
new file mode 100644
index 0000000..ab8d8e4
--- /dev/null
+++ b/test/resources/design/designfiles/arraydepend2.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.arraydepend2"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/arraydepend3.xml b/test/resources/design/designfiles/arraydepend3.xml
new file mode 100644
index 0000000..1e30b7c
--- /dev/null
+++ b/test/resources/design/designfiles/arraydepend3.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.arraydepend3"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/badxml.xml b/test/resources/design/designfiles/badxml.xml
new file mode 100644
index 0000000..63c82f0
--- /dev/null
+++ b/test/resources/design/designfiles/badxml.xml
@@ -0,0 +1,6 @@
+<design
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.arraydepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/castdepend.xml b/test/resources/design/designfiles/castdepend.xml
new file mode 100644
index 0000000..ac16d41
--- /dev/null
+++ b/test/resources/design/designfiles/castdepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.castdepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/catchdepend.xml b/test/resources/design/designfiles/catchdepend.xml
new file mode 100644
index 0000000..2ff6387
--- /dev/null
+++ b/test/resources/design/designfiles/catchdepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.catchdepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/declarejavautil.xml b/test/resources/design/designfiles/declarejavautil.xml
new file mode 100644
index 0000000..e2fb08e
--- /dev/null
+++ b/test/resources/design/designfiles/declarejavautil.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.declarejavautil"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/declarejavautilfail.xml b/test/resources/design/designfiles/declarejavautilfail.xml
new file mode 100644
index 0000000..fd43256
--- /dev/null
+++ b/test/resources/design/designfiles/declarejavautilfail.xml
@@ -0,0 +1,8 @@
+<design>
+<!-- needdeclarations is by default true, so we don't need that here -->
+<package name="javautil" package="java.util"/>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.declarejavautil"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/declarejavax.xml b/test/resources/design/designfiles/declarejavax.xml
new file mode 100644
index 0000000..f2b7d13
--- /dev/null
+++ b/test/resources/design/designfiles/declarejavax.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.declarejavax"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/declarejavaxpass.xml b/test/resources/design/designfiles/declarejavaxpass.xml
new file mode 100644
index 0000000..7e55849
--- /dev/null
+++ b/test/resources/design/designfiles/declarejavaxpass.xml
@@ -0,0 +1,7 @@
+<design>
+<package name="swing" package="javax.swing" needdeclarations="false"/>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.declarejavax"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/fielddepend.xml b/test/resources/design/designfiles/fielddepend.xml
new file mode 100644
index 0000000..409427c
--- /dev/null
+++ b/test/resources/design/designfiles/fielddepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.fielddepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/fieldrefdepend.xml b/test/resources/design/designfiles/fieldrefdepend.xml
new file mode 100644
index 0000000..3a04f6a
--- /dev/null
+++ b/test/resources/design/designfiles/fieldrefdepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.fieldrefdepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/innerclassdepend.xml b/test/resources/design/designfiles/innerclassdepend.xml
new file mode 100644
index 0000000..2be90f6
--- /dev/null
+++ b/test/resources/design/designfiles/innerclassdepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.innerclassdepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/instanceofdepend.xml b/test/resources/design/designfiles/instanceofdepend.xml
new file mode 100644
index 0000000..2e9a3f8
--- /dev/null
+++ b/test/resources/design/designfiles/instanceofdepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.instanceofdepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/interfacedepend.xml b/test/resources/design/designfiles/interfacedepend.xml
new file mode 100644
index 0000000..9f11581
--- /dev/null
+++ b/test/resources/design/designfiles/interfacedepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.interfacedepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/localvardepend.xml b/test/resources/design/designfiles/localvardepend.xml
new file mode 100644
index 0000000..518bae1
--- /dev/null
+++ b/test/resources/design/designfiles/localvardepend.xml
@@ -0,0 +1,9 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="factory" package="mod.temp" depends="dummy"/>
+<package name="client" package="mod.localvardepend">
+ <depends>factory</depends>
+</package>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/localvarrefdepend.xml b/test/resources/design/designfiles/localvarrefdepend.xml
new file mode 100644
index 0000000..6160330
--- /dev/null
+++ b/test/resources/design/designfiles/localvarrefdepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.localvarrefdepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/missingattribute.xml b/test/resources/design/designfiles/missingattribute.xml
new file mode 100644
index 0000000..5397c51
--- /dev/null
+++ b/test/resources/design/designfiles/missingattribute.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package package="mod.dummy"/>
+<package name="client" package="mod.arraydepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/multipleerrors.xml b/test/resources/design/designfiles/multipleerrors.xml
new file mode 100644
index 0000000..3c6780d
--- /dev/null
+++ b/test/resources/design/designfiles/multipleerrors.xml
@@ -0,0 +1,7 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.arraydepend"/>
+<package name="client2" package="mod.catchdepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/newdepend.xml b/test/resources/design/designfiles/newdepend.xml
new file mode 100644
index 0000000..b924645
--- /dev/null
+++ b/test/resources/design/designfiles/newdepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.newdepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/newdepend2.xml b/test/resources/design/designfiles/newdepend2.xml
new file mode 100644
index 0000000..4efc5bf
--- /dev/null
+++ b/test/resources/design/designfiles/newdepend2.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.newdepend2"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/nodebugoption.xml b/test/resources/design/designfiles/nodebugoption.xml
new file mode 100644
index 0000000..8ab00b7
--- /dev/null
+++ b/test/resources/design/designfiles/nodebugoption.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.nodebugoption"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/nojar.xml b/test/resources/design/designfiles/nojar.xml
new file mode 100644
index 0000000..cdd0aeb
--- /dev/null
+++ b/test/resources/design/designfiles/nojar.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.arraydepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/paramdepend.xml b/test/resources/design/designfiles/paramdepend.xml
new file mode 100644
index 0000000..4c24f4f
--- /dev/null
+++ b/test/resources/design/designfiles/paramdepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.paramdepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/passlocaldepend.xml b/test/resources/design/designfiles/passlocaldepend.xml
new file mode 100644
index 0000000..8544ed5
--- /dev/null
+++ b/test/resources/design/designfiles/passlocaldepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.passlocaldepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/pathelementpath.xml b/test/resources/design/designfiles/pathelementpath.xml
new file mode 100644
index 0000000..84bd103
--- /dev/null
+++ b/test/resources/design/designfiles/pathelementpath.xml
@@ -0,0 +1,7 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client1" package="mod.putstatic"/>
+<package name="client2" package="mod.arraydepend2"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/putstatic.xml b/test/resources/design/designfiles/putstatic.xml
new file mode 100644
index 0000000..92464e0
--- /dev/null
+++ b/test/resources/design/designfiles/putstatic.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.putstatic"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/recursion.xml b/test/resources/design/designfiles/recursion.xml
new file mode 100644
index 0000000..9aedd9e
--- /dev/null
+++ b/test/resources/design/designfiles/recursion.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="temp" package="mod.recursion.rec" subpackages="include"/>
+<package name="client" package="mod.recursion.client" depends="temp"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/recursion2.xml b/test/resources/design/designfiles/recursion2.xml
new file mode 100644
index 0000000..94b41cd
--- /dev/null
+++ b/test/resources/design/designfiles/recursion2.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="temp" package="mod.recursion2.dependency"/>
+<package name="client" package="mod.recursion2.rec" depends="temp" subpackages="include"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/recursion3.xml b/test/resources/design/designfiles/recursion3.xml
new file mode 100644
index 0000000..7fef148
--- /dev/null
+++ b/test/resources/design/designfiles/recursion3.xml
@@ -0,0 +1,5 @@
+<design>
+
+<package name="recursion" package="mod.recursion3" subpackages="include"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/returnvaldepend.xml b/test/resources/design/designfiles/returnvaldepend.xml
new file mode 100644
index 0000000..d1abdab
--- /dev/null
+++ b/test/resources/design/designfiles/returnvaldepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.returnvaldepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/signatureexceptiondepend.xml b/test/resources/design/designfiles/signatureexceptiondepend.xml
new file mode 100644
index 0000000..446333e
--- /dev/null
+++ b/test/resources/design/designfiles/signatureexceptiondepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.signatureexceptiondepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/staticdepend.xml b/test/resources/design/designfiles/staticdepend.xml
new file mode 100644
index 0000000..94e41c8
--- /dev/null
+++ b/test/resources/design/designfiles/staticdepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.staticdepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/staticfield2depend.xml b/test/resources/design/designfiles/staticfield2depend.xml
new file mode 100644
index 0000000..69a1e4f
--- /dev/null
+++ b/test/resources/design/designfiles/staticfield2depend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.staticfield2depend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/staticfielddepend.xml b/test/resources/design/designfiles/staticfielddepend.xml
new file mode 100644
index 0000000..d477496
--- /dev/null
+++ b/test/resources/design/designfiles/staticfielddepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.staticfielddepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/staticfinaldepend.xml b/test/resources/design/designfiles/staticfinaldepend.xml
new file mode 100644
index 0000000..a264547
--- /dev/null
+++ b/test/resources/design/designfiles/staticfinaldepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.staticfinaldepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/superdepend.xml b/test/resources/design/designfiles/superdepend.xml
new file mode 100644
index 0000000..153ee2b
--- /dev/null
+++ b/test/resources/design/designfiles/superdepend.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.superdepend"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/warfailure.xml b/test/resources/design/designfiles/warfailure.xml
new file mode 100644
index 0000000..daf5368
--- /dev/null
+++ b/test/resources/design/designfiles/warfailure.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.warfailure"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/designfiles/warsuccess.xml b/test/resources/design/designfiles/warsuccess.xml
new file mode 100644
index 0000000..3e100e9
--- /dev/null
+++ b/test/resources/design/designfiles/warsuccess.xml
@@ -0,0 +1,6 @@
+<design>
+
+<package name="dummy" package="mod.dummy"/>
+<package name="client" package="mod.warsuccess" depends="dummy"/>
+
+</design> \ No newline at end of file
diff --git a/test/resources/design/src/mod/arraydepend/ClassDependsOnArray.java b/test/resources/design/src/mod/arraydepend/ClassDependsOnArray.java
new file mode 100644
index 0000000..ed4b01c
--- /dev/null
+++ b/test/resources/design/src/mod/arraydepend/ClassDependsOnArray.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 9, 2005
+ */
+package mod.arraydepend;
+
+import mod.dummy.DummyClass;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnArray {
+
+ public void something() {
+ Object[] o = new DummyClass[5];
+ }
+}
diff --git a/test/resources/design/src/mod/arraydepend2/ClassDependsOnArray.java b/test/resources/design/src/mod/arraydepend2/ClassDependsOnArray.java
new file mode 100644
index 0000000..4d65a7a
--- /dev/null
+++ b/test/resources/design/src/mod/arraydepend2/ClassDependsOnArray.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 9, 2005
+ */
+package mod.arraydepend2;
+
+
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnArray {
+
+ public void testArray() throws Exception {
+ Class c = String[].class;
+ }
+}
diff --git a/test/resources/design/src/mod/arraydepend3/ClassDependsOnArray.java b/test/resources/design/src/mod/arraydepend3/ClassDependsOnArray.java
new file mode 100644
index 0000000..2ff6d67
--- /dev/null
+++ b/test/resources/design/src/mod/arraydepend3/ClassDependsOnArray.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 9, 2005
+ */
+package mod.arraydepend3;
+
+import mod.dummy.DummyClass;
+
+
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnArray {
+
+ public void testArray() throws Exception {
+ Class c = DummyClass[].class;
+ }
+}
diff --git a/test/resources/design/src/mod/castdepend/ClassDependsOnCast.java b/test/resources/design/src/mod/castdepend/ClassDependsOnCast.java
new file mode 100644
index 0000000..b6ad33a
--- /dev/null
+++ b/test/resources/design/src/mod/castdepend/ClassDependsOnCast.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.castdepend;
+
+import mod.dummy.DummyInterface;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnCast {
+
+ public void getSomething(Object obj) {
+ Object o = (DummyInterface)obj;
+ }
+}
diff --git a/test/resources/design/src/mod/catchdepend/ClassDependsOnCatch.java b/test/resources/design/src/mod/catchdepend/ClassDependsOnCatch.java
new file mode 100644
index 0000000..a103240
--- /dev/null
+++ b/test/resources/design/src/mod/catchdepend/ClassDependsOnCatch.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.catchdepend;
+
+import mod.dummy.DummyRuntimeException;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnCatch {
+
+ public void doNothing() {
+ try {
+ int x = 0;
+ int y = x+4;
+ } catch(DummyRuntimeException e) {
+
+ }
+ }
+}
diff --git a/test/resources/design/src/mod/declarejavautil/ClassDependsOnJavaUtil.java b/test/resources/design/src/mod/declarejavautil/ClassDependsOnJavaUtil.java
new file mode 100644
index 0000000..077da65
--- /dev/null
+++ b/test/resources/design/src/mod/declarejavautil/ClassDependsOnJavaUtil.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 19, 2005
+ */
+package mod.declarejavautil;
+
+import java.util.List;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnJavaUtil {
+
+ public List list;
+}
diff --git a/test/resources/design/src/mod/declarejavax/ClassDependsOnJavax.java b/test/resources/design/src/mod/declarejavax/ClassDependsOnJavax.java
new file mode 100644
index 0000000..cd79675
--- /dev/null
+++ b/test/resources/design/src/mod/declarejavax/ClassDependsOnJavax.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 19, 2005
+ */
+package mod.declarejavax;
+
+import javax.swing.JButton;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnJavax {
+
+ public JButton b = null;
+
+}
diff --git a/test/resources/design/src/mod/dummy/DummyClass.java b/test/resources/design/src/mod/dummy/DummyClass.java
new file mode 100644
index 0000000..f2f48df
--- /dev/null
+++ b/test/resources/design/src/mod/dummy/DummyClass.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.dummy;
+
+/**
+ *
+ * @author dhiller
+ */
+public class DummyClass {
+
+ public static final String CONSTANT = "asdf";
+ public static String staticField = "xxxx";
+
+ public static String returnSomething() {
+ return "Xxx";
+ }
+}
diff --git a/test/resources/design/src/mod/dummy/DummyException.java b/test/resources/design/src/mod/dummy/DummyException.java
new file mode 100644
index 0000000..3884fc1
--- /dev/null
+++ b/test/resources/design/src/mod/dummy/DummyException.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.dummy;
+
+/**
+ *
+ * @author dhiller
+ */
+public class DummyException extends Exception {
+
+}
diff --git a/test/resources/design/src/mod/dummy/DummyInterface.java b/test/resources/design/src/mod/dummy/DummyInterface.java
new file mode 100644
index 0000000..e7432fa
--- /dev/null
+++ b/test/resources/design/src/mod/dummy/DummyInterface.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.dummy;
+
+/**
+ *
+ * @author dhiller
+ */
+public interface DummyInterface {
+
+}
diff --git a/test/resources/design/src/mod/dummy/DummyRuntimeException.java b/test/resources/design/src/mod/dummy/DummyRuntimeException.java
new file mode 100644
index 0000000..53cb35a
--- /dev/null
+++ b/test/resources/design/src/mod/dummy/DummyRuntimeException.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.dummy;
+
+/**
+ *
+ * @author dhiller
+ */
+public class DummyRuntimeException extends RuntimeException {
+
+}
diff --git a/test/resources/design/src/mod/fielddepend/ClassDependsOnField.java b/test/resources/design/src/mod/fielddepend/ClassDependsOnField.java
new file mode 100644
index 0000000..226003b
--- /dev/null
+++ b/test/resources/design/src/mod/fielddepend/ClassDependsOnField.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.fielddepend;
+
+import mod.dummy.DummyClass;
+
+/**
+ * This class depends on a field in another package.
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnField {
+
+ private DummyClass f;
+}
diff --git a/test/resources/design/src/mod/fieldrefdepend/ClassDependsOnReferenceInFieldDeclaration.java b/test/resources/design/src/mod/fieldrefdepend/ClassDependsOnReferenceInFieldDeclaration.java
new file mode 100644
index 0000000..8329bfc
--- /dev/null
+++ b/test/resources/design/src/mod/fieldrefdepend/ClassDependsOnReferenceInFieldDeclaration.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.fieldrefdepend;
+
+import mod.dummy.DummyClass;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnReferenceInFieldDeclaration {
+
+ private Class c = DummyClass.class;
+
+}
diff --git a/test/resources/design/src/mod/innerclassdepend/InnerClassDependsOnSuper.java b/test/resources/design/src/mod/innerclassdepend/InnerClassDependsOnSuper.java
new file mode 100644
index 0000000..ee882e5
--- /dev/null
+++ b/test/resources/design/src/mod/innerclassdepend/InnerClassDependsOnSuper.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.innerclassdepend;
+
+import mod.dummy.DummyClass;
+
+/**
+ *
+ * @author dhiller
+ */
+public class InnerClassDependsOnSuper {
+
+ private class Inner extends DummyClass {
+
+ }
+}
diff --git a/test/resources/design/src/mod/instanceofdepend/ClassDependsOnInstanceOf.java b/test/resources/design/src/mod/instanceofdepend/ClassDependsOnInstanceOf.java
new file mode 100644
index 0000000..55a78bb
--- /dev/null
+++ b/test/resources/design/src/mod/instanceofdepend/ClassDependsOnInstanceOf.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.instanceofdepend;
+
+import mod.dummy.DummyInterface;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnInstanceOf {
+
+ public void getSomething(Object o) {
+ int x = 0;
+ if(o instanceof DummyInterface) {
+ x = 4;
+ }
+ }
+}
diff --git a/test/resources/design/src/mod/interfacedepend/ClassDependsOnInterfaceMod2.java b/test/resources/design/src/mod/interfacedepend/ClassDependsOnInterfaceMod2.java
new file mode 100644
index 0000000..6713b1c
--- /dev/null
+++ b/test/resources/design/src/mod/interfacedepend/ClassDependsOnInterfaceMod2.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.interfacedepend;
+
+import mod.dummy.DummyInterface;
+
+/**
+ * This class depends on an interface in another package creating a dependency
+ * between packages.
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnInterfaceMod2 implements DummyInterface {
+
+}
diff --git a/test/resources/design/src/mod/localvardepend/ClassDependsOnLocalVar.java b/test/resources/design/src/mod/localvardepend/ClassDependsOnLocalVar.java
new file mode 100644
index 0000000..cd177da
--- /dev/null
+++ b/test/resources/design/src/mod/localvardepend/ClassDependsOnLocalVar.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.localvardepend;
+
+import mod.dummy.DummyClass;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnLocalVar {
+
+ public String doNothing() {
+ DummyClass c = null;
+
+ return ""+c;
+ }
+}
diff --git a/test/resources/design/src/mod/localvarrefdepend/ClassDependsOnLocalVariableReference.java b/test/resources/design/src/mod/localvarrefdepend/ClassDependsOnLocalVariableReference.java
new file mode 100644
index 0000000..8e77433
--- /dev/null
+++ b/test/resources/design/src/mod/localvarrefdepend/ClassDependsOnLocalVariableReference.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.localvarrefdepend;
+
+import mod.dummy.DummyInterface;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnLocalVariableReference {
+
+ public void doNothing() {
+ Class c = DummyInterface.class;
+ }
+}
diff --git a/test/resources/design/src/mod/newdepend/ClassDependsOnNew.java b/test/resources/design/src/mod/newdepend/ClassDependsOnNew.java
new file mode 100644
index 0000000..efcaa49
--- /dev/null
+++ b/test/resources/design/src/mod/newdepend/ClassDependsOnNew.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.newdepend;
+
+import mod.dummy.DummyClass;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnNew {
+
+ public void doNothing() {
+ new DummyClass();
+ }
+}
diff --git a/test/resources/design/src/mod/newdepend2/ClassDependsOnNewInField.java b/test/resources/design/src/mod/newdepend2/ClassDependsOnNewInField.java
new file mode 100644
index 0000000..d76ade3
--- /dev/null
+++ b/test/resources/design/src/mod/newdepend2/ClassDependsOnNewInField.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.newdepend2;
+
+import mod.dummy.DummyClass;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnNewInField {
+
+ public Object o = new DummyClass();
+}
diff --git a/test/resources/design/src/mod/nodebugoption/ClassDependsOnLocalVar.java b/test/resources/design/src/mod/nodebugoption/ClassDependsOnLocalVar.java
new file mode 100644
index 0000000..bb65e63
--- /dev/null
+++ b/test/resources/design/src/mod/nodebugoption/ClassDependsOnLocalVar.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 13, 2005
+ */
+package mod.nodebugoption;
+
+import mod.dummy.DummyClass;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnLocalVar {
+
+ public void doSomething() {
+ DummyClass c = null;
+ //without debug option enabled, the type DummyClass is lost so we
+ //must fail with the error saying class wasn't compiled with -g option
+ //enabled in javac.
+ }
+}
diff --git a/test/resources/design/src/mod/paramdepend/ClassDependsOnParameter.java b/test/resources/design/src/mod/paramdepend/ClassDependsOnParameter.java
new file mode 100644
index 0000000..12866b1
--- /dev/null
+++ b/test/resources/design/src/mod/paramdepend/ClassDependsOnParameter.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.paramdepend;
+
+import mod.dummy.DummyClass;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnParameter {
+
+ public void setSomething(String dummy, DummyClass c) {
+
+ }
+}
diff --git a/test/resources/design/src/mod/passlocaldepend/ClassDependsOnClassInSamePackage.java b/test/resources/design/src/mod/passlocaldepend/ClassDependsOnClassInSamePackage.java
new file mode 100644
index 0000000..a2ae720
--- /dev/null
+++ b/test/resources/design/src/mod/passlocaldepend/ClassDependsOnClassInSamePackage.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 13, 2005
+ */
+package mod.passlocaldepend;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnClassInSamePackage {
+
+ public void doSomething(FakeClass c) {
+
+ }
+}
diff --git a/test/resources/design/src/mod/passlocaldepend/FakeClass.java b/test/resources/design/src/mod/passlocaldepend/FakeClass.java
new file mode 100644
index 0000000..ed35025
--- /dev/null
+++ b/test/resources/design/src/mod/passlocaldepend/FakeClass.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 13, 2005
+ */
+package mod.passlocaldepend;
+
+/**
+ *
+ * @author dhiller
+ */
+public class FakeClass {
+
+}
diff --git a/test/resources/design/src/mod/putstatic/ClassDependsOnNothing.java b/test/resources/design/src/mod/putstatic/ClassDependsOnNothing.java
new file mode 100644
index 0000000..fbedddf
--- /dev/null
+++ b/test/resources/design/src/mod/putstatic/ClassDependsOnNothing.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 13, 2005
+ */
+package mod.putstatic;
+
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnNothing {
+
+ private static String s;
+ public static void setJarLocator(String l) {
+ s = l;
+ }
+}
diff --git a/test/resources/design/src/mod/recursion/client/ClassDependsOnSubPackage.java b/test/resources/design/src/mod/recursion/client/ClassDependsOnSubPackage.java
new file mode 100644
index 0000000..ce95d9c
--- /dev/null
+++ b/test/resources/design/src/mod/recursion/client/ClassDependsOnSubPackage.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 13, 2005
+ */
+package mod.recursion.client;
+
+import mod.recursion.rec.a.FakeClass;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnSubPackage {
+
+ public FakeClass getSoemthing() {
+ return null;
+ }
+}
diff --git a/test/resources/design/src/mod/recursion/rec/a/FakeClass.java b/test/resources/design/src/mod/recursion/rec/a/FakeClass.java
new file mode 100644
index 0000000..ada6615
--- /dev/null
+++ b/test/resources/design/src/mod/recursion/rec/a/FakeClass.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 13, 2005
+ */
+package mod.recursion.rec.a;
+
+/**
+ *
+ * @author dhiller
+ */
+public class FakeClass {
+
+}
diff --git a/test/resources/design/src/mod/recursion2/dependency/Dependency.java b/test/resources/design/src/mod/recursion2/dependency/Dependency.java
new file mode 100644
index 0000000..dc9b594
--- /dev/null
+++ b/test/resources/design/src/mod/recursion2/dependency/Dependency.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 13, 2005
+ */
+package mod.recursion2.dependency;
+
+/**
+ *
+ * @author dhiller
+ */
+public class Dependency {
+
+}
diff --git a/test/resources/design/src/mod/recursion2/rec/client/SubpackageClassDependsOnPackage.java b/test/resources/design/src/mod/recursion2/rec/client/SubpackageClassDependsOnPackage.java
new file mode 100644
index 0000000..57dc96a
--- /dev/null
+++ b/test/resources/design/src/mod/recursion2/rec/client/SubpackageClassDependsOnPackage.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 16, 2005
+ */
+package mod.recursion2.rec.client;
+
+import mod.recursion2.dependency.Dependency;
+
+/**
+ *
+ * @author dhiller
+ */
+public class SubpackageClassDependsOnPackage {
+
+ public Dependency doNothing() {
+ return null;
+ }
+}
diff --git a/test/resources/design/src/mod/recursion3/client/SubpackageClassDependsOnSubpackage.java b/test/resources/design/src/mod/recursion3/client/SubpackageClassDependsOnSubpackage.java
new file mode 100644
index 0000000..64dd1ce
--- /dev/null
+++ b/test/resources/design/src/mod/recursion3/client/SubpackageClassDependsOnSubpackage.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 16, 2005
+ */
+package mod.recursion3.client;
+
+import mod.recursion3.svc.DependencyClass;
+
+/**
+ *
+ * @author dhiller
+ */
+public class SubpackageClassDependsOnSubpackage {
+
+ public void doSomething(DependencyClass c) {
+
+ }
+}
diff --git a/test/resources/design/src/mod/recursion3/svc/DependencyClass.java b/test/resources/design/src/mod/recursion3/svc/DependencyClass.java
new file mode 100644
index 0000000..e3bc462
--- /dev/null
+++ b/test/resources/design/src/mod/recursion3/svc/DependencyClass.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 16, 2005
+ */
+package mod.recursion3.svc;
+
+/**
+ *
+ * @author dhiller
+ */
+public class DependencyClass {
+
+}
diff --git a/test/resources/design/src/mod/returnvaldepend/ClassDependsOnReturnValue.java b/test/resources/design/src/mod/returnvaldepend/ClassDependsOnReturnValue.java
new file mode 100644
index 0000000..61f00ae
--- /dev/null
+++ b/test/resources/design/src/mod/returnvaldepend/ClassDependsOnReturnValue.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.returnvaldepend;
+
+import mod.dummy.DummyInterface;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnReturnValue {
+
+ public DummyInterface getSomething() {
+ return null;
+ }
+}
diff --git a/test/resources/design/src/mod/signatureexceptiondepend/ClassDependsOnExceptionInMethodSignature.java b/test/resources/design/src/mod/signatureexceptiondepend/ClassDependsOnExceptionInMethodSignature.java
new file mode 100644
index 0000000..a235e12
--- /dev/null
+++ b/test/resources/design/src/mod/signatureexceptiondepend/ClassDependsOnExceptionInMethodSignature.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.signatureexceptiondepend;
+
+import mod.dummy.DummyException;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnExceptionInMethodSignature {
+
+ public String doNothing() throws DummyException {
+ return null;
+ }
+}
diff --git a/test/resources/design/src/mod/staticdepend/ClassDependsOnStatic.java b/test/resources/design/src/mod/staticdepend/ClassDependsOnStatic.java
new file mode 100644
index 0000000..60b1f53
--- /dev/null
+++ b/test/resources/design/src/mod/staticdepend/ClassDependsOnStatic.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.staticdepend;
+
+import mod.dummy.DummyClass;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnStatic {
+
+ public String getSomething() {
+ return DummyClass.returnSomething();
+ }
+}
diff --git a/test/resources/design/src/mod/staticfield2depend/ClassDependsOnStaticField.java b/test/resources/design/src/mod/staticfield2depend/ClassDependsOnStaticField.java
new file mode 100644
index 0000000..6d2a587
--- /dev/null
+++ b/test/resources/design/src/mod/staticfield2depend/ClassDependsOnStaticField.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 9, 2005
+ */
+package mod.staticfield2depend;
+
+import mod.dummy.DummyClass;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnStaticField {
+
+ public static DummyClass x = null;
+
+
+}
diff --git a/test/resources/design/src/mod/staticfielddepend/ClassDependsOnStaticField.java b/test/resources/design/src/mod/staticfielddepend/ClassDependsOnStaticField.java
new file mode 100644
index 0000000..67f35db
--- /dev/null
+++ b/test/resources/design/src/mod/staticfielddepend/ClassDependsOnStaticField.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 9, 2005
+ */
+package mod.staticfielddepend;
+
+import mod.dummy.DummyClass;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnStaticField {
+
+ public void doNothing() {
+ String s = DummyClass.staticField;
+ }
+}
diff --git a/test/resources/design/src/mod/staticfinaldepend/ClassDependsOnConstant.java b/test/resources/design/src/mod/staticfinaldepend/ClassDependsOnConstant.java
new file mode 100644
index 0000000..6273c9a
--- /dev/null
+++ b/test/resources/design/src/mod/staticfinaldepend/ClassDependsOnConstant.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 9, 2005
+ */
+package mod.staticfinaldepend;
+
+import mod.dummy.DummyClass;
+
+/**
+ *
+ * @author dhiller
+ */
+public class ClassDependsOnConstant {
+
+ public void doNothing() {
+ String s = ""+DummyClass.CONSTANT;
+ }
+}
diff --git a/test/resources/design/src/mod/superdepend/ClassDependsOnSuperMod2.java b/test/resources/design/src/mod/superdepend/ClassDependsOnSuperMod2.java
new file mode 100644
index 0000000..880f757
--- /dev/null
+++ b/test/resources/design/src/mod/superdepend/ClassDependsOnSuperMod2.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.superdepend;
+
+import mod.dummy.DummyClass;
+
+/**
+ * This class depends on a superclass in another package creating a dependency
+ * between packages.
+ * @author dhiller
+ */
+public class ClassDependsOnSuperMod2 extends DummyClass {
+
+}
diff --git a/test/resources/design/src/mod/temp/Factory.java b/test/resources/design/src/mod/temp/Factory.java
new file mode 100644
index 0000000..a05622e
--- /dev/null
+++ b/test/resources/design/src/mod/temp/Factory.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Jan 13, 2005
+ */
+package mod.temp;
+
+import mod.dummy.DummyClass;
+
+/**
+ *
+ * @author dhiller
+ */
+public class Factory {
+
+ public static DummyClass create() {
+ return new DummyClass();
+ }
+}
diff --git a/test/resources/design/src/mod/warfailure/ClassDependsOnSuperMod2.java b/test/resources/design/src/mod/warfailure/ClassDependsOnSuperMod2.java
new file mode 100644
index 0000000..3ee27c7
--- /dev/null
+++ b/test/resources/design/src/mod/warfailure/ClassDependsOnSuperMod2.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.warfailure;
+
+import mod.dummy.DummyClass;
+
+/**
+ * This class depends on a superclass in another package creating a dependency
+ * between packages.
+ * @author dhiller
+ */
+public class ClassDependsOnSuperMod2 extends DummyClass {
+
+}
diff --git a/test/resources/design/src/mod/warsuccess/ClassDependsOnSuperMod2.java b/test/resources/design/src/mod/warsuccess/ClassDependsOnSuperMod2.java
new file mode 100644
index 0000000..da5e8a2
--- /dev/null
+++ b/test/resources/design/src/mod/warsuccess/ClassDependsOnSuperMod2.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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.
+ */
+/*
+ * Created on Dec 29, 2004
+ */
+package mod.warsuccess;
+
+import mod.dummy.DummyClass;
+
+/**
+ * This class depends on a superclass in another package creating a dependency
+ * between packages.
+ * @author dhiller
+ */
+public class ClassDependsOnSuperMod2 extends DummyClass {
+
+}
diff --git a/test/resources/design/verifydesign.xml b/test/resources/design/verifydesign.xml
new file mode 100644
index 0000000..53d7d17
--- /dev/null
+++ b/test/resources/design/verifydesign.xml
@@ -0,0 +1,440 @@
+<project name="test_verifydesign" basedir="." default="cleanup">
+ <property name="output" value="build"/>
+ <property name="classes" value="${output}/classes"/>
+ <property name="jardir" value="${output}/jar"/>
+ <property name="jar" value="${jardir}/test.jar"/>
+ <property name="war" value="${jardir}/test.war"/>
+ <property name="src" value="src"/>
+ <property name="mod" value="mod"/>
+ <property name="dummy" value="dummy"/>
+ <property name="designs" value="designfiles"/>
+ <property name="webxml" value="web.xml"/>
+
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+
+ <target name="cleanup">
+ <delete quiet="yes" dir="${output}"/>
+ </target>
+
+ <target name="init">
+ <mkdir dir="${jardir}"/>
+ </target>
+
+ <target name="templateTest">
+ <delete dir="${classes}"/>
+ <mkdir dir="${classes}"/>
+ <javac srcdir="${src}" debug="true" destdir="${classes}">
+ <include name="${mod}/${dummy}/**"/>
+ <include name="${mod}/${package.under.test}/**"/>
+ </javac>
+ <jar destfile="${jar}" basedir="${classes}"/>
+ </target>
+
+ <target name="templateWar">
+ <delete dir="${classes}"/>
+ <mkdir dir="${classes}"/>
+ <javac srcdir="${src}" debug="true" destdir="${classes}">
+ <include name="${mod}/${dummy}/**"/>
+ <include name="${mod}/${package.under.test}/**"/>
+ </javac>
+
+ <war destfile="${war}" webxml="${webxml}">
+ <classes dir="${classes}"/>
+ </war>
+ </target>
+
+ <target name="testArrayDepend" depends="init">
+ <property name="package" value="arraydepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testArrayDepend2" depends="init">
+ <property name="package" value="arraydepend2"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testArrayDepend3" depends="init">
+ <property name="package" value="arraydepend3"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testBadXML" depends="init">
+ <property name="package" value="badxml"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testCastDepend" depends="init">
+ <property name="package" value="castdepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testCatchDepend" depends="init">
+ <property name="package" value="catchdepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testClassFiles" depends="init">
+ <property name="package" value="castdepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign design="${designs}/${package}.xml">
+ <path>
+ <fileset dir="${classes}">
+ <include name="**/*.class"/>
+ </fileset>
+ </path>
+ </verifydesign>
+ </target>
+
+ <target name="testDeclareJavaUtil" depends="init">
+ <property name="package" value="declarejavautil"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testDeclareJavaUtilFail" depends="init">
+ <property name="package" value="declarejavautil"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}fail.xml"/>
+ </target>
+
+ <target name="testDeclareJavax" depends="init">
+ <property name="package" value="declarejavax"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testDeclareJavaxPass" depends="init">
+ <property name="package" value="declarejavax"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}pass.xml"/>
+ </target>
+
+ <target name="testFieldDepend" depends="init">
+ <property name="package" value="fielddepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testFieldRefDepend" depends="init">
+ <property name="package" value="fieldrefdepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testInnerClassDepend" depends="init">
+ <property name="package" value="innerclassdepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testInstanceOfDepend" depends="init">
+ <property name="package" value="instanceofdepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testInterfaceDepend" depends="init">
+ <property name="package" value="interfacedepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testLocalVarDepend" depends="init">
+ <property name="package" value="localvardepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testLocalVarRefDepend" depends="init">
+ <property name="package" value="localvarrefdepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testMissingAttribute" depends="init">
+ <property name="package" value="missingattribute"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testMultipleErrors" depends="init">
+ <property name="package" value="multipleerrors"/>
+
+ <delete dir="${classes}"/>
+ <mkdir dir="${classes}"/>
+ <javac srcdir="${src}" debug="true" destdir="${classes}">
+ <include name="${mod}/${dummy}/**"/>
+ <include name="${mod}/arraydepend/**"/>
+ <include name="${mod}/castdepend/**"/>
+ <include name="${mod}/catchdepend/**"/>
+ </javac>
+ <jar destfile="${jar}" basedir="${classes}"/>
+
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testNewDepend" depends="init">
+ <property name="package" value="newdepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testNewDepend2" depends="init">
+ <property name="package" value="newdepend2"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testNoDebugOption" depends="init">
+ <property name="package" value="nodebugoption"/>
+
+ <delete dir="${classes}"/>
+ <mkdir dir="${classes}"/>
+ <javac srcdir="${src}" debug="true" destdir="${classes}">
+ <include name="${mod}/${dummy}/**"/>
+ </javac>
+ <javac srcdir="${src}" debug="false" destdir="${classes}">
+ <include name="${mod}/${package}/**"/>
+ </javac>
+
+ <jar destfile="${jar}" basedir="${classes}"/>
+
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testNoJar" depends="init">
+ <property name="package" value="nojar"/>
+
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testParamDepend" depends="init">
+ <property name="package" value="paramdepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testPassLocalDepend" depends="init">
+ <property name="package" value="passlocaldepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testPathElementLocation" depends="init">
+ <property name="package" value="putstatic"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign design="${designs}/${package}.xml">
+ <path>
+ <pathelement location="${classes}"/>
+ </path>
+ </verifydesign>
+ </target>
+
+ <target name="testPathElementPath" depends="init">
+ <property name="package" value="pathelementpath"/>
+ <property name="classes2" value="${output}/classes2"/>
+ <property name="classes3" value="${output}/classes3"/>
+ <mkdir dir="${classes}"/>
+ <mkdir dir="${classes2}"/>
+ <mkdir dir="${classes3}"/>
+
+ <javac srcdir="${src}" debug="true" destdir="${classes}">
+ <include name="${mod}/${dummy}/**"/>
+ </javac>
+
+ <javac srcdir="${src}" debug="true" destdir="${classes2}" classpath="${classes}">
+ <include name="${mod}/putstatic/**"/>
+ </javac>
+
+ <javac srcdir="${src}" debug="true" destdir="${classes3}" classpath="${classes}">
+ <include name="${mod}/arraydepend2/**"/>
+ </javac>
+
+ <jar destfile="${jar}" basedir="${classes3}"/>
+
+ <verifydesign design="${designs}/${package}.xml">
+ <path>
+ <pathelement path="${classes2}:${jar}:${classes}"/>
+ </path>
+ </verifydesign>
+ </target>
+
+ <target name="testPutStatic" depends="init">
+ <property name="package" value="putstatic"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testRecursion" depends="init">
+ <property name="package" value="recursion"/>
+
+ <delete dir="${classes}"/>
+ <mkdir dir="${classes}"/>
+ <javac srcdir="${src}" debug="true" destdir="${classes}">
+ <include name="${mod}/${package}/**"/>
+ </javac>
+
+ <jar destfile="${jar}" basedir="${classes}"/>
+
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testRecursion2" depends="init">
+ <property name="package" value="recursion2"/>
+
+ <delete dir="${classes}"/>
+ <mkdir dir="${classes}"/>
+ <javac srcdir="${src}" debug="true" destdir="${classes}">
+ <include name="${mod}/${package}/**"/>
+ </javac>
+
+ <jar destfile="${jar}" basedir="${classes}"/>
+
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testRecursion3" depends="init">
+ <property name="package" value="recursion3"/>
+
+ <delete dir="${classes}"/>
+ <mkdir dir="${classes}"/>
+ <javac srcdir="${src}" debug="true" destdir="${classes}">
+ <include name="${mod}/${package}/**"/>
+ </javac>
+
+ <jar destfile="${jar}" basedir="${classes}"/>
+
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testReturnValDepend" depends="init">
+ <property name="package" value="returnvaldepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testSignatureExceptionDepend" depends="init">
+ <property name="package" value="signatureexceptiondepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testStaticDepend" depends="init">
+ <property name="package" value="staticdepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testStaticField2Depend" depends="init">
+ <property name="package" value="staticfield2depend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testStaticFieldDepend" depends="init">
+ <property name="package" value="staticfielddepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testStaticFinalDepend" depends="init">
+ <property name="package" value="staticfinaldepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testSuperDepend" depends="init">
+ <property name="package" value="superdepend"/>
+ <antcall target="templateTest">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${jar}" design="${designs}/${package}.xml"
+ deletefiles="true"/>
+ </target>
+
+ <target name="testWarSuccess" depends="init">
+ <property name="package" value="warsuccess"/>
+ <antcall target="templateWar">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${war}" design="${designs}/${package}.xml"/>
+ </target>
+
+ <target name="testWarFailure" depends="init">
+ <property name="package" value="warfailure"/>
+ <antcall target="templateWar">
+ <param name="package.under.test" value="${package}"/>
+ </antcall>
+ <verifydesign jar="${war}" design="${designs}/${package}.xml"/>
+ </target>
+</project>
diff --git a/test/resources/design/web.xml b/test/resources/design/web.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/resources/design/web.xml
diff --git a/test/resources/logic/antcallbacktest.xml b/test/resources/logic/antcallbacktest.xml
new file mode 100644
index 0000000..7f165c8
--- /dev/null
+++ b/test/resources/logic/antcallbacktest.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+
+<project name="antcallbacktest" basedir="." default="test1">
+ <description>
+ test build file for the AntCallBack task
+ </description>
+
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+
+
+ <target name="test1">
+ <antcallback target="setProperty" return="prop1"/>
+ </target>
+
+ <target name="test2">
+ <antcallback target="setProperties" return="prop1,prop2,prop3"/>
+ </target>
+
+ <target name="test3">
+ <antcallback target="setProperties" return="prop1, prop2, prop3"/>
+ </target>
+
+ <target name="test4">
+ <antcallback target="setTwoProperties" return="prop1, prop2, prop3"/>
+ </target>
+
+ <target name="test5">
+ <!-- the beauty of unit testing is this test for checking that a property
+ won't get overwritten also revealed that params weren't supported.
+ AntCallBack is actually based on the ant task, not antcall. -->
+ <antcallback target="setProperties" return="prop1, prop2, prop3">
+ <param name="prop1" value="blah"/>
+ </antcallback>
+ </target>
+
+ <target name="setProperty">
+ <property name="prop1" value="prop1"/>
+ </target>
+
+ <target name="setTwoProperties">
+ <property name="prop2" value="prop2"/>
+ <property name="prop3" value="prop3"/>
+ </target>
+
+ <target name="setProperties">
+ <property name="prop1" value="prop1"/>
+ <property name="prop2" value="prop2"/>
+ <property name="prop3" value="prop3"/>
+ </target>
+
+ <target name="setNoProperties"/>
+</project>
diff --git a/test/resources/logic/asserttest.xml b/test/resources/logic/asserttest.xml
new file mode 100644
index 0000000..2e920e2
--- /dev/null
+++ b/test/resources/logic/asserttest.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0"?>
+
+<project name="asserttest" basedir="." default="test1">
+ <description>
+ test build file for the Assert task
+ </description>
+
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+ <property name="ant.enable.asserts" value="true"/>
+
+ <target name="test1">
+ <property name="testprop" value="true"/>
+ <assert name="testprop"/>
+ <assert name="testprop" value="true"/>
+ </target>
+
+ <target name="test2">
+ <assert name="testprop"/>
+ </target>
+
+ <target name="test3">
+ <property name="testprop" value="true"/>
+ <assert name="testprop" value="12"/>
+ </target>
+
+ <!-- test boolean conditions -->
+ <target name="test4">
+ <assert>
+ <bool>
+ <isgreaterthan arg1="6.02" arg2="4"/>
+ </bool>
+ </assert>
+ <assert>
+ <bool>
+ <isgreaterthan arg1="Many" arg2="Less"/>
+ </bool>
+ </assert>
+ </target>
+ <target name="test5">
+ <assert>
+ <bool>
+ <islessthan arg1="6.02" arg2="23.456"/>
+ </bool>
+ </assert>
+ <assert>
+ <bool>
+ <islessthan arg1="least" arg2="most"/>
+ </bool>
+ </assert>
+ </target>
+ <target name="test6">
+ <property name="testprop" value="false"/>
+ <assert>
+ <bool>
+ <ispropertyfalse property="testprop"/>
+ </bool>
+ </assert>
+ </target>
+ <target name="test7">
+ <property name="testprop" value="no"/>
+ <assert>
+ <bool>
+ <ispropertytrue property="testprop"/>
+ </bool>
+ </assert>
+ </target>
+ <target name="test8">
+ <property name="testprop" value="yes"/>
+ <assert>
+ <bool>
+ <ispropertytrue property="testprop"/>
+ </bool>
+ </assert>
+ </target>
+ <target name="test9">
+ <property name="testprop" value="on"/>
+ <assert>
+ <bool>
+ <ispropertyfalse property="testprop"/>
+ </bool>
+ </assert>
+ </target>
+
+</project>
diff --git a/test/resources/logic/foreach.xml b/test/resources/logic/foreach.xml
new file mode 100644
index 0000000..00e8c8a
--- /dev/null
+++ b/test/resources/logic/foreach.xml
@@ -0,0 +1,104 @@
+<project default="invalid">
+ <target name="invalid">
+ <fail>Don't call this file directly.</fail>
+ </target>
+
+ <target name="setup">
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+ </target>
+
+ <target name="teardown">
+ <delete dir="foreachtest"/>
+ </target>
+
+ <target name="echo">
+ <echo>Called with param: ${param}</echo>
+ </target>
+
+ <target name="convert-bar" unless="param">
+ <property name="param" refid="bar"/>
+ </target>
+
+ <target name="echoFilename" depends="convert-bar">
+ <basename file="${param}" property="param2"/>
+ <echo>Called with param: ${param2}</echo>
+ </target>
+
+ <target name="simpleList" depends="setup">
+ <foreach list="1,2,3" target="echo" param="param"/>
+ </target>
+
+ <target name="delimiter" depends="setup">
+ <foreach list="1/2/3" target="echo" param="param" delimiter="/"/>
+ </target>
+
+ <target name="fileset" depends="setup">
+ <mkdir dir="foreachtest"/>
+ <touch file="foreachtest/1"/>
+ <touch file="foreachtest/2"/>
+ <touch file="foreachtest/3"/>
+ <foreach target="echoFilename" param="param">
+ <fileset dir="foreachtest"/>
+ </foreach>
+ </target>
+
+ <target name="filesetAndList" depends="setup">
+ <mkdir dir="foreachtest"/>
+ <touch file="foreachtest/3"/>
+ <foreach list="1,2" target="echoFilename" param="param">
+ <fileset dir="foreachtest"/>
+ </foreach>
+ </target>
+
+ <target name="noList" depends="setup">
+ <foreach target="echo" param="param"/>
+ </target>
+
+ <target name="noTarget" depends="setup">
+ <foreach list="1,2,3" param="param"/>
+ </target>
+
+ <target name="noParam" depends="setup">
+ <foreach list="1,2,3" target="echo"/>
+ </target>
+
+ <target name="nestedParam" depends="setup">
+ <foreach list="1" target="echo" param="who-cares">
+ <param name="param" value="rincewind"/>
+ </foreach>
+ </target>
+
+ <target name="nestedReference" depends="setup">
+ <path id="foo">
+ <pathelement location="twoflower"/>
+ </path>
+ <foreach list="1" target="echoFilename" param="who-cares">
+ <reference refid="foo" torefid="bar"/>
+ </foreach>
+ </target>
+
+ <target name="path" depends="setup">
+ <mkdir dir="foreachtest"/>
+ <touch file="foreachtest/1"/>
+ <touch file="foreachtest/2"/>
+ <touch file="foreachtest/3"/>
+ <foreach target="echoFilename" param="param">
+ <path>
+ <fileset dir="foreachtest"/>
+ </path>
+ </foreach>
+ </target>
+
+ <target name="pathAndList" depends="setup">
+ <mkdir dir="foreachtest"/>
+ <touch file="foreachtest/3"/>
+ <foreach list="1,2" target="echoFilename" param="param">
+ <path>
+ <fileset dir="foreachtest"/>
+ </path>
+ </foreach>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/test/resources/logic/if.xml b/test/resources/logic/if.xml
new file mode 100644
index 0000000..f9c23c4
--- /dev/null
+++ b/test/resources/logic/if.xml
@@ -0,0 +1,146 @@
+<project default="invalid">
+ <target name="invalid">
+ <fail>Don't call this file directly.</fail>
+ </target>
+
+ <target name="setup">
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+ </target>
+
+ <target name="noCondition" depends="setup">
+ <if>
+ <then>
+ <echo>Foo</echo>
+ </then>
+ </if>
+ </target>
+
+ <target name="twoConditions" depends="setup">
+ <if>
+ <isset property="1"/>
+ <isset property="2"/>
+ <then>
+ <echo>Foo</echo>
+ </then>
+ </if>
+ </target>
+
+ <target name="nothingToDo" depends="setup">
+ <if>
+ <isset property="antcontrib.jar"/>
+ </if>
+ </target>
+
+ <target name="twoThens" depends="setup">
+ <if>
+ <isset property="antcontrib.jar"/>
+ <then/>
+ <then/>
+ </if>
+ </target>
+
+ <target name="twoElses" depends="setup">
+ <if>
+ <isset property="antcontrib.jar"/>
+ <else/>
+ <else/>
+ </if>
+ </target>
+
+ <target name="normalOperation" depends="setup">
+ <if>
+ <isset property="antcontrib.jar"/>
+ <then>
+ <echo>In then</echo>
+ <property name="inner" value="some value"/>
+ <echo>${inner}</echo>
+ </then>
+ <else>
+ <echo>In else</echo>
+ </else>
+ </if>
+ </target>
+
+ <target name="normalOperation2" depends="setup">
+ <if>
+ <not>
+ <isset property="antcontrib.jar"/>
+ </not>
+ <then>
+ <echo>In then</echo>
+ </then>
+ <else>
+ <echo>In else</echo>
+ </else>
+ </if>
+ </target>
+
+ <target name="noConditionInElseif" depends="setup">
+ <if>
+ <isset property="1"/>
+ <elseif>
+ <then>
+ <echo>Foo</echo>
+ </then>
+ </elseif>
+ </if>
+ </target>
+
+ <target name="twoConditionsInElseif" depends="setup">
+ <if>
+ <isset property="1"/>
+ <elseif>
+ <isset property="1"/>
+ <isset property="2"/>
+ <then>
+ <echo>Foo</echo>
+ </then>
+ </elseif>
+ </if>
+ </target>
+
+ <target name="normalOperationElseif" depends="setup">
+ <if>
+ <not>
+ <isset property="antcontrib.jar"/>
+ </not>
+ <then>
+ <echo>In then</echo>
+ </then>
+ <elseif>
+ <isset property="antcontrib.jar"/>
+ <then>
+ <echo>In elseif</echo>
+ </then>
+ </elseif>
+ <else>
+ <echo>In else-branch</echo>
+ </else>
+ </if>
+ </target>
+
+ <target name="normalOperationElseif2" depends="setup">
+ <if>
+ <not>
+ <isset property="antcontrib.jar"/>
+ </not>
+ <then>
+ <echo>In then</echo>
+ </then>
+ <elseif>
+ <not>
+ <isset property="antcontrib.jar"/>
+ </not>
+ <then>
+ <echo>In elseif</echo>
+ </then>
+ </elseif>
+ <else>
+ <echo>In else-branch</echo>
+ </else>
+ </if>
+ </target>
+
+</project>
diff --git a/test/resources/logic/limittest.xml b/test/resources/logic/limittest.xml
new file mode 100644
index 0000000..bd3917f
--- /dev/null
+++ b/test/resources/logic/limittest.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+
+<project name="limittest" basedir="." default="test1">
+ <description>
+ test build file for the Limit task
+ </description>
+
+ <target name="init">
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+ </target>
+
+ <target name="test1" depends="init">
+ <!-- should stop 'sleep' task, no failure message -->
+ <limit maxwait="1">
+ <sleep seconds="5"/>
+ <echo>_failed_</echo>
+ <fail/>
+ </limit>
+ </target>
+
+ <property name="ant.enable.asserts" value="true"/>
+ <target name="test2" depends="init">
+ <!-- should not stop 'sleep' task, should print out '_passed_' -->
+ <stopwatch name="limit"/>
+ <limit maxwait="5">
+ <sleep seconds="1"/>
+ <echo>_passed_</echo>
+ </limit>
+ <stopwatch name="limit" action="total"/>
+ <assert message="Too much time.">
+ <bool>
+ <islessthan arg1="${limit}" arg2="2"/>
+ </bool>
+ </assert>
+ </target>
+
+ <target name="test3" depends="init">
+ <!-- test failonerror attribute, build should fail -->
+ <limit maxwait="3" failonerror="true">
+ <fail message="_failed_"/>
+ </limit>
+ </target>
+
+ <target name="test4" depends="init">
+ <!-- test failonerror attribute, build should not fail -->
+ <limit maxwait="3">
+ <fail message="_failed_"/>
+ </limit>
+ </target>
+
+ <target name="test5" depends="init">
+ <limit maxwait="1" unit="minute">
+ <sleep seconds="65"/>
+ </limit>
+ </target>
+
+ <target name="test6" depends="init">
+ <limit seconds="6">
+ <sleep seconds="7"/>
+ </limit>
+ </target>
+
+</project>
diff --git a/test/resources/logic/outofdate.xml b/test/resources/logic/outofdate.xml
new file mode 100644
index 0000000..8442152
--- /dev/null
+++ b/test/resources/logic/outofdate.xml
@@ -0,0 +1,155 @@
+<project default="invalid">
+ <target name="invalid">
+ <fail>Don't call this file directly.</fail>
+ </target>
+
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+
+ <target name="cleanup">
+ <delete quiet="yes" dir="targets"/>
+ <delete quiet="yes" dir="sources"/>
+ </target>
+
+ <target name="init">
+ <mkdir dir="targets"/>
+ <mkdir dir="sources"/>
+
+ <touch file="sources/s1" millis="100000"/>
+ <touch file="targets/t1" millis="100"/>
+ <touch file="targets/t2" millis="1000000"/>
+ <path id="sources" path="sources/s1"/>
+ <path id="targets">
+ <fileset dir="targets"/>
+ </path>
+ </target>
+
+ <target name="simple" depends="init">
+ <outofdate>
+ <sourcefiles refid="sources"/>
+ <targetfiles refid="targets"/>
+ <sequential>
+ <property name="simple.called" value=""/>
+ </sequential>
+ </outofdate>
+ <fail unless="simple.called">Simple seq not triggered</fail>
+ </target>
+
+ <target name="verbose" depends="init">
+ <outofdate verbose="true">
+ <sourcefiles refid="sources"/>
+ <targetfiles refid="targets"/>
+ </outofdate>
+ </target>
+
+ <target name="delete" depends="init">
+ <outofdate>
+ <sourcefiles refid="sources"/>
+ <targetfiles refid="targets"/>
+ <deletetargets/>
+ </outofdate>
+ <if>
+ <available file="targets/t1"/>
+ <then>
+ <fail>delete failed</fail>
+ </then>
+ </if>
+ <if>
+ <available file="targets/t2"/>
+ <else>
+ <fail>delete too much</fail>
+ </else>
+ </if>
+ </target>
+
+ <target name="delete-all" depends="init">
+ <outofdate>
+ <sourcefiles refid="sources"/>
+ <targetfiles refid="targets"/>
+ <deletetargets all="true"/>
+ </outofdate>
+ <if>
+ <available file="targets/t1"/>
+ <then>
+ <fail>delete failed</fail>
+ </then>
+ </if>
+ <if>
+ <available file="targets/t2"/>
+ <then>
+ <fail>delete all failed</fail>
+ </then>
+ </if>
+ </target>
+
+ <target name="delete-quiet">
+ <outofdate>
+ <sourcefiles refid="sources"/>
+ <targetfiles refid="targets"/>
+ <deletetargets quiet="yes"/>
+ </outofdate>
+ </target>
+
+ <target name="outofdate.init">
+ <!-- generated -->
+ <mkdir dir="outofdate/gen/1/2/3"/>
+ <touch file="outofdate/gen/index.done"/>
+ <touch file="outofdate/gen/1/2/file.done"/>
+ <touch file="outofdate/gen/1/done.c"/>
+ <touch file="outofdate/gen/1/done.h"/>
+ <touch file="outofdate/gen/1/partial.c"/>
+
+ <!-- sources -->
+ <mkdir dir="outofdate/source/1/2/3"/>
+ <touch file="outofdate/source/newer.text"/>
+ <touch file="outofdate/source/1/2/file.notdone"/>
+ <touch file="outofdate/source/1/2/file.done"/>
+ <touch file="outofdate/source/1/done.y"/>
+ <touch file="outofdate/source/1/partial.y"/>
+
+ </target>
+
+ <target name="outofdate.test" depends="outofdate.init">
+ <outofdate
+ outputsources="outofdate.sources"
+ outputtargets="outofdate.targets"
+ alltargets="outofdate.alltargets"
+ outputsourcespath="outofdate.sources.path"
+ outputtargetspath="outofdate.targets.path"
+ >
+ <sourcefiles>
+ <fileset dir="outofdate/source"/>
+ <pathelement path="outofdate.xml"/>
+ </sourcefiles>
+ <targetfiles path="outofdate/gen/index.done"/>
+ <mapper type="glob" from="outofdate/source/1/2/*"
+ to="outofdate/gen/1/2/*"/>
+ <mapper type="glob"
+ from="outofdate/source/*.y"
+ to="outofdate/gen/*.c"/>
+ <mapper type="glob"
+ from="outofdate/source/*.y"
+ to="outofdate/gen/*.h"/>
+ <mapper type="glob"
+ from="outofdate/source/newer.text"
+ to="outofdate.xml"/>
+ <sequential>
+ <echo message="outofdate triggered"/>
+ </sequential>
+ </outofdate>
+ <delete dir="outofdate"/>
+ </target>
+
+ <target name="empty-sources" depends="init">
+ <outofdate>
+ <sourcefiles/>
+ <targetfiles path="THIS IS NOT PRESENT"/>
+ <sequential>
+ <property name="empty-sources.called" value=""/>
+ </sequential>
+ </outofdate>
+ <fail unless="empty-sources.called">Empty sources seq not triggered</fail>
+ </target>
+
+</project>
diff --git a/test/resources/logic/switch.xml b/test/resources/logic/switch.xml
new file mode 100644
index 0000000..fbf8bef
--- /dev/null
+++ b/test/resources/logic/switch.xml
@@ -0,0 +1,87 @@
+<project default="invalid">
+ <target name="invalid">
+ <fail>Don't call this file directly.</fail>
+ </target>
+
+ <target name="setup">
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+ </target>
+
+ <target name="noValue" depends="setup">
+ <switch/>
+ </target>
+
+ <target name="noChildren" depends="setup">
+ <switch value="foo"/>
+ </target>
+
+ <target name="twoDefaults" depends="setup">
+ <switch value="foo">
+ <default/>
+ <default/>
+ </switch>
+ </target>
+
+ <target name="noMatch" depends="setup">
+ <switch value="foo">
+ <case value="bar"/>
+ </switch>
+ </target>
+
+ <target name="caseNoValue" depends="setup">
+ <switch value="foo">
+ <case/>
+ </switch>
+ </target>
+
+ <target name="testDefault" depends="setup">
+ <switch value="foo">
+ <case value="bar">
+ <echo>In case</echo>
+ </case>
+ <default>
+ <echo>In default</echo>
+ <property name="inner" value="baz"/>
+ <echo>${inner}</echo>
+ </default>
+ </switch>
+ </target>
+
+ <target name="testCase" depends="setup">
+ <switch value="foo">
+ <case value="foo">
+ <echo>In case</echo>
+ <property name="inner" value="baz"/>
+ <echo>${inner}</echo>
+ </case>
+ <default>
+ <echo>In default</echo>
+ </default>
+ </switch>
+ </target>
+
+ <target name="testCaseSensitive" depends="setup">
+ <switch value="FOO">
+ <case value="foo">
+ <echo>In case</echo>
+ </case>
+ <default>
+ <echo>In default</echo>
+ </default>
+ </switch>
+ </target>
+
+ <target name="testCaseInSensitive" depends="setup">
+ <switch value="FOO" caseinsensitive="true">
+ <case value="foo">
+ <echo>In case</echo>
+ </case>
+ <default>
+ <echo>In default</echo>
+ </default>
+ </switch>
+ </target>
+
+</project>
diff --git a/test/resources/logic/throw.xml b/test/resources/logic/throw.xml
new file mode 100644
index 0000000..0bea062
--- /dev/null
+++ b/test/resources/logic/throw.xml
@@ -0,0 +1,15 @@
+<project default="invalid">
+ <target name="invalid">
+ <fail>Don't call this file directly.</fail>
+ </target>
+
+ <target name="setup">
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+ </target>
+
+ <target name="useRefid" depends="setup">
+ <throw refid="testref"/>
+ </target>
+</project> \ No newline at end of file
diff --git a/test/resources/logic/timestampselector.xml b/test/resources/logic/timestampselector.xml
new file mode 100644
index 0000000..dd92eb3
--- /dev/null
+++ b/test/resources/logic/timestampselector.xml
@@ -0,0 +1,76 @@
+<project default="init">
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+
+ <property name="test.dir" value="timestampselector"/>
+ <property name="test.file1" location="${test.dir}/file1.txt" />
+ <property name="test.file2" location="${test.dir}/file2.txt" />
+ <property name="test.dir1" location="${test.dir}/dir1" />
+ <property name="test.dir2" location="${test.dir}/dir2" />
+
+ <fileset id="test.files" dir="${test.dir}">
+ <include name="*.txt" />
+ </fileset>
+
+ <path id="test.files.path">
+ <fileset refid="test.files" />
+ </path>
+
+ <dirset id="test.dirs" dir="${test.dir}">
+ <include name="dir*" />
+ </dirset>
+
+ <path id="test.dirs.path">
+ <dirset refid="test.dirs" />
+ </path>
+
+ <target name="init">
+ <delete quiet ="yes" dir="${test.dir}"/>
+ <mkdir dir="${test.dir}"/>
+ <touch file="${test.dir}/file1.txt" />
+ <touch file="${test.dir}/file2.txt" />
+ <mkdir dir="${test.dir}/dir1"/>
+ <mkdir dir="${test.dir}/dir2"/>
+ </target>
+
+ <target name="teardown">
+ <delete quiet="yes" dir="${test.dir}" />
+ </target>
+
+ <target name="filestamp.fl" depends="init">
+ <timestampselector property="latest.fl.tstamp">
+ <path>
+ <fileset refid="test.files" />
+ </path>
+ </timestampselector>
+
+ <echo message="${latest.fl.tstamp}" />
+ </target>
+
+ <target name="filestamp.pr" depends="init">
+ <timestampselector property="latest.pr.tstamp"
+ pathref="test.files.path" />
+
+ <echo message="${latest.pr.tstamp}" />
+ </target>
+
+ <target name="dirstamp.dl" depends="init">
+ <timestampselector property="latest.dl.tstamp">
+ <path>
+ <dirset refid="test.dirs" />
+ </path>
+ </timestampselector>
+
+ <echo message="${latest.dl.tstamp}" />
+
+ </target>
+
+ <target name="dirstamp.pr" depends="init">
+ <timestampselector property="latest.pr.tstamp"
+ pathref="test.dirs.path" />
+
+ <echo message="${latest.pr.tstamp}" />
+ </target>
+
+</project>
diff --git a/test/resources/logic/trycatch.xml b/test/resources/logic/trycatch.xml
new file mode 100644
index 0000000..b8f020d
--- /dev/null
+++ b/test/resources/logic/trycatch.xml
@@ -0,0 +1,108 @@
+<project default="invalid">
+ <target name="invalid">
+ <fail>Don't call this file directly.</fail>
+ </target>
+
+ <target name="setup">
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+ </target>
+
+ <target name="fullTest" depends="setup">
+ <trycatch property="foo" reference="bar">
+ <try>
+ <fail>Tada!</fail>
+ </try>
+
+ <catch>
+ <echo>In &lt;catch&gt;.</echo>
+ </catch>
+
+ <finally>
+ <echo>In &lt;finally&gt;.</echo>
+ </finally>
+ </trycatch>
+ </target>
+
+ <target name="twoCatches" depends="setup">
+ <trycatch>
+ <try>
+ <fail>Tada!</fail>
+ </try>
+
+ <catch>
+ <echo>In &lt;catch&gt;.</echo>
+ </catch>
+
+ <catch>
+ <echo>In &lt;catch2&gt;.</echo>
+ </catch>
+ </trycatch>
+ </target>
+
+ <target name="twoFinallys" depends="setup">
+ <trycatch>
+ <try>
+ <fail>Tada!</fail>
+ </try>
+
+ <finally>
+ <echo>In &lt;finally&gt;.</echo>
+ </finally>
+
+ <finally>
+ <echo>In &lt;finally2&gt;.</echo>
+ </finally>
+ </trycatch>
+ </target>
+
+ <target name="twoTrys" depends="setup">
+ <trycatch>
+ <try>
+ <fail>Tada!</fail>
+ </try>
+
+ <try>
+ <fail>Tada!</fail>
+ </try>
+
+ <catch>
+ <echo>In &lt;catch&gt;.</echo>
+ </catch>
+
+ <finally>
+ <echo>In &lt;finally&gt;.</echo>
+ </finally>
+ </trycatch>
+ </target>
+
+ <target name="noTry" depends="setup">
+ <trycatch>
+ <catch>
+ <echo>In &lt;catch&gt;.</echo>
+ </catch>
+
+ <finally>
+ <echo>In &lt;finally&gt;.</echo>
+ </finally>
+ </trycatch>
+ </target>
+
+ <target name="noException" depends="setup">
+ <trycatch property="foo" reference="bar">
+ <try>
+ <echo>Tada!</echo>
+ </try>
+
+ <catch>
+ <echo>In &lt;catch&gt;.</echo>
+ </catch>
+
+ <finally>
+ <echo>In &lt;finally&gt;.</echo>
+ </finally>
+ </trycatch>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/test/resources/math/mathtest.xml b/test/resources/math/mathtest.xml
new file mode 100644
index 0000000..df4d731
--- /dev/null
+++ b/test/resources/math/mathtest.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+
+<project name="mathtest" basedir="." default="test1">
+ <description>
+ test build file for the Math task
+ </description>
+
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+
+ <target name="test1">
+ <var name="op1" value="12"/>
+ <var name="op2" value="6"/>
+ <var name="op" value="+"/>
+
+ <!-- demo plus -->
+ <math result="result" operand1="${op1}"
+ operation="${op}" operand2="${op2}" datatype="int"/>
+ <echo>${op1} ${op} ${op2} = ${result}</echo>
+ </target>
+</project>
diff --git a/test/resources/platform/osfamily.xml b/test/resources/platform/osfamily.xml
new file mode 100644
index 0000000..c90b07f
--- /dev/null
+++ b/test/resources/platform/osfamily.xml
@@ -0,0 +1,20 @@
+<project default="invalid">
+ <target name="invalid">
+ <fail>Don't call this file directly.</fail>
+ </target>
+
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+
+ <target name="consistency">
+ <osfamily property="foo"/>
+ <condition property="consistent">
+ <os family="${foo}"/>
+ </condition>
+ </target>
+
+ <target name="missingProperty">
+ <osfamily/>
+ </target>
+</project>
diff --git a/test/resources/platform/shellscript.xml b/test/resources/platform/shellscript.xml
new file mode 100644
index 0000000..fc00d91
--- /dev/null
+++ b/test/resources/platform/shellscript.xml
@@ -0,0 +1,108 @@
+<project default="invalid">
+ <target name="invalid">
+ <fail>Don't call this file directly.</fail>
+ </target>
+
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+
+ <!-- targets used to check if a shell exists -->
+ <target name="hassh"> <shellscript shell="sh"/> </target>
+ <target name="hasbash"> <shellscript shell="bash"/> </target>
+ <target name="hasperl"> <shellscript shell="perl"/> </target>
+ <target name="haspython"> <shellscript shell="python"/> </target>
+ <target name="hassed">
+ <!-- Temporary hack, since SED is hanging the tests on windows -->
+ <fail />
+ <shellscript shell="sed"/>
+ </target>
+ <target name="hascmd">
+ <shellscript shell="cmd.exe" tmpsuffix=".bat">
+ <arg value="/C" />
+ echo a
+ </shellscript>
+ </target>
+
+ <target name="sh.hello">
+ <shellscript shell="sh">
+ echo "hello world"
+ </shellscript>
+ </target>
+
+ <target name="bash.hello">
+ <shellscript shell="bash">
+ echo "hello world"
+ </shellscript>
+ </target>
+
+ <!-- python needs to start on the first col -->
+ <target name="python.hello">
+ <shellscript shell="python">
+print "hello world"
+ </shellscript>
+ </target>
+
+ <target name="perl.hello">
+ <shellscript shell="perl">
+ print STDOUT "hello world\n";
+ </shellscript>
+ </target>
+
+ <target name="noshell">
+ <shellscript shell="!!!!^^^a shell that should not exist^^^^^!!!!"/>
+ </target>
+
+
+ <target name="sh.inputstring">
+ <shellscript shell="sh" inputstring="echo hello world"/>
+ </target>
+
+ <target name="sed.test">
+ <shellscript shell="sed" >
+ <arg value="-e"/>
+ <arg value="s/FOO/BAR/g"/>
+ FOO bar bar bar FOO bar bar
+ </shellscript>
+ </target>
+
+ <target name="sh.property">
+ <property name="my.sh.property" value="this is a property"/>
+ <shellscript executable="sh">
+ echo ${my.sh.property}
+ </shellscript>
+ </target>
+
+ <target name="sh.set.property">
+ <shellscript shell="sh" outputproperty="sh.set.property">
+ echo hello world
+ </shellscript>
+ </target>
+
+ <target name="sh.tmp.suffix">
+ <shellscript shell="sh" tmpsuffix=".bat">
+ echo $0
+ </shellscript>
+ </target>
+
+ <target name="cmd.test">
+ <shellscript shell="cmd.exe" tmpsuffix=".bat">
+ <arg value="/C"/>
+ <arg value="call"/>
+ echo hello world
+ </shellscript>
+ </target>
+
+ <target name="dir.test">
+ <mkdir dir="subdir"/>
+ <shellscript shell="sh" dir="subdir" outputproperty="dir.test.property">
+ current=`pwd`
+ echo "dir is $current"
+ </shellscript>
+ <delete dir="subdir"/>
+ </target>
+
+ <target name="command.test">
+ <shellscript command="this should not work"/>
+ </target>
+</project>
diff --git a/test/resources/property/pathtofileset.xml b/test/resources/property/pathtofileset.xml
new file mode 100644
index 0000000..b330cdf
--- /dev/null
+++ b/test/resources/property/pathtofileset.xml
@@ -0,0 +1,45 @@
+<project default="simple">
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+
+ <target name="cleanup">
+ <delete quiet ="yes" dir="${test.dir}"/>
+ </target>
+
+ <target name="init">
+ <property name="test.dir" value="pathtofilesset"/>
+ <mkdir dir="${test.dir}/0/0"/>
+ <mkdir dir="${test.dir}/0/1"/>
+ <mkdir dir="${test.dir}/1/0"/>
+ <mkdir dir="${test.dir}/1/1"/>
+ <touch file="${test.dir}/0/0/0.java"/>
+ <touch file="${test.dir}/0/1/1.java"/>
+ <touch file="${test.dir}/1/0/2.java"/>
+ <touch file="${test.dir}/1/1/3.java"/>
+ </target>
+
+ <target name="simple" depends="init">
+ <path id="simple">
+ <fileset dir="${test.dir}/0" includes="**/*.java"/>
+ <fileset dir="${test.dir}/1" includes="**/*.java"/>
+ </path>
+ <pathtofileset dir="${test.dir}/0" pathrefid="simple"
+ ignoreNonRelative="yes" name="simple.0.fileset"/>
+ <pathconvert targetos="unix" refid="simple.0.fileset" property="simple.0.property"/>
+
+ <pathtofileset dir="${test.dir}/1" pathrefid="simple"
+ ignoreNonRelative="yes" name="simple.1.fileset"/>
+ <pathconvert targetos="unix" refid="simple.1.fileset" property="simple.1.property"/>
+ </target>
+
+ <target name="simple-exception" depends="init">
+ <path id="simple">
+ <fileset dir="${test.dir}/0" includes="**/*.java"/>
+ <fileset dir="${test.dir}/1" includes="**/*.java"/>
+ </path>
+ <pathtofileset dir="${test.dir}/0" pathrefid="simple"
+ name="simple.0.fileset"/>
+ </target>
+
+</project>
diff --git a/test/resources/property/propertycopy.xml b/test/resources/property/propertycopy.xml
new file mode 100644
index 0000000..9425416
--- /dev/null
+++ b/test/resources/property/propertycopy.xml
@@ -0,0 +1,33 @@
+<project default="invalid">
+ <target name="invalid">
+ <fail>Don't call this file directly.</fail>
+ </target>
+
+ <target name="setup">
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+ </target>
+
+ <target name="missingName" depends="setup">
+ <propertycopy from="foo"/>
+ </target>
+
+ <target name="missingFrom" depends="setup">
+ <propertycopy name="foo"/>
+ </target>
+
+ <target name="nonSilent" depends="setup">
+ <propertycopy name="foo" from="bar"/>
+ </target>
+
+ <target name="silent" depends="setup">
+ <propertycopy name="foo" from="bar" silent="true"/>
+ </target>
+
+ <target name="normal" depends="setup">
+ <property name="org" value="MyOrg" />
+ <property name="org.MyOrg.DisplayName" value="My Organiziation" />
+ <propertycopy name="displayName" from="org.${org}.DisplayName" />
+ </target>
+</project> \ No newline at end of file
diff --git a/test/resources/property/propertyselector.properties b/test/resources/property/propertyselector.properties
new file mode 100644
index 0000000..8df9c0e
--- /dev/null
+++ b/test/resources/property/propertyselector.properties
@@ -0,0 +1,7 @@
+#Module 1 Properties
+module.Module1.id=1
+module.Module1.name=Module 1
+
+#Module 2 Properties
+module.Module2.id=2
+module.Module2.name=Module 2
diff --git a/test/resources/property/propertyselector.xml b/test/resources/property/propertyselector.xml
new file mode 100644
index 0000000..d03eea0
--- /dev/null
+++ b/test/resources/property/propertyselector.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="Project" default="build" basedir=".">
+
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties" />
+
+ <property file="propertyselector.properties" />
+
+ <target name="init">
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+ <property file="propertyselector.properties" />
+ </target>
+
+ <target name="select.test.grouping.0" depends="init">
+ <propertyselector property="module.list"
+ match="module\.([^\.]*)\.id"
+ delimiter=","
+ casesensitive="false" />
+
+ <echo message="${module.list}" />
+ </target>
+
+ <target name="select.test.grouping.1" depends="init">
+ <propertyselector property="module.list"
+ match="module\.([^\.]*)\.id"
+ select="\1"
+ delimiter=","
+ casesensitive="false" />
+
+ <echo message="${module.list}" />
+ </target>
+
+</project>
diff --git a/test/resources/property/variabletest.xml b/test/resources/property/variabletest.xml
new file mode 100644
index 0000000..534743e
--- /dev/null
+++ b/test/resources/property/variabletest.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+
+<project name="variabletest" basedir="." default="test1">
+ <description>
+ test build file for the Variable task
+ </description>
+
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+
+ <!-- use like a standard property -->
+ <target name="test1">
+ <var name="x" value="6" />
+ </target>
+
+ <!-- use like a standard property -->
+ <target name="test2">
+ <var name="x" value="12" />
+ </target>
+
+ <!-- can append to itself -->
+ <target name="test3">
+ <var name="x" value="12" />
+ <var name="x" value="6 + ${x}" /> <!-- 6 + 12 -->
+ </target>
+
+ <!-- property can't override -->
+ <target name="test4">
+ <var name="x" value="6" />
+ <property name="x" value="12" />
+ </target>
+
+ <!-- can append multiple times -->
+ <target name="test5">
+ <var name="str" value="I" />
+ <var name="str" value="${str} am" />
+ <var name="str" value="${str} a" />
+ <var name="str" value="${str} string." />
+ <!-- I am a string. -->
+ </target>
+
+ <!-- property can't override -->
+ <target name="test6">
+ <var name="x" value="blue" />
+ <tstamp>
+ <format property="x" pattern="EEEE" />
+ </tstamp>
+ <var name="x" value="Today is ${x}."/>
+ <!-- Today is blue. -->
+ </target>
+
+ <!-- can override property -->
+ <target name="test7">
+ <property name="x" value="12" />
+ <var name="x" value="6" />
+ </target>
+
+ <!-- TODO: uses the Antelope <if>, need to adjust to use ant-contrib <if>
+ <target name="test8">
+ <var name="x" value="6"/>
+ <if name="x" value="6">
+ <var name="x" value="12"/>
+ <else>
+ <var name="x" value="13"/>
+ </else>
+ </if>
+ <echo>${x}</echo>
+ </target>
+ -->
+
+ <target name="test9">
+ <property name="i" value="2"/>
+ <var name="i" unset="true"/>
+ </target>
+
+ <target name="test10">
+ <var name="x" value="test"/>
+ <var name="x" unset="true"/>
+ <property name="x" value="xxx"/>
+ </target>
+</project>
diff --git a/test/resources/walls/compilewithwalls.xml b/test/resources/walls/compilewithwalls.xml
new file mode 100644
index 0000000..6298d76
--- /dev/null
+++ b/test/resources/walls/compilewithwalls.xml
@@ -0,0 +1,237 @@
+<project name="test_compilewithwalls" basedir="." default="cleanup">
+ <property name="test.dir" value="compilewithwalls"/>
+
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+ <classpath location="${antcontrib.jar}"/>
+ </taskdef>
+
+ <target name="cleanup">
+ <delete quiet="yes" dir="${test.dir}"/>
+ </target>
+
+ <target name="init">
+ </target>
+
+ <target name="testTooManyNestedWallElements" depends="init">
+ <compilewithwalls intermediaryBuildDir="${test.dir}/dir2">
+ <walls />
+ <walls />
+ <javac />
+ </compilewithwalls>
+ </target>
+
+ <target name="testTooManyNestedJavacElements" depends="init">
+ <compilewithwalls intermediaryBuildDir="${test.dir}/dir2">
+ <walls />
+ <javac />
+ <javac />
+ </compilewithwalls>
+ </target>
+
+ <target name="testNoWallElement" depends="init">
+ <compilewithwalls intermediaryBuildDir="${test.dir}/dir2">
+ <javac />
+ </compilewithwalls>
+ </target>
+
+ <target name="testNoJavacElement" depends="init">
+ <compilewithwalls intermediaryBuildDir="${test.dir}/dir2">
+ <walls />
+ </compilewithwalls>
+ </target>
+
+ <target name="testNoSrcDirInJavac" depends="init">
+ <compilewithwalls intermediaryBuildDir="${test.dir}/dir2">
+ <walls>
+ <package name="modA" package="biz.xsoftware" />
+ </walls>
+
+ <javac>
+ </javac>
+ </compilewithwalls>
+ </target>
+
+ <target name="testIntermediaryDirAndDestDirSame" depends="init">
+ <mkdir dir="${test.dir}/dir1" />
+ <compilewithwalls intermediaryBuildDir="${test.dir}/dir1">
+ <walls>
+ </walls>
+
+ <javac srcdir="${test.dir}/dir1" destdir="${test.dir}/dir1">
+ </javac>
+ </compilewithwalls>
+ </target>
+
+ <target name="testIntermediaryDirInsideDestDir" depends="init">
+ <mkdir dir="${test.dir}/dir1" />
+ <compilewithwalls intermediaryBuildDir="${test.dir}/dir1/insideDestDir">
+ <walls>
+ </walls>
+
+ <javac srcdir="${test.dir}/dir1" destdir="${test.dir}/dir1">
+ </javac>
+ </compilewithwalls>
+ </target>
+
+ <target name="testPackageDoesntEndWithStar" depends="init">
+ <mkdir dir="${test.dir}/dir1" />
+
+ <compilewithwalls intermediaryBuildDir="${test.dir}/dir2">
+ <walls>
+ <package name="modA" package="biz.xsoftware" />
+ </walls>
+
+ <javac srcdir="${test.dir}/dir1" destdir="${test.dir}/dir1">
+ </javac>
+ </compilewithwalls>
+
+ </target>
+
+ <target name="testPackageDoesntHaveSlash" depends="init">
+ <mkdir dir="${test.dir}/dir1" />
+
+ <compilewithwalls intermediaryBuildDir="${test.dir}/dir2">
+ <walls>
+ <package name="modA" package="biz/xsoftware.*" />
+ </walls>
+
+ <javac srcdir="${test.dir}/dir1" destdir="${test.dir}/dir1">
+ </javac>
+ </compilewithwalls>
+ </target>
+
+ <target name="testDependsOnNonExistPackage" depends="init">
+ <mkdir dir="${test.dir}/dir1" />
+
+ <compilewithwalls intermediaryBuildDir="${test.dir}/dir2">
+ <walls>
+ <package name="modA"
+ package="biz.xsoftware.*"
+ depends="modB" />
+ </walls>
+
+ <javac srcdir="${test.dir}/dir1" destdir="${test.dir}/dir1">
+ </javac>
+ </compilewithwalls>
+
+ </target>
+
+ <target name="testDependsOnPackageAfter" depends="init">
+ <mkdir dir="${test.dir}/dir1" />
+
+ <compilewithwalls intermediaryBuildDir="${test.dir}/dir2">
+ <walls>
+ <package name="modA"
+ package="biz.xsoftware.*"
+ depends="modB" />
+ <package name="modB"
+ package="biz.xsoftware.something.*" />
+ </walls>
+
+ <javac srcdir="${test.dir}/dir1" destdir="${test.dir}/dir1">
+ </javac>
+ </compilewithwalls>
+
+ </target>
+
+ <target name="testPackageABreakingWhenAIsCompiledFirst" depends="init">
+ <mkdir dir="${test.dir}/classes/testA" />
+ <compilewithwalls intermediaryBuildDir="${test.dir}/classes/testAtemp">
+ <walls>
+ <package name="modA"
+ package="mod.modA.*" />
+ <package name="modB"
+ package="mod.modB.*" />
+ <package name="mod"
+ package="mod.*"
+ depends="modA,modB" />
+ </walls>
+
+ <javac srcdir="./testA" destdir="${test.dir}/classes/testA">
+ </javac>
+ </compilewithwalls>
+
+ </target>
+
+ <target name="testPackageBBreakingWhenAIsCompiledFirst" depends="init">
+ <mkdir dir="${test.dir}/classes/testB" />
+ <compilewithwalls intermediaryBuildDir="${test.dir}/classes/testBtemp">
+ <walls>
+ <package name="modA"
+ package="mod.modA.*" />
+ <package name="modB"
+ package="mod.modB.*" />
+ <package name="mod"
+ package="mod.*"
+ depends="modA,modB" />
+ </walls>
+
+ <javac srcdir="./testB" destdir="${test.dir}/classes/testB">
+ </javac>
+ </compilewithwalls>
+
+ </target>
+
+ <target name="testMoreThanOneSrcDirInJavac" depends="init">
+ <mkdir dir="${test.dir}/classes/testX" />
+ <compilewithwalls intermediaryBuildDir="${test.dir}/classes/testXtemp">
+ <walls/>
+ <javac destdir="${test.dir}/classes/testX">
+ <src path="${test.dir}/dir1">
+ </src>
+ <src path="xyz">
+ </src>
+ </javac>
+ </compilewithwalls>
+ </target>
+
+ <target name="testCompileOfAllUsingDepends" depends="init">
+ <mkdir dir="${test.dir}/classes/testC" />
+ <compilewithwalls intermediaryBuildDir="${test.dir}/classes/testCtemp">
+ <walls>
+ <package name="modA"
+ package="mod.modA.*" />
+ <package name="modB"
+ package="mod.modB.*" />
+ <package name="mod"
+ package="mod.*"
+ depends="modA,modB" />
+ </walls>
+
+ <javac srcdir="./testC" destdir="${test.dir}/classes/testC">
+ </javac>
+ </compilewithwalls>
+
+ </target>
+
+<!--
+*********************************************************
+ These are mostly the same tests above but making sure it works with
+ external walls.xml file.
+*********************************************************
+-->
+ <target name="testDependsOnPackageAfterExternalWalls" depends="init">
+ <mkdir dir="${test.dir}/dir1" />
+ <compilewithwalls walls="dependsafter.xml" intermediaryBuildDir="${test.dir}/dir2">
+ <javac srcdir="${test.dir}/dir1" destdir="${test.dir}/dir1">
+ </javac>
+ </compilewithwalls>
+ </target>
+
+ <target name="testPackageBBreakingWhenAIsCompiledFirstExternalWalls" depends="init">
+ <mkdir dir="${test.dir}/classes/testB" />
+ <compilewithwalls walls="packageB-break.xml" intermediaryBuildDir="${test.dir}/classes/testBtemp">
+ <javac srcdir="./testB" destdir="${test.dir}/classes/testB">
+ </javac>
+ </compilewithwalls>
+ </target>
+
+ <target name="testCompileOfAllUsingDependsExternalWalls" depends="init">
+ <mkdir dir="${test.dir}/classes/testC" />
+ <compilewithwalls walls="walls.xml" intermediaryBuildDir="${test.dir}/classes/testCtemp">
+ <javac srcdir="./testC" destdir="${test.dir}/classes/testC">
+ </javac>
+ </compilewithwalls>
+ </target>
+
+</project>
diff --git a/test/resources/walls/dependsafter.xml b/test/resources/walls/dependsafter.xml
new file mode 100644
index 0000000..30aac80
--- /dev/null
+++ b/test/resources/walls/dependsafter.xml
@@ -0,0 +1,7 @@
+ <walls>
+ <package name="modA"
+ package="biz.xsoftware.*"
+ depends="modB" />
+ <package name="modB"
+ package="biz.xsoftware.something.*" />
+ </walls> \ No newline at end of file
diff --git a/test/resources/walls/packageB-break.xml b/test/resources/walls/packageB-break.xml
new file mode 100644
index 0000000..4fa8bb3
--- /dev/null
+++ b/test/resources/walls/packageB-break.xml
@@ -0,0 +1,9 @@
+<walls>
+ <package name="modA"
+ package="mod.modA.*" />
+ <package name="modB"
+ package="mod.modB.*" />
+ <package name="mod"
+ package="mod.*"
+ depends="modA,modB" />
+</walls> \ No newline at end of file
diff --git a/test/resources/walls/testA/mod/modA/ModuleA.java b/test/resources/walls/testA/mod/modA/ModuleA.java
new file mode 100644
index 0000000..6950bdc
--- /dev/null
+++ b/test/resources/walls/testA/mod/modA/ModuleA.java
@@ -0,0 +1,10 @@
+
+package mod.modA;
+
+import mod.modB.ModuleB;
+
+public class ModuleA
+{
+ private ModuleB moduleB;
+
+}; \ No newline at end of file
diff --git a/test/resources/walls/testA/mod/modB/ModuleB.java b/test/resources/walls/testA/mod/modB/ModuleB.java
new file mode 100644
index 0000000..10175b5
--- /dev/null
+++ b/test/resources/walls/testA/mod/modB/ModuleB.java
@@ -0,0 +1,6 @@
+
+package mod.modB;
+
+public class ModuleB
+{
+}; \ No newline at end of file
diff --git a/test/resources/walls/testB/mod/modA/TestBModuleA.java b/test/resources/walls/testB/mod/modA/TestBModuleA.java
new file mode 100644
index 0000000..b6b7929
--- /dev/null
+++ b/test/resources/walls/testB/mod/modA/TestBModuleA.java
@@ -0,0 +1,7 @@
+
+package mod.modA;
+
+public class TestBModuleA
+{
+
+}; \ No newline at end of file
diff --git a/test/resources/walls/testB/mod/modB/TestBModuleB.java b/test/resources/walls/testB/mod/modB/TestBModuleB.java
new file mode 100644
index 0000000..c7428ff
--- /dev/null
+++ b/test/resources/walls/testB/mod/modB/TestBModuleB.java
@@ -0,0 +1,9 @@
+
+package mod.modB;
+
+import mod.modA.TestBModuleA;
+
+public class TestBModuleB
+{
+ private TestBModuleA temp;
+}; \ No newline at end of file
diff --git a/test/resources/walls/testC/mod/TestCModule.java b/test/resources/walls/testC/mod/TestCModule.java
new file mode 100644
index 0000000..5d9c0e8
--- /dev/null
+++ b/test/resources/walls/testC/mod/TestCModule.java
@@ -0,0 +1,11 @@
+
+package mod;
+
+import mod.modA.TestCModuleA;
+import mod.modB.TestCModuleB;
+
+public class TestCModule
+{
+ private TestCModuleA temp1;
+ private TestCModuleB temp2;
+}; \ No newline at end of file
diff --git a/test/resources/walls/testC/mod/modA/TestCModuleA.java b/test/resources/walls/testC/mod/modA/TestCModuleA.java
new file mode 100644
index 0000000..8b9f8d6
--- /dev/null
+++ b/test/resources/walls/testC/mod/modA/TestCModuleA.java
@@ -0,0 +1,7 @@
+
+package mod.modA;
+
+public class TestCModuleA
+{
+
+}; \ No newline at end of file
diff --git a/test/resources/walls/testC/mod/modB/TestCModuleB.java b/test/resources/walls/testC/mod/modB/TestCModuleB.java
new file mode 100644
index 0000000..989ebdf
--- /dev/null
+++ b/test/resources/walls/testC/mod/modB/TestCModuleB.java
@@ -0,0 +1,7 @@
+
+package mod.modB;
+
+
+public class TestCModuleB
+{
+}; \ No newline at end of file
diff --git a/test/resources/walls/walls.xml b/test/resources/walls/walls.xml
new file mode 100644
index 0000000..d5ca6b8
--- /dev/null
+++ b/test/resources/walls/walls.xml
@@ -0,0 +1,9 @@
+<walls>
+ <package name="modA"
+ package="mod.modA.*" />
+ <package name="modB"
+ package="mod.modB.*" />
+ <package name="mod"
+ package="mod.*"
+ depends="modA,modB" />
+</walls> \ No newline at end of file