Changeset 3011

Show
Ignore:
Timestamp:
16/08/07 17:00:18 (4 years ago)
Author:
michael
Message:

Add support for using a servlet context to resolve resources. Suggested by Regis Leray. Fixes #13, spent 0.25.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ivy.xml

    r2953 r3011  
    1818    <dependency org="org.restlet" name="org.restlet" rev="1.0.4" conf="restlet,compile->default"/> 
    1919    <dependency org="com.noelios.restlet" name="com.noelios.restlet.ext.simple" rev="1.0.4" conf="compile->default"/> 
     20    <dependency org="javax.servlet" name="servlet-api" rev="2.5" conf="compile->default" /> 
    2021    <dependency org="com.noelios.restlet" name="com.noelios.restlet.ext.net" rev="1.0.4" conf="test->default"/> 
    2122    <dependency org="junit" name="junit" rev="3.8.1" conf="test->default"/> 
  • trunk/src/main/java/org/sarugo/xtc/TemplateFactory.java

    r2840 r3011  
    7979                return result; 
    8080        } 
     81 
     82        /** 
     83         * Configure the resource resolver used to retrieve resources. 
     84         *  
     85         * @param resolver 
     86         */ 
     87        public abstract void setResolver(Resolver resolver); 
     88 
    8189} 
  • trunk/src/main/java/org/sarugo/xtc/impl/ClassLoaderResolver.java

    r2840 r3011  
    33import java.net.URL; 
    44 
    5 public class ResourceResolver { 
    6         private static ThreadLocal<ResourceResolver> instance = new ThreadLocal<ResourceResolver>(); 
     5import org.sarugo.xtc.Resolver; 
     6 
     7/** 
     8 * Simple classloader based resource resolver. 
     9 *  
     10 * @author Michael Terrington 
     11 */ 
     12public class ClassLoaderResolver implements Resolver { 
    713 
    814        public URL resolveUrl(String path) { 
     
    1016        } 
    1117 
    12         public static ResourceResolver getInstance() { 
    13  
    14                 ResourceResolver result = instance.get(); 
    15                 if (result == null) { 
    16                         instance.set(new ResourceResolver()); 
    17                         result = instance.get(); 
    18                 } 
    19                 if (result == null) { 
    20                         throw new RuntimeException( 
    21                                         "Unable to register the ResourceResolver implementation"); 
    22                 } 
    23                 return result; 
    24         } 
    2518} 
  • trunk/src/main/java/org/sarugo/xtc/impl/DefaultTemplateFactory.java

    r2962 r3011  
    2525import javax.el.ELException; 
    2626 
     27import org.sarugo.xtc.Resolver; 
    2728import org.sarugo.xtc.Template; 
    2829import org.sarugo.xtc.TemplateException; 
     
    4849        private Map relativeLocations; 
    4950 
    50         private ResourceResolver resolver; 
     51        private Resolver resolver; 
    5152 
    5253        private long refreshPeriod; 
    5354 
    5455        public DefaultTemplateFactory() throws IOException { 
    55                 this(Compiler.getInstance(), ResourceResolver.getInstance()); 
    56         } 
    57  
    58         public DefaultTemplateFactory(Compiler compiler, ResourceResolver resolver) 
     56                this(Compiler.getInstance(), new ClassLoaderResolver()); 
     57        } 
     58 
     59        public DefaultTemplateFactory(Compiler compiler, Resolver resolver) 
    5960                        throws IOException { 
    6061                this(compiler, resolver, -1); 
    6162        } 
    6263 
    63         public DefaultTemplateFactory(Compiler compiler, ResourceResolver resolver, 
     64        public DefaultTemplateFactory(Compiler compiler, Resolver resolver, 
    6465                        long refreshPeriod) { 
    6566                ParameterCheck.notNull("compiler", compiler); 
     
    7576        } 
    7677 
    77         public void setResolver(ResourceResolver resolver) { 
     78        public void setResolver(Resolver resolver) { 
    7879                this.resolver = resolver; 
    7980        }