Title: [688] trunk: [EK] Removed Cotta, fixed ClassMocks which had not been added to build and therefore got broken.

Diff

Modified: trunk/.classpath (687 => 688)

--- trunk/.classpath	2007-02-25 17:25:30 UTC (rev 687)
+++ trunk/.classpath	2007-02-25 19:03:34 UTC (rev 688)
@@ -1,43 +1,38 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="core/src/java"/>
-	<classpathentry kind="src" path="core/src/behaviour"/>
-	<classpathentry kind="src" path="extensions/ant/src/java"/>
-	<classpathentry kind="src" path="extensions/ant/src/behaviour"/>
-	<classpathentry kind="src" path="extensions/classmocks/src/behaviour"/>
-	<classpathentry kind="src" path="extensions/classmocks/src/java"/>
-	<classpathentry kind="src" path="extensions/jmock/src/java"/>
-	<classpathentry kind="src" path="extensions/jmock/src/behaviour"/>
-	<classpathentry kind="src" path="extensions/junit/src/java"/>
-	<classpathentry kind="src" path="extensions/junit/src/behaviour"/>
-	<classpathentry kind="src" path="extensions/swing/src/java"/>
-	<classpathentry kind="src" path="extensions/swing/src/behaviour"/>
-	<classpathentry kind="src" path="everything/src/behaviour"/>
-	<classpathentry kind="src" path="examples/atm/src/java"/>
-	<classpathentry kind="src" path="examples/atm/src/stories"/>
-	<classpathentry kind="src" path="examples/currency/src/java"/>
-	<classpathentry kind="src" path="examples/currency/src/behaviour"/>
-	<classpathentry kind="src" path="examples/hellbound/src/java"/>
-	<classpathentry kind="src" path="examples/hellbound/src/behaviour"/>
-	<classpathentry kind="src" path="examples/hellbound/src/stories"/>
-	<classpathentry kind="src" path="sandbox/antlr/src/java"/>
-	<classpathentry kind="src" path="sandbox/fit/src/java"/>
-	<classpathentry kind="src" path="sandbox/fit/src/test"/>
-	<classpathentry kind="src" path="plugins/maven/src/main/java"/>
-	<classpathentry kind="src" path="plugins/maven/src/it/src/main/java"/>
-	<classpathentry kind="lib" path="lib/cotta/cotta-1.0.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/antlr-2.7.6.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/fit-1.1.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/cglib-full-2.0.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/jmock-1.1.0.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/jmock-cglib-1.1.0.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/junit-3.8.2.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/sablecc-3.2.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/velocity-dep-1.4.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/proxytoys-0.2.1.jar"/>
-	<classpathentry kind="lib" path="lib/extensions/ant-1.6.5.jar"/>
-	<classpathentry kind="lib" path="lib/plugins/maven-plugin-api-2.0.jar"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="core/src/java"/>
+	<classpathentry kind="src" path="core/src/behaviour"/>
+	<classpathentry kind="src" path="extensions/ant/src/java"/>
+	<classpathentry kind="src" path="extensions/ant/src/behaviour"/>
+	<classpathentry kind="src" path="extensions/classmocks/src/behaviour"/>
+	<classpathentry kind="src" path="extensions/classmocks/src/java"/>
+	<classpathentry kind="src" path="extensions/jmock/src/java"/>
+	<classpathentry kind="src" path="extensions/jmock/src/behaviour"/>
+	<classpathentry kind="src" path="extensions/junit/src/java"/>
+	<classpathentry kind="src" path="extensions/junit/src/behaviour"/>
+	<classpathentry kind="src" path="extensions/swing/src/java"/>
+	<classpathentry kind="src" path="extensions/swing/src/behaviour"/>
+	<classpathentry kind="src" path="everything/src/behaviour"/>
+	<classpathentry kind="src" path="examples/atm/src/java"/>
+	<classpathentry kind="src" path="examples/atm/src/stories"/>
+	<classpathentry kind="src" path="examples/currency/src/java"/>
+	<classpathentry kind="src" path="examples/currency/src/behaviour"/>
+	<classpathentry kind="src" path="examples/hellbound/src/java"/>
+	<classpathentry kind="src" path="examples/hellbound/src/behaviour"/>
+	<classpathentry kind="src" path="examples/hellbound/src/stories"/>
+	<classpathentry kind="src" path="sandbox/antlr/src/java"/>
+	<classpathentry kind="src" path="sandbox/fit/src/java"/>
+	<classpathentry kind="src" path="sandbox/fit/src/test"/>
+	<classpathentry kind="lib" path="lib/extensions/antlr-2.7.6.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/fit-1.1.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/cglib-full-2.0.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/jmock-1.1.0.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/jmock-cglib-1.1.0.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/junit-3.8.2.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/sablecc-3.2.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/velocity-dep-1.4.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/proxytoys-0.2.1.jar"/>
+	<classpathentry kind="lib" path="lib/extensions/ant-1.6.5.jar"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

Modified: trunk/build.xml (687 => 688)

--- trunk/build.xml	2007-02-25 17:25:30 UTC (rev 687)
+++ trunk/build.xml	2007-02-25 19:03:34 UTC (rev 688)
@@ -17,7 +17,6 @@
 		<fileset dir="${lib_dir}" includes="extensions/jmock-cglib-1.1.0.jar" />
 		<fileset dir="${lib_dir}" includes="extensions/junit-3.8.2.jar" />
 		<fileset dir="${lib_dir}" includes="extensions/fit-1.1.jar" />
-		<fileset dir="${lib_dir}" includes="extensions/cotta-1.0.jar" />
 		<fileset dir="${lib_dir}" includes="extensions/velocity-dep-1.4.jar" />
 		<fileset dir="${lib_dir}" includes="extensions/proxytoys-0.2.1.jar" />
 	</path>
@@ -61,9 +60,6 @@
 
 	<target name="build-jar" depends="-init" description="Compile and assemble the jar">
 		<mkdir dir="${classes_dir}" />
-		<unjar taskname="importing cotta classes" src="" dest="${classes_dir}">
-			<patternset includes="net/**/*.*"/>
-		</unjar>
 		<javac taskname="build jbehave" srcdir="${core_dir}/src/java" destdir="${classes_dir}" 
 			source="${jdk.version}" target="${jdk.version}" classpathref="libs" debug="true">
 			<src>

Modified: trunk/core/src/behaviour/org/jbehave/core/story/AllBehaviours.java (687 => 688)

--- trunk/core/src/behaviour/org/jbehave/core/story/AllBehaviours.java	2007-02-25 17:25:30 UTC (rev 687)
+++ trunk/core/src/behaviour/org/jbehave/core/story/AllBehaviours.java	2007-02-25 19:03:34 UTC (rev 688)
@@ -30,20 +30,13 @@
                 StoryBuilderBehaviour.class,
                 StoryRunnerBehaviour.class,
                 TextStoryParserBehaviour.class,
-//                EventOutcomeStepBehaviour.class,
-//                EventsBehaviour.class,
-//                GivensBehaviour.class,
                 GivenStepBehaviour.class,
                 GivenScenarioBehaviour.class,
                 MultiStepScenarioBehaviour.class,
                 NarrativeBehaviour.class,
-//                OutcomesBehaviour.class,
                 OutcomeStepBehaviour.class,
                 ScenarioDrivenStoryBehaviour.class,
-//                ScenariosBehaviour.class,
-//                ScenarioUsingMiniMockBehaviour.class,
                 AbstractStepBehaviour.class,
-//                StepsBehaviour.class,
                 PlainTextScenarioListenerBehaviour.class,
 				PlainTextRendererBehaviour.class,
         };

Deleted: trunk/core/src/behaviour/org/jbehave/core/util/BehaviourCollectorBehaviour.java (687 => 688)

--- trunk/core/src/behaviour/org/jbehave/core/util/BehaviourCollectorBehaviour.java	2007-02-25 17:25:30 UTC (rev 687)
+++ trunk/core/src/behaviour/org/jbehave/core/util/BehaviourCollectorBehaviour.java	2007-02-25 19:03:34 UTC (rev 688)
@@ -1,55 +0,0 @@
-package org.jbehave.core.util;
-
-import java.util.Collection;
-import java.util.List;
-
-import net.sf.cotta.TDirectory;
-import net.sf.cotta.TFileFactory;
-import net.sf.cotta.memory.InMemoryFileSystem;
-
-import org.jbehave.core.mock.Matcher;
-import org.jbehave.core.mock.UsingMatchers;
-
-public class BehaviourCollectorBehaviour extends UsingMatchers {
-    private TDirectory directory;
-
-    public void setUp() throws Exception {
-        directory = new TFileFactory(new InMemoryFileSystem()).dir("/");
-    }
-
-    public void shouldCollectFilesMatchingNamePattern() throws Exception {
-        directory.file("OneBehaviour.class").create();
-        directory.file("TwoBehaviour.class").create();
-        directory.file("RegularClass.class").create();
-        List list = new BehaviourCollector(directory, "").collectNames();
-        ensureThat(list, collectionContains("OneBehaviour"));
-        ensureThat(list, collectionContains("TwoBehaviour"));
-        ensureThat(list.size(), eq(2));
-    }
-
-    public void shouldConstructCorrectFullClassNameWithPackageName() throws Exception {
-        directory.file("ThisBehaviour.class").create();
-        List list = new BehaviourCollector(directory, "one.two.three").collectNames();
-        ensureThat(list, collectionContains("one.two.three.ThisBehaviour"));
-        ensureThat(list.size(), eq(1));
-    }
-
-    public void shouldTraverseToSubDirectories() throws Exception {
-        directory.dir("directory").file("AnotherBehaviour.class").create();
-        List list = new BehaviourCollector(directory, "").collectNames();
-        ensureThat(list, collectionContains("directory.AnotherBehaviour"));
-        ensureThat(list.size(), eq(1));
-    }
-
-    private Matcher collectionContains(final Object expected) {
-        return new Matcher() {
-            public boolean matches(Object arg) {
-                return arg != null && ((Collection) arg).contains(expected);
-            }
-
-            public String toString() {
-                return "collection should contains <" + expected + ">";
-            }
-        };
-    }
-}

Deleted: trunk/core/src/behaviour/org/jbehave/core/util/BehavioursLoaderBehaviour.java (687 => 688)

--- trunk/core/src/behaviour/org/jbehave/core/util/BehavioursLoaderBehaviour.java	2007-02-25 17:25:30 UTC (rev 687)
+++ trunk/core/src/behaviour/org/jbehave/core/util/BehavioursLoaderBehaviour.java	2007-02-25 19:03:34 UTC (rev 688)
@@ -1,82 +0,0 @@
-package org.jbehave.core.util;
-
-import java.lang.reflect.Modifier;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.jbehave.core.listener.PlainTextListenerBehaviourSupport;
-import org.jbehave.core.minimock.MiniMockObjectBehaviour;
-import org.jbehave.core.mock.Matcher;
-import org.jbehave.core.mock.UsingMatchers;
-
-
-public class BehavioursLoaderBehaviour extends UsingMatchers {
-
-    public void shouldLoadPublicBehaviourEndedWithBehaviourButNotAbstract() throws Exception {
-        BehavioursLoader loader = new BehavioursLoader(getClass());
-        Set loadedFromBehaviourLoader = new HashSet(Arrays.asList(loader.loadBehaviours()));
-        ensureThatBehavioursAreLoaded(loadedFromBehaviourLoader);
-    }
-
-    public void shouldLoadBehaviourUsingCustomClassLoader() throws Exception {
-        BehavioursLoader loader = new BehavioursLoader(getClass(), new CustomClassLoader(false));
-        Set loadedFromBehaviourLoader = new HashSet(Arrays.asList(loader.loadBehaviours()));
-        ensureThatBehavioursAreLoaded(loadedFromBehaviourLoader);
-    }
-
-    public void shouldNotLoadBehaviourUsingInvalidCustomClassLoader() throws Exception {
-        BehavioursLoader loader = new BehavioursLoader(getClass(), new CustomClassLoader(true));
-        Set loadedFromBehaviourLoader = new HashSet();
-        try {
-            loadedFromBehaviourLoader = new HashSet(Arrays.asList(loader
-                    .loadBehaviours()));
-        } catch ( Exception e) {
-            ensureThat(loadedFromBehaviourLoader, setEmpty());
-        }        
-    }
-    
-    private void ensureThatBehavioursAreLoaded(Set loadedFromBehaviourLoader) {
-        ensureThat(loadedFromBehaviourLoader, setContains(MiniMockObjectBehaviour.class));
-        ensureThat(Modifier.isAbstract(PlainTextListenerBehaviourSupport.class.getModifiers()), eq(true));
-        ensureThat(loadedFromBehaviourLoader, not(setContains(PlainTextListenerBehaviourSupport.class)));
-    }
-
-    private Matcher setContains(final Object item) {
-        return new Matcher() {
-            public boolean matches(Object arg) {
-                return ((Set) arg).contains(item);
-            }
-
-            public String toString() {
-                return "collection contains <" + item + ">";
-            }
-        };
-    }
-
-    private Matcher setEmpty() {
-        return new Matcher() {
-            public boolean matches(Object arg) {
-                return ((Set) arg).isEmpty();
-            }
-
-            public String toString() {
-                return "collection is empty";
-            }
-        };
-    }
-
-    
-    private static class CustomClassLoader extends ClassLoader {        
-        boolean invalid;        
-        public CustomClassLoader(boolean invalid) {
-            this.invalid = invalid;
-        }
-        public Class findClass(String name) throws ClassNotFoundException{
-            if ( invalid ){
-                throw new ClassNotFoundException();
-            }
-            return BehavioursLoader.class.getClassLoader().loadClass(name);            
-        }
-    }
-}

Modified: trunk/core/src/java/org/jbehave/core/minimock/UsingMiniMock.java (687 => 688)

--- trunk/core/src/java/org/jbehave/core/minimock/UsingMiniMock.java	2007-02-25 17:25:30 UTC (rev 687)
+++ trunk/core/src/java/org/jbehave/core/minimock/UsingMiniMock.java	2007-02-25 19:03:34 UTC (rev 688)
@@ -36,11 +36,21 @@
     }
     
     public Mock mock(Class type, String name) {
-        Mock mock = MiniMockObject.mock(type, name);
+        Mock mock = createMock(type, name);
         mocks.add(mock);
         return mock;
     }
 
+    /**
+     * Can be overridden to allow other kinds of mocks 
+     * to be included in the same framework as MiniMock.
+     *
+     * @see org.jbehave.classmock.UsingClassMock
+     */
+    protected Mock createMock(Class type, String name) {
+        return MiniMockObject.mock(type, name);
+    }
+
     public Mock strictMock(Class type) {
         return strictMock(type, mockName(type));
     }

Deleted: trunk/core/src/java/org/jbehave/core/util/BehaviourCollector.java (687 => 688)

--- trunk/core/src/java/org/jbehave/core/util/BehaviourCollector.java	2007-02-25 17:25:30 UTC (rev 687)
+++ trunk/core/src/java/org/jbehave/core/util/BehaviourCollector.java	2007-02-25 19:03:34 UTC (rev 688)
@@ -1,56 +0,0 @@
-package org.jbehave.core.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import net.sf.cotta.TDirectory;
-import net.sf.cotta.TFile;
-import net.sf.cotta.TIoException;
-
-public class BehaviourCollector {
-    private TDirectory directory;
-    private String packageNamePrefix;
-
-    public BehaviourCollector(TDirectory directory, String packageName) {
-        this.directory = directory;
-        this.packageNamePrefix = packageName.length() == 0 ? "" : packageName + ".";
-    }
-
-    public List collectNames() throws TIoException {
-        ArrayList result = new ArrayList();
-        collectClasses(result);
-        collectSubDirectories(result);
-        return result;
-    }
-
-    private void collectClasses(ArrayList result) throws TIoException {
-        TFile[] files = directory.listFiles();
-        for (int i = 0; i < files.length; i++) {
-            TFile file = files[i];
-            if (looksLikeBehaviourClassFile(file)) {
-                result.add(fullClassName(shortClassName(file.name())));
-            }
-        }
-    }
-
-    private void collectSubDirectories(List result) throws TIoException {
-        TDirectory[] directories = directory.listDirs();
-        for (int i = 0; i < directories.length; i++) {
-            TDirectory directory = directories[i];
-            BehaviourCollector behaviourCollector = new BehaviourCollector(directory, packageNamePrefix + directory.name());
-            result.addAll(behaviourCollector.collectNames());
-        }
-    }
-
-    private boolean looksLikeBehaviourClassFile(TFile file) {
-        return file.name().endsWith("Behaviour.class");
-    }
-
-    private String fullClassName(String shortClassName) {
-        return new StringBuffer(packageNamePrefix).append(shortClassName).toString();
-    }
-
-    private String shortClassName(String fileName) {
-        return fileName.substring(0, fileName.length() - ".class".length());
-    }
-}

Deleted: trunk/core/src/java/org/jbehave/core/util/BehavioursLoader.java (687 => 688)

--- trunk/core/src/java/org/jbehave/core/util/BehavioursLoader.java	2007-02-25 17:25:30 UTC (rev 687)
+++ trunk/core/src/java/org/jbehave/core/util/BehavioursLoader.java	2007-02-25 19:03:34 UTC (rev 688)
@@ -1,78 +0,0 @@
-package org.jbehave.core.util;
-
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.List;
-
-import net.sf.cotta.TDirectory;
-import net.sf.cotta.TIoException;
-import net.sf.cotta.utils.ClassPath;
-import net.sf.cotta.utils.ClassPathLocator;
-
-/**
- * Loads behaviour classes, using injected ClassLoader.  If none provided,
- * the current context ClassLoader is used.
- * 
- * @author Mauro Talevi
- */
-public class BehavioursLoader {
-    private Class markerClass;
-    private ClassLoader classLoader;
-
-    public BehavioursLoader(Class markerClass) {
-        this(markerClass, Thread.currentThread().getContextClassLoader());
-    }
-
-    public BehavioursLoader(Class markerClass, ClassLoader classLoader) {
-        this.markerClass = markerClass;
-        this.classLoader = classLoader;
-    }
-    
-    public Class[] loadBehaviours() {
-        ClassPathLocator classPathLocator = new ClassPathLocator(markerClass);
-        ClassPath classPath = classPathLocator.locate();
-        TDirectory directory = null;
-        try {
-            directory = classPath.asDirectory();
-        } catch (TIoException e) {
-            throw new RuntimeException("Error locating classpath contains <" + markerClass.getName() + ">", e);
-        }
-        List classNames = null;
-        try {
-            classNames = new BehaviourCollector(directory, "").collectNames();
-        } catch (TIoException e) {
-            throw new RuntimeException(e);
-        }
-        finally {
-            closeResource(classPath);
-        }
-        return convertToClasses(classNames);
-    }
-
-    private void closeResource(ClassPath classPathLocator) {
-        try {
-            classPathLocator.closeResource();
-        } catch (TIoException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    private Class[] convertToClasses(List classNames) {
-        List classes = new ArrayList(classNames.size());
-        for (int i = 0; i < classNames.size(); i++) {
-            String name = (String) classNames.get(i);
-            Class behaviourClass = null;
-            try {
-                behaviourClass = classLoader.loadClass(name);
-            } catch (ClassNotFoundException e) {
-                throw new IllegalStateException("Cannot load class:" + name);
-            }
-            if (Modifier.isPublic(behaviourClass.getModifiers()) &&
-                    !Modifier.isAbstract(behaviourClass.getModifiers())) {
-                classes.add(behaviourClass);
-            }
-        }
-        return (Class[]) classes.toArray(new Class[classes.size()]);
-    }
-
-}

Modified: trunk/everything/src/behaviour/org/jbehave/AllBehaviours.java (687 => 688)

--- trunk/everything/src/behaviour/org/jbehave/AllBehaviours.java	2007-02-25 17:25:30 UTC (rev 687)
+++ trunk/everything/src/behaviour/org/jbehave/AllBehaviours.java	2007-02-25 19:03:34 UTC (rev 688)
@@ -7,6 +7,7 @@
 		return new Class[] {
 				org.jbehave.core.AllBehaviours.class,
 				org.jbehave.ant.AllBehaviours.class,
+                org.jbehave.classmock.AllBehaviours.class,
 				org.jbehave.jmock.AllBehaviours.class,
 				org.jbehave.junit.AllBehaviours.class,
                 org.jbehave.threaded.swing.AllBehaviours.class

Modified: trunk/extensions/ant/src/behaviour/org/jbehave/ant/BehaviourRunnerTaskBehaviour.java (687 => 688)

--- trunk/extensions/ant/src/behaviour/org/jbehave/ant/BehaviourRunnerTaskBehaviour.java	2007-02-25 17:25:30 UTC (rev 687)
+++ trunk/extensions/ant/src/behaviour/org/jbehave/ant/BehaviourRunnerTaskBehaviour.java	2007-02-25 19:03:34 UTC (rev 688)
@@ -8,21 +8,16 @@
 package org.jbehave.ant;
 
 
-import java.io.File;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 
-import net.sf.cotta.utils.ClassPath;
-import net.sf.cotta.utils.ClassPathLocator;
-
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.Task;
 import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.types.Path;
 import org.jbehave.core.Block;
-import org.jbehave.core.BehaviourRunner;
 import org.jbehave.core.minimock.UsingMiniMock;
 import org.jbehave.core.mock.Matcher;
 
@@ -38,15 +33,8 @@
         project.setCoreLoader(getClass().getClassLoader());
         task.setProject(project);
         Path path = task.createClasspath();
-        addToPathContains(path, getClass());
-        addToPathContains(path, BehaviourRunner.class);
     }
 
-    private void addToPathContains(Path path, Class aClass) {
-        ClassPathLocator behaviourClassPathLocator = new ClassPathLocator(aClass);
-        path.createPathElement().setLocation(new File(behaviourClassPathLocator.locate().path()));
-    }
-
     public void shouldRunASingleBehaviourClass() throws Exception {
         task.setBehavioursClassName(BehaviourClassOne.class.getName());
         runner.valueToReturn = 0;
@@ -84,26 +72,6 @@
         
     }    
 
-    public void shouldUseClasspathFromClasspathElement() throws Exception {
-        Path path = task.createClasspath();
-        Path.PathElement element = path.createPathElement();
-        
-        ClassPath classPath = new ClassPathLocator(String.class).locate();
-        String pathToRuntimeJar = classPath.path();
-        element.setPath(pathToRuntimeJar);
-        
-        task.setBehavioursClassName(BehaviourClassOne.class.getName());
-
-        task.execute();
-
-        List list = Arrays.asList(runner.commandLineLog);
-        int classPathSwitchElement = list.indexOf("-classpath");
-        ensureThat(classPathSwitchElement, not(eq(-1)));
-        String classPaths = (String) list.get(classPathSwitchElement + 1);
-        String[] classPathArray = classPaths.split(File.pathSeparator);
-        ensureThat(Arrays.asList(classPathArray), collectionContains(pathToRuntimeJar));
-    }
-
     public void shouldFailTheBuildWhenVerificationFails() throws Exception {
         final String behaviourClassName = FailingBehaviourClass.class.getName();
         task.setBehavioursClassName(behaviourClassName);
@@ -117,27 +85,6 @@
         ensureThat(exception, isNotNull());
     }
 
-    
-/* TODO
-    public void shouldFailTheBuildWhenFirstSpecFails() throws Exception {
-        // setup
-        task.createVerify().setName("jbehave.extensions.ant.FailingSpec");
-        task.createVerify().setName("jbehave.extensions.ant.SpecOne");
-        BehaviourClassOne.wasCalled = false; // i hate this!
-
-        // execute
-        ensureThrows(BuildException.class, new Block() {
-            public void run() {
-                task.execute();
-            }
-        });
-
-        // verify
-        Ensure.that("SpecOne should not have been run", !BehaviourClassOne.wasCalled);
-    }
-
-*/
-
     private static class StubCommandRunner implements CommandRunner {
         private int valueToReturn;
         private Task taskLog;

Modified: trunk/extensions/ant/src/behaviour/org/jbehave/ant/StoryRunnerTaskBehaviour.java (687 => 688)

--- trunk/extensions/ant/src/behaviour/org/jbehave/ant/StoryRunnerTaskBehaviour.java	2007-02-25 17:25:30 UTC (rev 687)
+++ trunk/extensions/ant/src/behaviour/org/jbehave/ant/StoryRunnerTaskBehaviour.java	2007-02-25 19:03:34 UTC (rev 688)
@@ -1,19 +1,14 @@
 package org.jbehave.ant;
 
 
-import java.io.File;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 
-import net.sf.cotta.utils.ClassPath;
-import net.sf.cotta.utils.ClassPathLocator;
-
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.Task;
 import org.apache.tools.ant.types.FileSet;
-import org.apache.tools.ant.types.Path;
 import org.jbehave.core.Block;
 import org.jbehave.core.mock.Matcher;
 import org.jbehave.core.mock.UsingMatchers;
@@ -67,29 +62,8 @@
         List list = Arrays.asList(runner.commandLineLog);
         ensureThat(list, collectionContains(StoryClassOne.class.getName()));
         ensureThat(list, collectionContains(StoryClassTwo.class.getName()));
-        
     }    
 
-    public void shouldUseClasspathFromClasspathElement() throws Exception {
-        Path path = task.createClasspath();
-        Path.PathElement element = path.createPathElement();
-        
-        ClassPath classPath = new ClassPathLocator(String.class).locate();
-        String pathToRuntimeJar = classPath.path();
-        element.setPath(pathToRuntimeJar);
-        
-        task.setStoryClassName(BehaviourClassOne.class.getName());
-
-        task.execute();
-
-        List list = Arrays.asList(runner.commandLineLog);
-        int classPathSwitchElement = list.indexOf("-classpath");
-        ensureThat(classPathSwitchElement, not(eq(-1)));
-        String classPaths = (String) list.get(classPathSwitchElement + 1);
-        String[] classPathArray = classPaths.split(File.pathSeparator);
-        ensureThat(Arrays.asList(classPathArray), collectionContains(pathToRuntimeJar));
-    }
-
     public void shouldFailTheBuildWhenVerificationFails() throws Exception {
         final String storyClassName = FailingStoryClass.class.getName();
         task.setStoryClassName(storyClassName);

Modified: trunk/extensions/ant/src/java/org/jbehave/ant/AbstractRunnerTask.java (687 => 688)

--- trunk/extensions/ant/src/java/org/jbehave/ant/AbstractRunnerTask.java	2007-02-25 17:25:30 UTC (rev 687)
+++ trunk/extensions/ant/src/java/org/jbehave/ant/AbstractRunnerTask.java	2007-02-25 19:03:34 UTC (rev 688)
@@ -1,13 +1,15 @@
 package org.jbehave.ant;
 
+import java.io.File;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.StringTokenizer;
 
-import net.sf.cotta.utils.ClassPath;
-import net.sf.cotta.utils.ClassPathLocator;
-
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.types.Path;
@@ -37,8 +39,7 @@
     
 
     private void appendAntTaskJar() {
-        ClassPath classPath = new ClassPathLocator(getClass()).locate();
-        createClasspath().append(new Path(getProject(), classPath.path()));
+        createClasspath().append(new Path(getProject(), locate()));
     }
     
     private void invoke() {
@@ -69,4 +70,49 @@
     public void addFilesetTarget(FileSet fileset) {
         filesets.add(fileset);
     }
+    
+    private String locate() {
+        URL url = ""
+        if ("jar".equalsIgnoreCase(url.getProtocol())) {
+          return getJarFileOnClassPath(url);
+        } else {
+          return goToClassPathRootDirectory(url);
+        }
+    }
+    
+    private String goToClassPathRootDirectory(URL url) {
+        File classFile = getFileOnClassPath(url);
+        int level = new StringTokenizer(getClass().getName(), ".").countTokens();
+        File directory = classFile.getParentFile();
+        for (int i = 0; i < level - 1; i++) {
+          directory = directory.getParentFile();
+        }
+        return directory.getAbsolutePath();
+    }
+
+    private String getJarFileOnClassPath(URL url) {
+        String file = url.getFile();
+        int index = file.indexOf("!");
+        if (index == -1) {
+          throw new IllegalArgumentException(url.toExternalForm() + " does not have '!' for a Jar URL");
+        }
+        File fileObject = fromUri(file.substring(0, index));
+        return fileObject.getAbsolutePath();
+    }
+    
+    private File getFileOnClassPath(URL url) {
+        return fromUri(url.getFile());
+    }
+    
+    private File fromUri(String fileUri) {
+        try {
+           return new File(new URI(fileUri));
+        } catch (URISyntaxException e) {
+          throw new RuntimeException("Couldn't locate file:" + fileUri, e);
+        }
+      }
+
+    private String resourcePathToClassFile() {
+        return "/" + getClass().getName().replace('.', '/') + ".class";
+    }
 }

Added: trunk/extensions/classmocks/src/behaviour/org/jbehave/classmock/AllBehaviours.java (0 => 688)

--- trunk/extensions/classmocks/src/behaviour/org/jbehave/classmock/AllBehaviours.java	                        (rev 0)
+++ trunk/extensions/classmocks/src/behaviour/org/jbehave/classmock/AllBehaviours.java	2007-02-25 19:03:34 UTC (rev 688)
@@ -0,0 +1,13 @@
+package org.jbehave.classmock;
+
+import org.jbehave.core.behaviour.Behaviours;
+
+public class AllBehaviours implements Behaviours{
+    public Class[] getBehaviours() {
+        return new Class[] {
+                ClassMockObjectBehaviour.class,
+                UsingClassMockBehaviour.class
+        };
+    }
+
+}


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to