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("*", ".*");
+                       }                       
                }
        }
 



Reply via email to