velocity-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erik Hatcher <erik.hatc...@gmail.com>
Subject Re: File exists
Date Thu, 09 Apr 2015 13:55:18 GMT
You’re intentionally constrained in Solr to a specific set of helpers, otherwise a template
could cause a security concern.  See context objects table here <https://cwiki.apache.org/confluence/display/solr/Response+Writers#ResponseWriters-VelocityResponseWriter
<https://cwiki.apache.org/confluence/display/solr/Response+Writers#ResponseWriters-VelocityResponseWriter>>

If you’re up for some custom Java coding in Solr, you can implement a SearchComponent that
you can put into any search request handler that would put something into the response object,
say a boolean that tells you if the file exists.  If you need to actually read or write to
that file, you could do that in the SearchComponent as well.  

Of course the “FileHelper” idea would work if you hacked the VelocityResponseWriter code
(there is a TODO for me in there to make helpers pluggable, but this type of request scares
me away from making it too easy! :), but the SearchComponent is a way to get custom data into
the response which can then be leveraged by the Velocity template.  You can also send in custom
request parameters that become part of the request context object as well, in case that helps
here.

But I’m curious - what’s the need here?    It’s a very unusual request for this type
of thing, so I’m concerned you’re trying something that should be done a different way
instead.


—
Erik Hatcher, Senior Solutions Architect
http://www.lucidworks.com <http://www.lucidworks.com/>




> On Apr 9, 2015, at 9:18 AM, phiroc@free.fr wrote:
> 
> Unfortunately, I am using SOLR's implementation of Velocity, and don't know how to create
FileHelpers in that context.
> 
> 
> ----- Mail original -----
> De: "Will Glass-Husain" <wglasshusain@gmail.com>
> À: "Velocity Users List" <user@velocity.apache.org>
> Envoyé: Jeudi 9 Avril 2015 15:06:47
> Objet: Re: File exists
> 
> You can't instantiate objects in Velocity for an arbitrary class.
> remember, Velocity is intended to be a templating, not a scripting
> language.
> 
> Create a new class FileHelper which has a method "fileExists(string)".
> Pass it into the context in your java code as a reference "fileHelper".
> Then in your template call do
> 
> $fileHelper.fileExists("/mnt/etc/etc/etc/")
> 
> WILL
> 
> On Thu, Apr 9, 2015 at 5:58 AM, <phiroc@free.fr> wrote:
> 
>> Hello,
>> 
>> does anyone know how to check if a file exists in Velocity?
>> 
>> I have tried:
>> 
>> #set ($exists = new
>> File().exists("/mnt/xxxparnex01_pdf/PDF/IHT/${pdf_year_mon_v}/${pdf_day_v}/${pdf_name_page_number}_${pdf_name_page_type}_VIG.jpg")
>> )
>> 
>> to no avail.
>> 
>> Cheers,
>> 
>> Philippe
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@velocity.apache.org
>> For additional commands, e-mail: user-help@velocity.apache.org
>> 
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@velocity.apache.org
> For additional commands, e-mail: user-help@velocity.apache.org
> 


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message