vgritsenko 2003/03/10 19:00:19
Modified: src/java/org/apache/cocoon/components/language/markup/xsp
XSPUtil.java
src/java/org/apache/cocoon/components/language/markup/xsp/java
util.xsl
Log:
* Remove getURLContents methods which were using deprecated URLFactory
* Add getSourceContents methods as replacement
* Fix String == "" bug
* Remove unnecessary include (...) method
* Remove getSourceAsString method replaced with getSourceContents
Revision Changes Path
1.3 +76 -98
cocoon-2.1/src/java/org/apache/cocoon/components/language/markup/xsp/XSPUtil.java
Index: XSPUtil.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/language/markup/xsp/XSPUtil.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- XSPUtil.java 10 Mar 2003 23:03:53 -0000 1.2
+++ XSPUtil.java 11 Mar 2003 03:00:19 -0000 1.3
@@ -53,7 +53,6 @@
import org.apache.avalon.framework.CascadingRuntimeException;
import org.apache.avalon.framework.component.Component;
import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.cocoon.components.url.URLFactory;
import org.apache.cocoon.environment.Context;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Session;
@@ -65,9 +64,15 @@
import org.apache.excalibur.xml.sax.SAXParser;
import org.xml.sax.ContentHandler;
import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import java.io.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringReader;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
@@ -158,11 +163,6 @@
return result;
}
- public static void include(InputSource is, ContentHandler parentContentHandler,
SAXParser parser)
- throws SAXException, IOException {
- parser.parse(is,new IncludeXMLConsumer(parentContentHandler));
- }
-
public static String encodeMarkup(String string) {
char[] array = string.toCharArray();
StringBuffer buffer = new StringBuffer();
@@ -194,46 +194,7 @@
return URLDecoder.decode (s);
}
- /* Logicsheet Utility Methods */
-
- // Inclusion
- public static String getURLContents(String url, URLFactory urlFactory) throws
IOException {
- return getContents(urlFactory.getURL(url).openStream());
- }
-
- public static String getURLContents(String url, String encoding, URLFactory
urlFactory) throws IOException {
- return getContents(urlFactory.getURL(url).openStream(), encoding);
- }
-
- public static String getFileContents(String filename) throws IOException {
- return getContents(
- new BufferedReader(new FileReader(filename)));
- }
-
- public static String getFileContents(String filename, String encoding) throws
IOException {
- return getContents(
- new BufferedInputStream(new FileInputStream(filename)), encoding);
- }
-
- public static String getContents(InputStream in, String encoding) throws
IOException {
- return getContents(
- new BufferedReader(new InputStreamReader(in, encoding)));
- }
-
- public static String getContents(InputStream in) throws IOException {
- return getContents(
- new BufferedReader(new InputStreamReader(in)));
- }
-
- public static String getContents(Reader reader) throws IOException {
- int len;
- char[] chr = new char[4096];
- StringBuffer buffer = new StringBuffer();
- while ((len = reader.read(chr)) > 0) {
- buffer.append(chr, 0, len);
- }
- return buffer.toString();
- }
+ /* Logicsheet Utility Methods */
// Date
public static String formatDate(Date date, String pattern) {
@@ -268,67 +229,82 @@
}
}
- public static Object getContextAttribute(Map objectModel, String name)
- {
+ public static Object getContextAttribute(Map objectModel, String name) {
Context context = ObjectModelHelper.getContext(objectModel);
return context.getAttribute(name);
}
- public static String getSourceAsString(String uri, SourceResolver resolver)
throws RuntimeException {
+ // Inclusion
+ public static String getSourceContents(String url, SourceResolver resolver)
throws IOException {
+ Source source = resolver.resolveURI(url);
+ try {
+ return getContents(source.getInputStream());
+ } finally {
+ resolver.release(source);
+ }
+ }
- StringBuffer result = new StringBuffer();
- InputStream stream = null;
- Source resource = null;
+ public static String getSourceContents(String uri, String base, SourceResolver
resolver) throws IOException {
+ if (base != null && base.length() == 0) {
+ base = null;
+ }
+ Source source = resolver.resolveURI(uri, base, null);
try {
- resource = resolver.resolveURI(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 CascadingRuntimeException("Cannot get source " + uri, e);
+ return getContents(source.getInputStream());
} finally {
- if ( stream != null ) {
- try {
- stream.close();
- } catch (Exception ase) {
- throw new CascadingRuntimeException("Cannot close stream", ase);
- }
+ if (source != null) {
+ resolver.release(source);
}
- if ( resource != null )
- resolver.release(resource);
}
- return result.toString();
}
+ public static String getFileContents(String filename) throws IOException {
+ return getContents(new FileReader(filename));
+ }
+
+ public static String getFileContents(String filename, String encoding) throws
IOException {
+ return getContents(new FileInputStream(filename), encoding);
+ }
+
+ public static String getContents(InputStream in, String encoding) throws
IOException {
+ return getContents(new InputStreamReader(in, encoding));
+ }
+
+ public static String getContents(InputStream in) throws IOException {
+ return getContents(new InputStreamReader(in));
+ }
+
+ public static String getContents(Reader reader) throws IOException {
+ int len;
+ char[] chr = new char[4096];
+ StringBuffer buffer = new StringBuffer();
+ try {
+ while ((len = reader.read(chr)) > 0) {
+ buffer.append(chr, 0, len);
+ }
+ } finally {
+ reader.close();
+ }
+ return buffer.toString();
+ }
- public static void includeSource(String uri, String base, SourceResolver
resolver, ContentHandler contentHandler)
+ public static void includeSource(String uri, String base, SourceResolver
resolver, ContentHandler contentHandler)
throws RuntimeException {
- if (base != null) base = (base != "" ? base : null);
+ if (base != null && base.length() == 0) {
+ base = null;
+ }
Source source = null;
try {
source = resolver.resolveURI(uri, base, null);
- resolver.toSAX(source, new
org.apache.cocoon.xml.IncludeXMLConsumer(contentHandler));
- } catch (Exception e) {
- throw new CascadingRuntimeException("Error including source " + base
+ " " + uri, e);
- } finally {
- if (source != null)
- resolver.release(source);
- }
+ resolver.toSAX(source, new IncludeXMLConsumer(contentHandler));
+ } catch (Exception e) {
+ throw new CascadingRuntimeException("Error including source " + base +
" " + uri, e);
+ } finally {
+ if (source != null) {
+ resolver.release(source);
+ }
+ }
}
public static void includeString(String string, ComponentManager manager,
ContentHandler contentHandler)
@@ -351,15 +327,17 @@
public static void includeInputSource(InputSource source, ComponentManager
manager, ContentHandler contentHandler)
throws RuntimeException {
- SAXParser newParser = null;
-
+ SAXParser parser = null;
try {
- newParser = (SAXParser) manager.lookup(SAXParser.ROLE);
- XSPUtil.include(source, contentHandler, newParser);
+ parser = (SAXParser) manager.lookup(SAXParser.ROLE);
+ IncludeXMLConsumer consumer = new IncludeXMLConsumer(contentHandler);
+ parser.parse(source, consumer, consumer);
} catch (Exception e) {
throw new CascadingRuntimeException("Could not include page", e);
} finally {
- if (newParser != null) manager.release((Component) newParser);
+ if (parser != null) {
+ manager.release((Component) parser);
+ }
}
}
}
1.2 +3 -3
cocoon-2.1/src/java/org/apache/cocoon/components/language/markup/xsp/java/util.xsl
Index: util.xsl
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/language/markup/xsp/java/util.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- util.xsl 9 Mar 2003 00:08:57 -0000 1.1
+++ util.xsl 11 Mar 2003 03:00:19 -0000 1.2
@@ -133,7 +133,7 @@
</xsl:call-template>
</xsl:variable>
<xsp:expr>
- XSPUtil.getSourceAsString(<xsl:copy-of select="$source-uri"/>,this.resolver)
+ XSPUtil.getSourceContents(<xsl:copy-of select="$source-uri"/>,this.resolver)
</xsp:expr>
</xsl:template>