[ 
https://issues.apache.org/jira/browse/VELOCITY-714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jarkko Viinamäki resolved VELOCITY-714.
---------------------------------------

    Resolution: Invalid

Uhoh. I got confused by comment thread in VELOCITY-599. I guess the 
DataSourceResourceLoader supports Unicode after all so there is no need to 
change the API either. Besides, that would break BC.

Marking this as invalid.

> Change ResourceLoader API to return Reader instances instead of InputStreams
> ----------------------------------------------------------------------------
>
>                 Key: VELOCITY-714
>                 URL: https://issues.apache.org/jira/browse/VELOCITY-714
>             Project: Velocity
>          Issue Type: Improvement
>          Components: Engine
>            Reporter: Jarkko Viinamäki
>
> Abstract class org.apache.velocity.runtime.resource.loader.ResourceLoader 
> contains method
>     public abstract InputStream getResourceStream( String source )
>         throws ResourceNotFoundException;
> However, in org.apache.velocity.Template.process() there is code 
> (abbreviated):
>         try
>         {
>             is = resourceLoader.getResourceStream(name);
>         }
>         catch( ResourceNotFoundException rnfe )
>         {
>             errorCondition = rnfe;
>             throw rnfe;
>         }
>         if (is != null)
>         {
>             try
>             {
>                 BufferedReader br = new BufferedReader( new 
> InputStreamReader( is, encoding ) );
>                 data = rsvc.parse( br, name);
> ...
> This seems a bit silly. ResourceLoaders should obviously return Reader 
> instances since those would allow loaders to take content encoding into 
> account. Currently this is problematic especially with 
> DataSourceResourceLoader (VELOCITY-599). If we want to support UTF-8 in 
> DataSourceResourceLoader, with current API we would first have to use 
> ResultSet.getCharacterStream to get a Reader, then read all stuff into a 
> String, then convert it into UTF-8 encoding with getBytes call but then in 
> the Template the whole stuff is then converted back to a Reader. That's a lot 
> of waste.
> I think it would make more sense if the ResourceLoader API contained a method:
>     public abstract Reader getResource( String source )
>         throws ResourceNotFoundException;

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to