[ 
https://jira.codehaus.org/browse/JBEHAVE-763?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=296487#comment-296487
 ] 

Alexander Lehmann commented on JBEHAVE-763:
-------------------------------------------

I assume that should be implemented with File objects instead of String, this 
way the os specific path separator isn't necessary

I don't know how much changes are necessary around the source to do this.


                
> LoadFromRelativeFile break on windows when using maven traversal
> ----------------------------------------------------------------
>
>                 Key: JBEHAVE-763
>                 URL: https://jira.codehaus.org/browse/JBEHAVE-763
>             Project: JBehave
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 3.6.1
>         Environment: Windows Vista
>            Reporter: Ricardo Lopez
>             Fix For: 3.6.3
>
>
> When invoking LoadFromRelativeFile and passing in a traversal substitution 
> stories are not found because the substitution is not applied.  This is due 
> to the difference in the StoryFilePath which forces path separators to be 
> '/'.  When the LoadFromRelativeFile code gets the absolute path of location 
> file separators are converted to '\'.  This keeps the locationPath.replace 
> code from working
> Im invoking the code as..
>       public Configuration configuration() {
>               return new MostUsefulConfiguration() // where to find the 
> stories
>                               .useStoryLoader(new 
> LoadFromRelativeFile(CodeLocations.codeLocationFromClass(getClass()), 
> LoadFromRelativeFile.mavenModuleTestStoryFilePath("src/test/resources/jbehave/")))
>                               .useStoryReporterBuilder(
>                                               new 
> StoryReporterBuilder().withDefaultFormats()
>                                                               
> .withFormats(Format.CONSOLE, Format.TXT));
> The code that breaks in LoadFromRelativeFile that break is
>         String locationPath = new 
> File(CodeLocations.getPathFromURL(location)).getAbsolutePath();
>         for (StoryFilePath traversal : traversals) {
>             String filePath = locationPath.replace(traversal.toRemove, 
> traversal.relativePath) + "/" + resourcePath;
> locationPath would have all '/' converted to '\' by getAbsolutePath on 
> windows machines.
> Maybe the following line should be inserted after the definition of 
> locationPath
> locationPath = locationPath.replace("\\","/");
>       }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to