[Ejtools-cvs] libraries/servlet/src/main/org/ejtools/servlet/http package.html,NONE,1.1 CharResponse
Brought to you by:
letiemble
Update of /cvsroot/ejtools/libraries/servlet/src/main/org/ejtools/servlet/http In directory sc8-pr-cvs1:/tmp/cvs-serv18305/servlet/src/main/org/ejtools/servlet/http Modified Files: CharResponseWrapper.java StringResponseWrapper.java XSLFilter.java Added Files: package.html Log Message: Add more javadocs. Add package.html files. --- NEW FILE: package.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <!-- EJTools, the Enterprise Java Tools Distributable under LGPL license. See terms of license at www.gnu.org. $Revision: 1.1 $ --> <html> <head/> <body> Provides generic purpose Servlet Filters. </body> </html> Index: CharResponseWrapper.java =================================================================== RCS file: /cvsroot/ejtools/libraries/servlet/src/main/org/ejtools/servlet/http/CharResponseWrapper.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CharResponseWrapper.java 15 Sep 2003 22:04:41 -0000 1.2 --- CharResponseWrapper.java 13 Dec 2003 21:24:50 -0000 1.3 *************** *** 1,59 **** ! /* ! * EJTools, the Enterprise Java Tools ! * ! * Distributable under LGPL license. ! * See terms of license at www.gnu.org. ! */ ! package org.ejtools.servlet.http; ! ! import java.io.CharArrayWriter; ! import java.io.PrintWriter; ! ! import javax.servlet.http.HttpServletResponse; ! import javax.servlet.http.HttpServletResponseWrapper; ! ! /** ! * A Response wrapper that allows the manipulation of the Servlet Response. Create a buffer based on a Char array. ! * ! * @author Laurent Etiemble ! * @version $Revision$ ! */ ! public class CharResponseWrapper extends HttpServletResponseWrapper ! { ! /** Buffer used to store content */ ! protected CharArrayWriter output = null; ! ! ! /** ! * Constructor for the CharResponseWrapper object ! * ! * @param response Response stream to wrap ! */ ! public CharResponseWrapper(HttpServletResponse response) ! { ! super(response); ! output = new CharArrayWriter(); ! } ! ! ! /** ! * Return a writer that wraps the buffered content ! * ! * @return The writer of the wrapper ! */ ! public PrintWriter getWriter() ! { ! return new PrintWriter(output); ! } ! ! ! /** ! * Return the content of the buffer ! * ! * @return The content as String ! */ ! public String toString() ! { ! return output.toString(); ! } ! } --- 1,60 ---- ! /* ! * EJTools, the Enterprise Java Tools ! * ! * Distributable under LGPL license. ! * See terms of license at www.gnu.org. ! */ ! package org.ejtools.servlet.http; ! ! import java.io.CharArrayWriter; ! import java.io.PrintWriter; ! ! import javax.servlet.http.HttpServletResponse; ! import javax.servlet.http.HttpServletResponseWrapper; ! ! /** ! * A Response wrapper that allows the manipulation of the Servlet Response. ! * <p>Create a buffer based on a Char array.</p> ! * ! * @author Laurent Etiemble ! * @version $Revision$ ! */ ! public class CharResponseWrapper extends HttpServletResponseWrapper ! { ! /** Buffer used to store content */ ! protected CharArrayWriter output = null; ! ! ! /** ! * Constructor for the CharResponseWrapper object ! * ! * @param response Response stream to wrap ! */ ! public CharResponseWrapper(HttpServletResponse response) ! { ! super(response); ! output = new CharArrayWriter(); ! } ! ! ! /** ! * Return a writer that wraps the buffered content ! * ! * @return The writer of the wrapper ! */ ! public PrintWriter getWriter() ! { ! return new PrintWriter(output); ! } ! ! ! /** ! * Return the content of the buffer ! * ! * @return The content as String ! */ ! public String toString() ! { ! return output.toString(); ! } ! } Index: StringResponseWrapper.java =================================================================== RCS file: /cvsroot/ejtools/libraries/servlet/src/main/org/ejtools/servlet/http/StringResponseWrapper.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** StringResponseWrapper.java 15 Sep 2003 22:04:41 -0000 1.2 --- StringResponseWrapper.java 13 Dec 2003 21:24:50 -0000 1.3 *************** *** 1,59 **** ! /* ! * EJTools, the Enterprise Java Tools ! * ! * Distributable under LGPL license. ! * See terms of license at www.gnu.org. ! */ ! package org.ejtools.servlet.http; ! ! import java.io.PrintWriter; ! import java.io.StringWriter; ! ! import javax.servlet.http.HttpServletResponse; ! import javax.servlet.http.HttpServletResponseWrapper; ! ! /** ! * A Response wrapper that allows the manipulation of the Servlet Response. Create a buffer based on a String. ! * ! * @author Laurent Etiemble ! * @version $Revision$ ! */ ! public class StringResponseWrapper extends HttpServletResponseWrapper ! { ! /** Buffer used to store content */ ! protected StringWriter output = null; ! ! ! /** ! * Constructor for the StringResponseWrapper object ! * ! * @param response Response stream to wrap ! */ ! public StringResponseWrapper(HttpServletResponse response) ! { ! super(response); ! output = new StringWriter(); ! } ! ! ! /** ! * Return a writer that wraps the buffered content ! * ! * @return The writer of the wrapper ! */ ! public PrintWriter getWriter() ! { ! return new PrintWriter(output); ! } ! ! ! /** ! * Return the content of the buffer ! * ! * @return The content as String ! */ ! public String toString() ! { ! return output.toString(); ! } ! } --- 1,60 ---- ! /* ! * EJTools, the Enterprise Java Tools ! * ! * Distributable under LGPL license. ! * See terms of license at www.gnu.org. ! */ ! package org.ejtools.servlet.http; ! ! import java.io.PrintWriter; ! import java.io.StringWriter; ! ! import javax.servlet.http.HttpServletResponse; ! import javax.servlet.http.HttpServletResponseWrapper; ! ! /** ! * A Response wrapper that allows the manipulation of the Servlet Response. ! * <p>Create a buffer based on a String.</p> ! * ! * @author Laurent Etiemble ! * @version $Revision$ ! */ ! public class StringResponseWrapper extends HttpServletResponseWrapper ! { ! /** Buffer used to store content */ ! protected StringWriter output = null; ! ! ! /** ! * Constructor for the StringResponseWrapper object ! * ! * @param response Response stream to wrap ! */ ! public StringResponseWrapper(HttpServletResponse response) ! { ! super(response); ! output = new StringWriter(); ! } ! ! ! /** ! * Return a writer that wraps the buffered content ! * ! * @return The writer of the wrapper ! */ ! public PrintWriter getWriter() ! { ! return new PrintWriter(output); ! } ! ! ! /** ! * Return the content of the buffer ! * ! * @return The content as String ! */ ! public String toString() ! { ! return output.toString(); ! } ! } Index: XSLFilter.java =================================================================== RCS file: /cvsroot/ejtools/libraries/servlet/src/main/org/ejtools/servlet/http/XSLFilter.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XSLFilter.java 15 Sep 2003 22:04:41 -0000 1.2 --- XSLFilter.java 13 Dec 2003 21:24:50 -0000 1.3 *************** *** 1,139 **** ! /* ! * EJTools, the Enterprise Java Tools ! * ! * Distributable under LGPL license. ! * See terms of license at www.gnu.org. ! */ ! package org.ejtools.servlet.http; ! ! import java.io.IOException; ! import java.io.PrintWriter; ! import java.io.StringReader; ! import java.io.StringWriter; ! ! import javax.servlet.Filter; ! import javax.servlet.FilterChain; ! import javax.servlet.FilterConfig; ! import javax.servlet.ServletException; ! import javax.servlet.ServletRequest; ! import javax.servlet.ServletResponse; ! import javax.servlet.http.HttpServletResponse; ! import javax.xml.transform.Source; ! import javax.xml.transform.Transformer; ! import javax.xml.transform.TransformerFactory; ! import javax.xml.transform.stream.StreamResult; ! import javax.xml.transform.stream.StreamSource; ! ! import org.apache.log4j.Logger; ! ! /** ! * HTTP Servlet filter that applies a XSL stylesheet on a XML stream. ! * ! * @author Laurent Etiemble ! * @version $Revision$ ! */ ! public class XSLFilter implements Filter ! { ! /** Filter configuration */ ! protected FilterConfig config = null; ! /** Content type of the output */ ! protected String contentType = null; ! /** Absolute path the stylesheet */ ! protected String stylePath = null; ! /** XSL transformer */ ! protected Transformer transformer = null; ! /** Log4j Logger */ ! protected static Logger logger = Logger.getLogger(XSLFilter.class); ! ! ! /** Destroy the filter */ ! public void destroy() ! { ! this.config = null; ! } ! ! ! /** ! * Main method of the filter ! * ! * @param request Incoming request ! * @param response Outgoing response ! * @param chain Filter chain to forward the request and the response ! * @exception IOException In case of error ! * @exception ServletException In case of error ! */ ! public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) ! throws IOException, ServletException ! { ! // Set content type and get the original response ! response.setContentType(contentType); ! PrintWriter out = response.getWriter(); ! ! // Wrap the response with a buffer and follow the chain ! StringResponseWrapper wrapper = new StringResponseWrapper((HttpServletResponse) response); ! chain.doFilter(request, wrapper); ! ! // Create a reader with the result ! StringReader reader = new StringReader(wrapper.toString()); ! Source source = new StreamSource(reader); ! ! try ! { ! // Create the final response writer ! logger.debug("Creating Writer..."); ! StringWriter writer = new StringWriter(); ! StreamResult result = new StreamResult(writer); ! ! // Transform according to XSL stylesheet ! logger.debug("Applying stylesheet..."); ! transformer.transform(source, result); ! ! // Print out the result ! logger.debug("Ouputing..."); ! response.setContentLength(writer.toString().length()); ! out.println(writer.toString()); ! } ! catch (Exception e) ! { ! logger.error("Error during transformation " + e.getMessage()); ! out.println(wrapper.toString()); ! } ! } ! ! ! /** ! * Performs the initialization of the filter ! * ! * @param config The filter configuration ! * @exception ServletException Exception thrown if the filter was not properly configured ! */ ! public void init(FilterConfig config) ! throws ServletException ! { ! this.config = config; ! ! // Get the content type ! this.contentType = config.getInitParameter("mime-type"); ! logger.debug("Acquiring parameter mime-type=" + contentType); ! ! // Get the stylesheet ! String styleSheet = config.getInitParameter("stylesheet"); ! logger.debug("Acquiring parameter stylesheet=" + styleSheet); ! ! // Set the absolute position of the stylesheet ! String stylePath = config.getServletContext().getRealPath(styleSheet); ! ! try ! { ! // Prepare the XSL transformer ! logger.debug("Compiling stylesheet..."); ! TransformerFactory tFactory = TransformerFactory.newInstance(); ! transformer = tFactory.newTransformer(new StreamSource(stylePath)); ! } ! catch (Exception e) ! { ! logger.fatal("Failed to init the filter " + e.getMessage()); ! throw new ServletException(e.getMessage()); ! } ! } ! } --- 1,139 ---- ! /* ! * EJTools, the Enterprise Java Tools ! * ! * Distributable under LGPL license. ! * See terms of license at www.gnu.org. ! */ ! package org.ejtools.servlet.http; ! ! import java.io.IOException; ! import java.io.PrintWriter; ! import java.io.StringReader; ! import java.io.StringWriter; ! ! import javax.servlet.Filter; ! import javax.servlet.FilterChain; ! import javax.servlet.FilterConfig; ! import javax.servlet.ServletException; ! import javax.servlet.ServletRequest; ! import javax.servlet.ServletResponse; ! import javax.servlet.http.HttpServletResponse; ! import javax.xml.transform.Source; ! import javax.xml.transform.Transformer; ! import javax.xml.transform.TransformerFactory; ! import javax.xml.transform.stream.StreamResult; ! import javax.xml.transform.stream.StreamSource; ! ! import org.apache.log4j.Logger; ! ! /** ! * HTTP Servlet filter that applies a XSL stylesheet on a XML stream. ! * ! * @author Laurent Etiemble ! * @version $Revision$ ! */ ! public class XSLFilter implements Filter ! { ! /** Filter configuration */ ! protected FilterConfig config = null; ! /** Content type of the output */ ! protected String contentType = null; ! /** Absolute path the stylesheet */ ! protected String stylePath = null; ! /** XSL transformer */ ! protected Transformer transformer = null; ! /** Log4j Logger */ ! protected static Logger logger = Logger.getLogger(XSLFilter.class); ! ! ! /** Destroy the filter */ ! public void destroy() ! { ! this.config = null; ! } ! ! ! /** ! * Main method of the filter ! * ! * @param request Incoming request ! * @param response Outgoing response ! * @param chain Filter chain to forward the request and the response ! * @exception IOException In case of error ! * @exception ServletException In case of error ! */ ! public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) ! throws IOException, ServletException ! { ! // Set content type and get the original response ! response.setContentType(contentType); ! PrintWriter out = response.getWriter(); ! ! // Wrap the response with a buffer and follow the chain ! StringResponseWrapper wrapper = new StringResponseWrapper((HttpServletResponse) response); ! chain.doFilter(request, wrapper); ! ! // Create a reader with the result ! StringReader reader = new StringReader(wrapper.toString()); ! Source source = new StreamSource(reader); ! ! try ! { ! // Create the final response writer ! logger.debug("Creating Writer..."); ! StringWriter writer = new StringWriter(); ! StreamResult result = new StreamResult(writer); ! ! // Transform according to XSL stylesheet ! logger.debug("Applying stylesheet..."); ! transformer.transform(source, result); ! ! // Print out the result ! logger.debug("Ouputing..."); ! response.setContentLength(writer.toString().length()); ! out.println(writer.toString()); ! } ! catch (Exception e) ! { ! logger.error("Error during transformation " + e.getMessage()); ! out.println(wrapper.toString()); ! } ! } ! ! ! /** ! * Performs the initialization of the filter ! * ! * @param config The filter configuration ! * @exception ServletException Exception thrown if the filter was not properly configured ! */ ! public void init(FilterConfig config) ! throws ServletException ! { ! this.config = config; ! ! // Get the content type ! this.contentType = config.getInitParameter("mime-type"); ! logger.debug("Acquiring parameter mime-type=" + contentType); ! ! // Get the stylesheet ! String styleSheet = config.getInitParameter("stylesheet"); ! logger.debug("Acquiring parameter stylesheet=" + styleSheet); ! ! // Set the absolute position of the stylesheet ! String stylePath = config.getServletContext().getRealPath(styleSheet); ! ! try ! { ! // Prepare the XSL transformer ! logger.debug("Compiling stylesheet..."); ! TransformerFactory tFactory = TransformerFactory.newInstance(); ! transformer = tFactory.newTransformer(new StreamSource(stylePath)); ! } ! catch (Exception e) ! { ! logger.fatal("Failed to init the filter " + e.getMessage()); ! throw new ServletException(e.getMessage()); ! } ! } ! } |