Add StringResourceLoader
------------------------

                 Key: VELOCITY-726
                 URL: https://issues.apache.org/jira/browse/VELOCITY-726
             Project: Velocity
          Issue Type: Improvement
          Components: Engine
    Affects Versions: 1.6.2
            Reporter: Wim Deblauwe


I would like to see an implementation of ResourceLoader that where you can pass 
a literal String, and that is the template. Something like this:

public class StringResourceLoader extends ResourceLoader
{
        @Override
        public void init( ExtendedProperties extendedProperties )
        {
        }

        @Override
        public InputStream getResourceStream( String s ) throws 
ResourceNotFoundException
        {
                return new ByteArrayInputStream( s.getBytes() );
        }

        @Override
        public boolean isSourceModified( Resource resource )
        {
                return true;
        }

        @Override
        public long getLastModified( Resource resource )
        {
                return 0;
        }
}

I tested this and it works, but I am assuming this could be handy for others as 
well.

On a side note. Why do you have all this ResourceLoaders and their 
configuration? Would it not be easier to just create a getTemplate( InputStream 
) method, then people can get the inputstream from whereever they want? I had 
now go through quite some hoops with classloading because I need to use 
Velocity from a plugin into another system. (For those also struggeling with 
this, you need to call:

Thread.currentThread().setContextClassLoader( getClass().getClassLoader() );

before you create your VelocityContext, and use the ClasspathResourceLoader)

-- 
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