commit b8ad7ded5cfb09c7ede127d5a996e2c564ab2d2d Author: Mauro Talevi <mauro.tal...@aquilonia.org> AuthorDate: Sat, 18 Apr 2015 09:32:06 +0200 Commit: Mauro Talevi <mauro.tal...@aquilonia.org> 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("*", ".*"); + } } }