Skip to content

Instantly share code, notes, and snippets.

@dherges
Created January 29, 2016 20:29
Show Gist options
  • Save dherges/f09348ab1179154bb7dd to your computer and use it in GitHub Desktop.
Save dherges/f09348ab1179154bb7dd to your computer and use it in GitHub Desktop.
Sling Handlebars.js

Sling Handlebar.js

https://github.com/jknack/handlebars.java https://sling.apache.org/

Maven dependencies:

        <dependency>
            <groupId>com.github.jknack</groupId>
            <artifactId>handlebars</artifactId>
            <version>${handlebars.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.rhino</artifactId>
            <version>${org.apache.servicemix.bundles.rhino.version}</version>
        </dependency>
        <dependency>
            <groupId>org.antlr</groupId>
            <artifactId>antlr4-runtime</artifactId>
            <version>${org.antl.antl-runtime.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${apache.commons.lang.version}</version>
        </dependency>
import com.github.jknack.handlebars.io.URLTemplateLoader;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import java.io.IOException;
import java.net.URL;
/**
* Handlebars template loader that reads templates from Sling repository
*/
public class SlingTemplateLoader extends URLTemplateLoader {
protected final ResourceResolver resolver;
public SlingTemplateLoader(ResourceResolver resolver) {
this.resolver = resolver;
}
@Override
protected URL getResource(String location) throws IOException {
final Resource resource = resolver.getResource(location);
return (resource != null) ? resource.adaptTo(URL.class) : null;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment