I've looked through the relevant code, and i don't see Velocity stripping out backslashes explicitly anywhere. It could be happening within Commons Collections' ExtendedProperties class (which is where the property is stored by the runtime instance and from which it is retrieved by the FileResourceLoader), though that would be surprising. i haven't the time to look into it that right now. anyway, if it's not happening there, then the only other possible culprit is java (either String.trim() or some other string method used within ExtendedProperties). There's really not much in the path between Velocity.setProperty() and the log message printed by FileResourceLoader (where the backslash is missing).
On 9/6/07, Peter Steele <[EMAIL PROTECTED]> wrote: > I'd be happy not to use backslashes, except that in my case the path that > created problems was given to me by Java's getAbsolutePath() method. Because > I'm running under Windows, it returns a Windows path, using backslashes, as > it should. Velocity should in turn be able to handle such a path because it > is in fact a valid Windows path. > > -----Original Message----- > From: Gonzalo Diethelm [mailto:[EMAIL PROTECTED] > Sent: Monday, September 03, 2007 5:49 AM > To: Velocity Users List > Subject: Re: UNC paths in Velocity > > Allow me to paste my very last reply to this list. Regardless of the '/' > vs '\' issue, Velocity does have a very quirky way of handling > backslashes... Best regards. > > > I suggest you NEVER use the backslash character for path > delimiters. As far as I know, C, C++, C# and Java all understand > the forward slash as a path separator, with the benefits of > portable code and not having to quote and re-quote the > backslash. Therefore, try something like > "//myserver/home/peter/myproj/template". > > > On Fri, 2007-08-31 at 07:50 -0700, Peter Steele wrote: > > > Velocity does not seem to properly support UNC paths under Windows. I am > > running from a network drive on a Vista box and want to point Velocity to a > > location relative to my current dir to find my template files. I have code > > similar to the following: > > > > > > > > String templateDir = new File("templates"); > > > > String absTemplateDir = templateDir.getAbsolutePath(); > > > > Velocity.setProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, > > absTemplateDir); > > > > Velocity.init(); > > > > Template myTemplate = Velocity.getTemplate("my_template.vm"); > > > > > > > > The getTemplate call fails saying that it cannot find the file. The init > > call explains why: it generates a log message similar to this: > > > > > > > > INFO: FileResourceLoader : adding path > > '\myserver\home\peter\myproj\template' > > > > > > > > The file path *should* be '\\myserver\home\peter\myproj\template', but > > Velocity strips one of the leading backslashes. The original string is > > correct that's returned by getAbsolutePath, with four backslashes > > representing two real backslashes: > > > > > > > > \\\\myserver\\home\\peter\\myproj\\template > > > > > > > > This is what I'd expect. This doesn't seem to satisfy Velocity though. If I > > manually set the string to > > > > > > > > \\\\\\\\\\myserver\\home\\peter\\myproj\\template > > > > > > > > this solves the problem. What I ended up doing though was this: > > > > > > > > String absTemplateDir = templateDir.getAbsolutePath().replace('\\', > > '/'); > > > > > > > > This also works, so obviously the problem has something to do with > > interpreting the leading backslash characters that represent the Windows > > UNC path. This seems like a bug to me… > > > > > > > > > > No virus found in this outgoing message. > > Checked by AVG Free Edition. > > Version: 7.5.484 / Virus Database: 269.13.1/981 - Release Date: 8/31/2007 > > 6:13 AM > > > > > -- > Gonzalo Diethelm > [EMAIL PROTECTED] > > No virus found in this incoming message. > Checked by AVG Free Edition. > Version: 7.5.484 / Virus Database: 269.13.3/986 - Release Date: 9/3/2007 9:31 > AM > > > No virus found in this outgoing message. > Checked by AVG Free Edition. > Version: 7.5.485 / Virus Database: 269.13.7/992 - Release Date: 9/6/2007 8:36 > AM > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
