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]