Re: svn commit: r784712 - in /ofbiz/trunk/framework/webapp: config/freemarkerTransforms.properties src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r784712 - in /ofbiz/trunk/framework/webapp: config/freemarkerTransforms.properties src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java

Adrian Crum
Why is this necessary? Freemarker already has an include directive.

-Adrian

[hidden email] 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
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r784712 - in /ofbiz/trunk/framework/webapp: config/freemarkerTransforms.properties src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java

Jacques Le Roux
Administrator
I'm not sure it's the reason but with the Freemarker include directive you can't get a file out of the webapp root (there is no real
absolute path option)

Jacques

From: "Adrian Crum" <[hidden email]>

> Why is this necessary? Freemarker already has an include directive.
>
> -Adrian
>
> [hidden email] 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
>>
>>
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r784712 - in /ofbiz/trunk/framework/webapp: config/freemarkerTransforms.properties src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java

Adrian Crum
Use a file: URL.

-Adrian

Jacques Le Roux wrote:

> I'm not sure it's the reason but with the Freemarker include directive
> you can't get a file out of the webapp root (there is no real absolute
> path option)
>
> Jacques
>
> From: "Adrian Crum" <[hidden email]>
>> Why is this necessary? Freemarker already has an include directive.
>>
>> -Adrian
>>
>> [hidden email] 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
>>>
>>>
>>>
>>
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r784712 - in /ofbiz/trunk/framework/webapp: config/freemarkerTransforms.properties src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java

Jacques Le Roux
Administrator
I never tried, thanks!

Jacques

From: "Adrian Crum" <[hidden email]>

> Use a file: URL.
>
> -Adrian
>
> Jacques Le Roux wrote:
>> I'm not sure it's the reason but with the Freemarker include directive you can't get a file out of the webapp root (there is no
>> real absolute path option)
>>
>> Jacques
>>
>> From: "Adrian Crum" <[hidden email]>
>>> Why is this necessary? Freemarker already has an include directive.
>>>
>>> -Adrian
>>>
>>> [hidden email] 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
>>>>
>>>>
>>>>
>>>
>>
>>
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r784712 - in /ofbiz/trunk/framework/webapp: config/freemarkerTransforms.properties src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java

Scott Gray-2
In reply to this post by Adrian Crum
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" <[hidden email]>
To: [hidden email]
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

[hidden email] 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
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r784712 - in /ofbiz/trunk/framework/webapp: config/freemarkerTransforms.properties src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java

Adrian Crum
If you search *.ftl for "<#include" you'll see that it is already being
done.

-Adrian

Scott Gray wrote:

> 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" <[hidden email]>
> To: [hidden email]
> 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
>
> [hidden email] 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
>>
>>
>>
>
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r784712 - in /ofbiz/trunk/framework/webapp: config/freemarkerTransforms.properties src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java

Scott Gray-2
Ha well how about that, out it comes.

Regards
Scott

----- Original Message -----
From: "Adrian Crum" <[hidden email]>
To: [hidden email]
Sent: Tuesday, June 16, 2009 8:18:10 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

If you search *.ftl for "<#include" you'll see that it is already being
done.

-Adrian

Scott Gray wrote:

> 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" <[hidden email]>
> To: [hidden email]
> 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
>
> [hidden email] 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
>>
>>
>>
>