commit b8ad7ded5cfb09c7ede127d5a996e2c564ab2d2d
Author: Mauro Talevi <[email protected]>
AuthorDate: Sat, 18 Apr 2015 09:32:06 +0200
Commit: Mauro Talevi <[email protected]>
CommitDate: Sat, 18 Apr 2015 09:32:54 +0200
JBEHAVE-833: Support both Ant-style and regex pattern syntaxes. Added
Christopher Aguirre's example configuration to core example pom.xml.
diff --git a/examples/core/pom.xml b/examples/core/pom.xml
index 73815ca..dd67d6e 100755
--- a/examples/core/pom.xml
+++ b/examples/core/pom.xml
@@ -36,6 +36,8 @@
<generateViewAfterStories>true</generateViewAfterStories>
<ignoreFailureInStories>${ignore.failure.in.stories}</ignoreFailureInStories>
<ignoreFailureInView>${ignore.failure.in.view}</ignoreFailureInView>
+ <storyTimeoutInSecs>300</storyTimeoutInSecs>
+
<storyTimeoutInSecsByPath>**/and_*.story:8,**/*calendar.story:15</storyTimeoutInSecsByPath>
<threads>${threads}</threads>
<metaFilters>
<metaFilter>${meta.filter}</metaFilter>
diff --git
a/jbehave-core/src/main/java/org/jbehave/core/embedder/StoryManager.java
b/jbehave-core/src/main/java/org/jbehave/core/embedder/StoryManager.java
index 73c2f3b..ca12f79 100644
--- a/jbehave-core/src/main/java/org/jbehave/core/embedder/StoryManager.java
+++ b/jbehave-core/src/main/java/org/jbehave/core/embedder/StoryManager.java
@@ -14,6 +14,7 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
import org.codehaus.plexus.util.StringUtils;
import org.jbehave.core.configuration.Configuration;
@@ -251,7 +252,7 @@ public class StoryManager {
return new RunningStory(enqueuedStory,
executorService.submit(enqueuedStory));
}
- private static class EnqueuedStory implements Callable<ThrowableStory> {
+ static class EnqueuedStory implements Callable<ThrowableStory> {
private final PerformableTree performableTree;
private final RunContext context;
@@ -323,7 +324,14 @@ public class StoryManager {
}
private String regexOf(String storyPattern) {
- return storyPattern.replace("**", ".*");
+ try {
+ // check if pattern is already a valid regex
+ Pattern.compile(storyPattern);
+ return storyPattern;
+ } catch (PatternSyntaxException e) {
+ // assume Ant-style pattern: **/path/*.story
+ return storyPattern.replace("*", ".*");
+ }
}
}