You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by jv...@apache.org on 2001/08/05 18:04:22 UTC
cvs commit: jakarta-turbine-fulcrum/src/services/java/org/apache/fulcrum/velocity ContextAdapter.java TurbineVelocity.java TurbineVelocityService.java VelocityService.java
jvanzyl 01/08/05 09:04:22
Added: src/services/java/org/apache/fulcrum/velocity
ContextAdapter.java TurbineVelocity.java
TurbineVelocityService.java VelocityService.java
Log:
- decoupled from turbine
Revision Changes Path
1.1 jakarta-turbine-fulcrum/src/services/java/org/apache/fulcrum/velocity/ContextAdapter.java
Index: ContextAdapter.java
===================================================================
package org.apache.fulcrum.velocity;
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache Turbine" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache Turbine", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
import org.apache.fulcrum.template.TemplateContext;
import org.apache.velocity.context.Context;
/**
* An adapter for Turbine's {@link
* org.apache.fulcrum.template.TemplateContext} which extends
* Velocity's Context interface. Allows for easy processing of
* TemplateContext objects by Velocity.
*
* @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
*/
public class ContextAdapter
implements Context
{
private TemplateContext context;
public ContextAdapter(TemplateContext context)
{
this.context = context;
}
public Object put(String key, Object value)
{
context.put(key, value);
return null;
}
public Object get(String key)
{
return context.get(key);
}
public Object remove(Object key)
{
return context.remove(key);
}
public Object[] getKeys()
{
return null;
}
public boolean containsKey(Object key)
{
return false;
}
}
1.1 jakarta-turbine-fulcrum/src/services/java/org/apache/fulcrum/velocity/TurbineVelocity.java
Index: TurbineVelocity.java
===================================================================
package org.apache.fulcrum.velocity;
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache Turbine" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache Turbine", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
import java.io.OutputStream;
import org.apache.fulcrum.TurbineServices;
import org.apache.velocity.context.Context;
/**
* This is a simple static accessor to common Velocity tasks such as
* getting an instance of a context as well as handling a request for
* processing a template.
* <pre>
* Context context = TurbineVelocity.getContext(data);
* context.put("message", "Hello from Turbine!");
* String results = TurbineVelocity.handleRequest(context, "helloWorld.vm");
* data.getPage().getBody().addElement(results);
* </pre>
*
* @author <a href="mailto:jmcnally@collab.net">John D. McNally</a>
* @author <a href="mailto:jon@latchkey.com">Jon S. Stevens</a>
* @author <a href="mailto:jvanzyl@periapt.com.com">Jason van Zyl</a>
* @version $Id: TurbineVelocity.java,v 1.1 2001/08/05 16:04:22 jvanzyl Exp $
*/
public abstract class TurbineVelocity
{
/**
* Utility method for accessing the service
* implementation
*
* @return a VelocityService implementation instance
*/
protected static VelocityService getService()
{
return (VelocityService)TurbineServices
.getInstance().getService(VelocityService.SERVICE_NAME);
}
/**
* This allows you to pass in a context and a path to a template
* file and then grabs an instance of the velocity service and
* processes the template and returns the results as a String
* object.
*
* @param context A Context.
* @param templateFilePath The path for the template files.
* @return A String.
* @exception Exception, a generic exception.
*/
public static String handleRequest(Context context, String template)
throws Exception
{
return getService().handleRequest(context, template);
}
/**
* Process the request and fill in the template with the values
* you set in the Context.
*
* @param context A Context.
* @param filename A String with the filename of the template.
* @param out A OutputStream where we will write the process template as
* a String.
* @exception Exception, a generic exception.
*/
public static void handleRequest(Context context,
String template,
OutputStream out)
throws Exception
{
getService().handleRequest(context, template, out);
}
}
1.1 jakarta-turbine-fulcrum/src/services/java/org/apache/fulcrum/velocity/TurbineVelocityService.java
Index: TurbineVelocityService.java
===================================================================
package org.apache.fulcrum.velocity;
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache Turbine" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache Turbine", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
import java.util.Vector;
import java.util.Iterator;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.ByteArrayOutputStream;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.context.Context;
import org.apache.velocity.exception.MethodInvocationException;
import org.apache.fulcrum.ServiceException;
import org.apache.fulcrum.InitializationException;
import org.apache.fulcrum.template.TurbineTemplate;
import org.apache.fulcrum.template.TemplateContext;
import org.apache.fulcrum.template.BaseTemplateEngineService;
/**
* This is a Service that can process Velocity templates from within a
* Turbine Screen. Here's an example of how you might use it from a
* screen:<br>
*
* <code>
* Context context = TurbineVelocity.getContext(data);<br>
* context.put("message", "Hello from Turbine!");<br>
* String results = TurbineVelocity.handleRequest(context,"helloWorld.vm");<br>
* data.getPage().getBody().addElement(results);<br>
* </code>
*
* Character sets map codes to glyphs, while encodings map between
* chars/bytes and codes.
* <i>bytes -> [encoding] -> charset -> [rendering] -> glyphs</i>
*
* @author <a href="mailto:mbryson@mont.mindspring.com">Dave Bryson</a>
* @author <a href="mailto:krzewski@e-point.pl">Rafal Krzewski</a>
* @author <a href="mailto:jvanzyl@periapt.com">Jason van Zyl</a>
* @author <a href="mailto:sean@informage.ent">Sean Legassick</a>
* @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
* @version $Id: TurbineVelocityService.java,v 1.1 2001/08/05 16:04:22 jvanzyl Exp $
*/
public class TurbineVelocityService
extends BaseTemplateEngineService
implements VelocityService
{
/**
* The generic resource loader path property in velocity.
*/
private static final String RESOURCE_LOADER_PATH =
".resource.loader.path";
/**
* Default character set to use if not specified by caller.
*/
private static final String DEFAULT_CHAR_SET = "ISO-8859-1";
/**
* Performs early initialization of this Turbine service.
*/
public void init()
throws InitializationException
{
try
{
initVelocity();
// Register with the template service.
registerConfiguration("vm");
setInit(true);
}
catch (Exception e)
{
e.printStackTrace();
throw new InitializationException(
"Failed to initialize TurbineVelocityService", e);
}
}
/**
* @see org.apache.fulcrum.velocity.VelocityService
*/
public String handleRequest(TemplateContext context, String template)
throws ServiceException
{
return handleRequest(new ContextAdapter(context), template);
}
/**
* @see org.apache.fulcrum.velocity.VelocityService
*/
public String handleRequest(Context context, String filename)
throws ServiceException
{
return handleRequest(context, filename, null, null);
}
/**
* @see org.apache.fulcrum.velocity.VelocityService
*/
public String handleRequest(Context context, String filename,
String charset, String encoding)
throws ServiceException
{
String results = null;
ByteArrayOutputStream bytes = null;
try
{
bytes = new ByteArrayOutputStream();
charset = decodeRequest(context, filename, bytes, charset,
encoding);
results = bytes.toString(charset);
}
catch (Exception e)
{
renderingError(filename, e);
}
finally
{
try
{
if (bytes != null)
{
bytes.close();
}
}
catch (IOException ignored)
{
}
}
return results;
}
/**
* @see org.apache.fulcrum.template.TemplateEngineService
*/
public void handleRequest(TemplateContext context, String template,
OutputStream outputStream)
throws ServiceException
{
handleRequest(new ContextAdapter(context), template, outputStream);
}
/**
* @see org.apache.fulcrum.velocity.VelocityService
*/
public void handleRequest(Context context, String filename,
OutputStream output)
throws ServiceException
{
handleRequest(context, filename, output, null, null);
}
/**
* @see org.apache.fulcrum.velocity.VelocityService
*/
public void handleRequest(Context context, String filename,
OutputStream output, String charset,
String encoding)
throws ServiceException
{
decodeRequest(context, filename, output, charset, encoding);
}
/**
* Processes the request and fill in the template with the values
* you set in the the supplied Context. Applies the specified
* character and template encodings.
*
* @param context A context to use when evaluating the specified
* template.
* @param filename The file name of the template.
* @param out The stream to which we will write the processed
* template as a String.
* @return The character set applied to the resulting text.
*
* @throws ServiceException Any exception trown while processing
* will be wrapped into a ServiceException and rethrown.
*/
private String decodeRequest(Context context, String filename,
OutputStream output, String charset,
String encoding)
throws ServiceException
{
// TODO: Push this method of getting character set & encoding
// from RunData back into Turbine.
// charset = ((RunData) data).getCharSet();
// encoding = ((RunData) data).getTemplateEncoding();
if (charset == null)
{
charset = DEFAULT_CHAR_SET;
}
OutputStreamWriter writer = null;
try
{
writer = new OutputStreamWriter(output, charset);
if (encoding != null)
{
// Request scoped encoding first supported by Velocity 1.1.
Velocity.mergeTemplate(filename, encoding, context, writer);
}
else
{
Velocity.mergeTemplate(filename, context, writer);
}
}
catch (Exception e)
{
renderingError(filename, e);
}
finally
{
try
{
if (writer != null)
{
writer.flush();
}
}
catch (Exception ignored)
{
}
}
return charset;
}
/**
* Macro to handle rendering errors.
*
* @param filename The file name of the unrenderable template.
* @param e The error.
*
* @exception ServiceException Thrown every time. Adds additional
* information to <code>e</code>.
*/
private final void renderingError(String filename, Throwable e)
throws ServiceException
{
String err = "Error rendering Velocity template: " + filename;
getCategory().error(err + ": " + e.getMessage());
// if the Exception is a MethodInvocationException, the underlying
// Exception is likely to be more informative, so rewrap that one.
if (e instanceof MethodInvocationException)
{
e = ((MethodInvocationException)e).getWrappedThrowable();
}
throw new ServiceException(err, e);
}
/**
* Setup the velocity runtime by using a subset of the
* Turbine configuration which relates to velocity.
*
* @exception InitializationException For any errors during initialization.
*/
private void initVelocity()
throws InitializationException
{
// Now we have to perform a couple of path translations
// for our log file and template paths.
String path = getRealPath(
getConfiguration().getString(Velocity.RUNTIME_LOG, null));
if (path != null && path.length() > 0)
{
getConfiguration().setProperty(Velocity.RUNTIME_LOG, path);
}
else
{
String msg = VelocityService.SERVICE_NAME + " runtime log file " +
"is misconfigured: '" + path + "' is not a valid log file";
throw new Error(msg);
}
// Get all the template paths where the velocity
// runtime should search for templates and
// collect them into a separate vector
// to avoid concurrent modification exceptions.
String key;
Vector keys = new Vector();
for (Iterator i = getConfiguration().getKeys(); i.hasNext();)
{
key = (String) i.next();
if (key.endsWith(RESOURCE_LOADER_PATH))
{
keys.add(key);
}
}
// Loop through all template paths, clear the corresponding
// velocity properties and translate them all to the webapp space.
int ind;
Vector paths;
String entry;
for (Iterator i = keys.iterator(); i.hasNext();)
{
key = (String) i.next();
paths = getConfiguration().getVector(key,null);
if (paths != null)
{
Velocity.clearProperty(key);
getConfiguration().clearProperty(key);
for (Iterator j = paths.iterator(); j.hasNext();)
{
path = (String) j.next();
if (path.startsWith("jar:file"))
{
// A local jar resource URL path is a bit more
// complicated, but we can translate it as well.
ind = path.indexOf("!/");
if (ind >= 0)
{
entry = path.substring(ind);
path = path.substring(9,ind);
}
else
{
entry = "!/";
path = path.substring(9);
}
path = "jar:file:" + getRealPath(path) + entry;
}
else if (!path.startsWith("jar:"))
{
// But we don't translate remote jar URLs.
path = getRealPath(path);
}
// Put the translated paths back to the configuration.
getConfiguration().addProperty(key,path);
}
}
}
try
{
Velocity.setConfiguration(getConfiguration());
Velocity.init();
}
catch(Exception e)
{
// This will be caught and rethrown by the init() method.
// Oh well, that will protect us from RuntimeException folk showing
// up somewhere above this try/catch
throw new InitializationException(
"Failed to set up TurbineVelocityService", e);
}
}
/**
* Find out if a given template exists. Velocity
* will do its own searching to determine whether
* a template exists or not.
*
* @param String template to search for
* @return boolean
*/
public boolean templateExists(String template)
{
return Velocity.templateExists(template);
}
}
1.1 jakarta-turbine-fulcrum/src/services/java/org/apache/fulcrum/velocity/VelocityService.java
Index: VelocityService.java
===================================================================
package org.apache.fulcrum.velocity;
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache Turbine" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache Turbine", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
import java.io.OutputStream;
import org.apache.fulcrum.Service;
import org.apache.fulcrum.ServiceException;
import org.apache.velocity.Template;
import org.apache.velocity.context.Context;
/**
* The Turbine service interface to
* <a href="http://jakarta.apache.org/velocity/">Velocity</a>.
*
* @author <a href="mailto:jmcnally@collab.net">John D. McNally</a>
* @author <a href="mailto:mbryson@mont.mindspring.com">Dave Bryson</a>
* @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
* @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
* @version $Id: VelocityService.java,v 1.1 2001/08/05 16:04:22 jvanzyl Exp $
*/
public interface VelocityService extends Service
{
public static final String SERVICE_NAME = "VelocityService";
/**
* Process the request and fill in the template using the values
* set in <code>context</code>.
*
* @param context A context to use when evaluating the specified
* template.
* @param filename The file name of the template.
* @return The process template as a String.
* @exception Exception, a generic exception.
*/
public String handleRequest(Context context, String filename)
throws Exception;
/**
* Process the request and fill in the template using the values
* set in <code>context</code>.
*
* @param context A context to use when evaluating the specified
* template.
* @param filename The file name of the template.
* @param charset The character set to use when writing the result.
* @param encoding The encoding to use when merging context and
* template.
* @return The process template as a String.
* @exception Exception, a generic exception.
*/
public String handleRequest(Context context, String template,
String charset, String encoding)
throws Exception;
/**
* Process the request and fill in the template using the values
* set in <code>context</code>.
*
* @param context A context to use when evaluating the specified
* template.
* @param filename The file name of the template.
* @param out The stream to which we will write the processed
* template as a String.
* @throws ServiceException Any exception trown while processing will be
* wrapped into a ServiceException and rethrown.
*/
public void handleRequest(Context context, String filename,
OutputStream out)
throws ServiceException;
/**
* Process the request and fill in the template using the values
* set in <code>context</code>.
*
* @param context A context to use when evaluating the specified
* template.
* @param filename The file name of the template.
* @param out The stream to which we will write the processed
* template as a String.
* @param charset The character set to use when writing the result.
* @param encoding The encoding to use when merging context and
* template.
* @throws ServiceException Any exception trown while processing will be
* wrapped into a ServiceException and rethrown.
*/
public void handleRequest(Context context, String filename,
OutputStream out, String charset,
String encoding)
throws ServiceException;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org