jvanzyl 01/08/26 09:21:41
Modified: jjar build.xml
jjar/src/java/org/apache/commons/jjar DependencyEngine.java
Added: jjar build.properties.sample
jjar/src/test/org/apache/commons/jjar
TestDependencyEngine.java
Log:
- added a reset to the dep engine so it can be reused
- add sample build.properties file
- added start of junit tests for the dep engine
- udpated build file to run tests
Revision Changes Path
1.5 +28 -1 jakarta-commons-sandbox/jjar/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jjar/build.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- build.xml 2001/08/21 22:58:37 1.4
+++ build.xml 2001/08/26 16:21:40 1.5
@@ -1,7 +1,7 @@
<project name="Jakarta Jar Archive Respository" default="jar" basedir=".">
<!--
- $Id: build.xml,v 1.4 2001/08/21 22:58:37 jon Exp $
+ $Id: build.xml,v 1.5 2001/08/26 16:21:40 jvanzyl Exp $
-->
<!-- ========== Initialize Properties ===================================== -->
@@ -181,7 +181,34 @@
manifest="${build.home}/conf/MANIFEST.MF"/>
</target>
+ <target name="compile.tests" depends="compile"
+ description="Compile unit test cases">
+ <javac srcdir="${test.home}"
+ destdir="${build.home}/tests"
+ debug="${compile.debug}"
+ deprecation="${compile.deprecation}"
+ optimize="${compile.optimize}">
+ <classpath refid="test.classpath"/>
+ </javac>
+ <copy todir="${build.home}/tests" filtering="on">
+ <fileset dir="${test.home}" excludes="**/*.java"/>
+ </copy>
+ </target>
+
<!-- ========== Unit Test Targets ========================================= -->
+
+ <target name="test" depends="compile.tests,test.depengine"
+ description="Run all unit test cases">
+ </target>
+
+ <target name="test.depengine">
+ <echo message="Running DependencyEngine tests ..."/>
+ <java classname="${test.runner}" fork="yes"
+ failonerror="${test.failonerror}">
+ <arg value="org.apache.commons.jjar.TestDependencyEngine"/>
+ <classpath refid="test.classpath"/>
+ </java>
+ </target>
</project>
1.1 jakarta-commons-sandbox/jjar/build.properties.sample
Index: build.properties.sample
===================================================================
junit.jar = /home/jvanzyl/js/jars/junit-3.7.jar
1.4 +16 -112
jakarta-commons-sandbox/jjar/src/java/org/apache/commons/jjar/DependencyEngine.java
Index: DependencyEngine.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/jjar/src/java/org/apache/commons/jjar/DependencyEngine.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DependencyEngine.java 2001/08/21 11:36:27 1.3
+++ DependencyEngine.java 2001/08/26 16:21:40 1.4
@@ -82,7 +82,7 @@
* </p>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Geir Magnusson Jr.</a>
- * @version $Id: DependencyEngine.java,v 1.3 2001/08/21 11:36:27 geirm Exp $
+ * @version $Id: DependencyEngine.java,v 1.4 2001/08/26 16:21:40 jvanzyl Exp $
*/
public class DependencyEngine
{
@@ -104,6 +104,15 @@
}
/**
+ * Reset the dependency engine, clear all entries
+ * and start from scratch.
+ */
+ public void reset()
+ {
+ projects = new HashMap();
+ }
+
+ /**
* returns a list of dependencies for a given package
*/
public List getDependencies( String pkg )
@@ -378,6 +387,12 @@
return;
}
+ public void addProject(String project, List dependencies)
+ throws Exception
+ {
+ addProject(project, dependencies, project);
+ }
+
/**
* Adds a project and it's associated dependencies. The dependencies
* currently do not have to be projects themselves.
@@ -431,117 +446,6 @@
projects.put( project, n );
return;
- }
-
- /**
- * little demonstration test
- */
- public static void main(String arg[] )
- {
- /*
- * tests the engine with
- * A B C
- * ^ ^ ^\
- * \/ \/ |
- * D <-E |
- * ^ /
- * \ /
- * F <-
- */
-
- try
- {
- DependencyEngine d = new DependencyEngine();
-
- ArrayList deps = null;
-
- /*
- * A : no dependencies
- */
- deps = new ArrayList();
- d.addProject( "A", deps, "A" );
-
- /*
- * B : no dependencies
- */
- deps = new ArrayList();
- d.addProject("B", deps, "B" );
-
- /*
- * C -> F
- */
- deps = new ArrayList();
- deps.add("F");
- d.addProject("C", deps, "C");
-
- /*
- * D -> A, B
- */
- deps = new ArrayList();
- deps.add("A");
- deps.add("B");
- d.addProject("D", deps, "D");
-
- /*
- * E -> B, C, D
- */
- deps = new ArrayList();
- deps.add("B");
- deps.add("C");
- deps.add("D");
- d.addProject("E", deps, "E" );
-
- /*
- * F -> D
- */
- deps = new ArrayList();
- deps.add("D");
- d.addProject("F", deps, "F" );
-
- /*
- * generate the list of all
- */
- List l = d.generateCookielist();
-
- /*
- * show us
- */
- Iterator i = l.iterator();
-
- while(i.hasNext())
- {
- String s = (String) i.next();
-
- System.out.println("Building : " + s );
- }
-
- /*
- * now test the 'project set' dep gen, so
- * give it two projects - you should get out
- * the correctly ordered list so that all
- * can be correctly built
- */
-
- System.out.println("Mix test :");
-
- ArrayList foo = new ArrayList();
- foo.add("E");
- foo.add("D");
- List foofoo = d.getDependencies(foo);
-
- i = foofoo.iterator();
-
- while(i.hasNext())
- {
- String s = (String) i.next();
-
- System.out.println("Building : " + s );
- }
- }
- catch( Exception e )
- {
- System.out.println("main : " + e );
- }
}
}
1.1
jakarta-commons-sandbox/jjar/src/test/org/apache/commons/jjar/TestDependencyEngine.java
Index: TestDependencyEngine.java
===================================================================
package org.apache.commons.jjar;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
* @version $Id: TestDependencyEngine.java,v 1.1 2001/08/26 16:21:41 jvanzyl Exp $
*/
public class TestDependencyEngine
extends TestCase
{
private DependencyEngine d;
public TestDependencyEngine(String testName)
{
super(testName);
}
public static Test suite()
{
return new TestSuite(TestDependencyEngine.class);
}
public static void main(String args[])
{
String[] testCaseName = { TestDependencyEngine.class.getName() };
junit.textui.TestRunner.main(testCaseName);
}
public void setUp()
{
d = new DependencyEngine();
}
public void testProjectDependencies()
{
String cookieList = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
try
{
addAlphabetProjects(d);
assertEquals(getCookieListString(d), cookieList);
}
catch(Exception e)
{
fail();
}
}
public void testReset()
{
String cookieList = "";
try
{
addAlphabetProjects(d);
d.reset();
assertEquals(getCookieListString(d), cookieList);
}
catch(Exception e)
{
fail();
}
}
private void addAlphabetProjects(DependencyEngine d)
throws Exception
{
d.addProject( "Z", deps("Y"));
d.addProject( "Y", deps("X"));
d.addProject( "X", deps("W"));
d.addProject( "W", deps("V"));
d.addProject( "V", deps("U"));
d.addProject( "U", deps("T"));
d.addProject( "T", deps("S"));
d.addProject( "S", deps("R"));
d.addProject( "R", deps("Q"));
d.addProject( "Q", deps("P"));
d.addProject( "P", deps("O"));
d.addProject( "O", deps("N"));
d.addProject( "N", deps("M"));
d.addProject( "M", deps("L"));
d.addProject( "L", deps("K"));
d.addProject( "K", deps("J"));
d.addProject( "J", deps("I"));
d.addProject( "I", deps("H"));
d.addProject( "H", deps("G"));
d.addProject( "G", deps("F"));
d.addProject( "F", deps("E"));
d.addProject( "E", deps("D"));
d.addProject( "D", deps("C"));
d.addProject( "C", deps("B"));
d.addProject( "B", deps("A"));
d.addProject( "A", deps(null));
}
private String getCookieListString(DependencyEngine d)
throws Exception
{
StringBuffer sb = new StringBuffer();
List depList = d.generateCookielist();
Iterator i = depList.iterator();
while(i.hasNext())
{
sb.append((String) i.next());
}
return sb.toString();
}
private List deps(String project)
{
ArrayList deps = new ArrayList();
if (project != null)
{
StringTokenizer st = new StringTokenizer(project, ",");
while(st.hasMoreTokens())
{
deps.add(st.nextToken());
}
}
return deps;
}
public void testMultiProjectDependency()
{
try
{
d.addProject("1", deps("A"));
}
catch( Exception e )
{
}
}
}