haul 02/05/22 09:02:29 Modified: src/java/org/apache/cocoon/components/language/markup/xsp XSPUtil.java Log: added util:get-source and util:include-source tags plus helper function in XSPUtil Revision Changes Path 1.7 +38 -1 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/XSPUtil.java Index: XSPUtil.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/XSPUtil.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- XSPUtil.java 22 Feb 2002 07:00:08 -0000 1.6 +++ XSPUtil.java 22 May 2002 16:02:29 -0000 1.7 @@ -63,6 +63,10 @@ import org.xml.sax.InputSource; import org.xml.sax.SAXException; +import org.apache.cocoon.environment.SourceResolver; +import org.apache.cocoon.environment.Source; +import java.lang.Long; + import java.io.*; import java.net.URLDecoder; import java.net.URLEncoder; @@ -74,7 +78,7 @@ * The XSP <code>Utility</code> object helper * @author <a href="mailto:[EMAIL PROTECTED]">Ricardo Rocha</a> * @author <a href="mailto:[EMAIL PROTECTED]>Berin Loritsch</a> - * @version CVS $Id: XSPUtil.java,v 1.6 2002/02/22 07:00:08 cziegeler Exp $ + * @version CVS $Id: XSPUtil.java,v 1.7 2002/05/22 16:02:29 haul Exp $ */ public class XSPUtil { public static String pathComponent(String filename) { @@ -270,4 +274,37 @@ Context context = ObjectModelHelper.getContext(objectModel); return context.getAttribute(name); } + + public static String getSourceAsString(String uri, SourceResolver resolver) throws RuntimeException { + + StringBuffer result = new StringBuffer(); + InputStream stream = null; + try { + Source resource = resolver.resolve(uri); + long length = resource.getContentLength(); + stream = new BufferedInputStream(resource.getInputStream()); + if (length != -1) { + byte[] buffer = new byte[(new Long(length)).intValue()]; + stream.read(buffer); + stream.close(); + if (buffer != null) result.append(new String(buffer)); + } else { + int readBytes = 0; + do { + byte[] buffer = new byte[4*1024]; + readBytes = stream.read(buffer); + if (readBytes == -1) break; + if (readBytes > 0) result.append(new String(buffer,0,readBytes)); + } while (true); + stream.close(); + } + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } finally { + if ( stream != null ) + try {stream.close();} catch (Exception ase) { throw new RuntimeException(ase.getMessage()); } + } + return result.toString(); + } + }
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]