I wanted to be able to use component:// paths, if it's not wanted I don't mind pulling it out as it was only 10 minutes work.
Regards Scott ----- Original Message ----- From: "Adrian Crum" <adri...@hlmksw.com> To: dev@ofbiz.apache.org Sent: Tuesday, June 16, 2009 12:39:45 AM (GMT+1000) Auto-Detected Subject: Re: svn commit: r784712 - in /ofbiz/trunk/framework/webapp: config/freemarkerTransforms.properties src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java Why is this necessary? Freemarker already has an include directive. -Adrian lekt...@apache.org wrote: > Author: lektran > Date: Mon Jun 15 10:18:55 2009 > New Revision: 784712 > > URL: http://svn.apache.org/viewvc?rev=784712&view=rev > Log: > Add a new template transform for including templates in freemarker templates > using component notation: > <@includeTemplate > location="component://common/webcommon/includes/cctypes.ftl"/> > > Added: > > ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > (with props) > Modified: > ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties > > Modified: ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties?rev=784712&r1=784711&r2=784712&view=diff > ============================================================================== > --- ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties > (original) > +++ ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties Mon > Jun 15 10:18:55 2009 > @@ -27,3 +27,4 @@ > ofbizAmount=org.ofbiz.webapp.ftl.OfbizAmountTransform > setRequestAttribute=org.ofbiz.webapp.ftl.SetRequestAttributeMethod > renderWrappedText=org.ofbiz.webapp.ftl.RenderWrappedTextTransform > +includeTemplate=org.ofbiz.webapp.ftl.IncludeTemplateTransform > > Added: > ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java?rev=784712&view=auto > ============================================================================== > --- > ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > (added) > +++ > ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > Mon Jun 15 10:18:55 2009 > @@ -0,0 +1,73 @@ > +/******************************************************************************* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + > *******************************************************************************/ > +package org.ofbiz.webapp.ftl; > + > +import java.io.IOException; > +import java.io.Writer; > +import java.util.Map; > + > +import org.ofbiz.base.util.UtilValidate; > +import org.ofbiz.base.util.template.FreeMarkerWorker; > + > +import freemarker.core.Environment; > +import freemarker.template.SimpleScalar; > +import freemarker.template.Template; > +import freemarker.template.TemplateException; > +import freemarker.template.TemplateModelException; > +import freemarker.template.TemplateTransformModel; > + > +public class IncludeTemplateTransform implements TemplateTransformModel { > + > + public final static String module = > IncludeTemplateTransform.class.getName(); > + > + public Writer getWriter(final Writer out, Map args) { > + final StringBuilder buf = new StringBuilder(); > + final String templateLocation = this.getTemplateLocation(args); > + > + return new Writer(out) { > + public void write(char cbuf[], int off, int len) { > + buf.append(cbuf, off, len); > + } > + > + public void flush() throws IOException { > + out.flush(); > + } > + > + public void close() throws IOException { > + try { > + Environment env = Environment.getCurrentEnvironment(); > + Template template = > FreeMarkerWorker.getTemplate(templateLocation); > + env.include(template); > + } catch (TemplateModelException e) { > + throw new IOException(e.getMessage()); > + } catch (TemplateException e) { > + throw new IOException(e.getMessage()); > + } > + } > + }; > + } > + > + private String getTemplateLocation(Map args) { > + Object templateLocationObj = args.get("location"); > + if (templateLocationObj != null && templateLocationObj instanceof > SimpleScalar) { > + return ((SimpleScalar) templateLocationObj).getAsString(); > + } > + return null; > + } > +} > > Propchange: > ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > ------------------------------------------------------------------------------ > svn:keywords = "Date Rev Author URL Id" > > Propchange: > ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java > ------------------------------------------------------------------------------ > svn:mime-type = text/plain > > >