You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by st...@locus.apache.org on 2000/01/10 22:50:52 UTC
cvs commit: xml-cocoon/src/org/apache/cocoon/producer ProducerFromFile.java
stefano 00/01/10 13:50:52
Modified: src/org/apache/cocoon Engine.java
src/org/apache/cocoon/processor/xslt XSLTProcessor.java
src/org/apache/cocoon/producer ProducerFromFile.java
Log:
fixed problems with command line operation, also moved back some cleanup since it was breaking the cache (stupid file:/// doesn't return lastModifiedTime, grrr!)
Revision Changes Path
1.9 +5 -7 xml-cocoon/src/org/apache/cocoon/Engine.java
Index: Engine.java
===================================================================
RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/Engine.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Engine.java 2000/01/03 01:39:42 1.8
+++ Engine.java 2000/01/10 21:50:50 1.9
@@ -1,4 +1,4 @@
-/*-- $Id: Engine.java,v 1.8 2000/01/03 01:39:42 stefano Exp $ --
+/*-- $Id: Engine.java,v 1.9 2000/01/10 21:50:50 stefano Exp $ --
============================================================================
The Apache Software License, Version 1.1
@@ -72,7 +72,7 @@
* This class implements the engine that does all the document processing.
*
* @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
- * @version $Revision: 1.8 $ $Date: 2000/01/03 01:39:42 $
+ * @version $Revision: 1.9 $ $Date: 2000/01/10 21:50:50 $
*/
public class Engine implements Defaults {
@@ -119,12 +119,10 @@
// stores the engine context
if ((context != null) && (context instanceof ServletContext)) {
this.servletContext = (ServletContext) context;
- } else {
- throw new Exception("Engine can't work in given context.");
- }
- // register the context
- manager.setRole("context", context);
+ // register the context
+ manager.setRole("context", context);
+ }
// Create the parser and register it
parser = (Parser) manager.create((String) configurations.get(PARSER_PROP,
1.4 +20 -11 xml-cocoon/src/org/apache/cocoon/processor/xslt/XSLTProcessor.java
Index: XSLTProcessor.java
===================================================================
RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/processor/xslt/XSLTProcessor.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- XSLTProcessor.java 2000/01/09 23:46:13 1.3
+++ XSLTProcessor.java 2000/01/10 21:50:51 1.4
@@ -1,4 +1,4 @@
-/*-- $Id: XSLTProcessor.java,v 1.3 2000/01/09 23:46:13 stefano Exp $ --
+/*-- $Id: XSLTProcessor.java,v 1.4 2000/01/10 21:50:51 stefano Exp $ --
============================================================================
The Apache Software License, Version 1.1
@@ -70,7 +70,7 @@
* This class implements an XSLT processor.
*
* @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
- * @version $Revision: 1.3 $ $Date: 2000/01/09 23:46:13 $
+ * @version $Revision: 1.4 $ $Date: 2000/01/10 21:50:51 $
*/
public class XSLTProcessor implements Actor, Processor, Status, Defaults {
@@ -97,7 +97,7 @@
String browser = (String) parameters.get("browser");
try {
- URL resource = getResource(document, path, browser);
+ Object resource = getResource(document, path, browser);
Document stylesheet = getStylesheet(resource, document, request);
Document result = this.parser.createEmptyDocument();
return transformer.transform(document, null, stylesheet, resource.toString(), result);
@@ -106,9 +106,9 @@
}
}
- private URL getResource(Document document, String path, String browser) throws ProcessorException {
+ private Object getResource(Document document, String path, String browser) throws ProcessorException {
- URL resource = null;
+ Object resource = null;
Enumeration pis = Utils.getAllPIs(document, STYLESHEET_PI).elements();
while (pis.hasMoreElements()) {
@@ -118,11 +118,11 @@
if ((type != null) && (type.equals("text/xsl"))) {
String url = (String) attributes.get("href");
if (url != null) {
- URL local = null;
+ Object local = null;
try {
if (url.indexOf("://") < 0) {
- local = new URL("file:///" + path + url);
+ local = new File(path + url);
} else {
local = new URL(url);
}
@@ -147,14 +147,14 @@
}
if (resource == null) {
- throw new ProcessorException("Could not assiciate stylesheet to document: "
+ throw new ProcessorException("Could not associate stylesheet to document: "
+ " no matching stylesheet for: " + browser);
} else {
return resource;
}
}
- private Document getStylesheet(URL resource, Document document, HttpServletRequest request) throws ProcessorException {
+ private Document getStylesheet(Object resource, Document document, HttpServletRequest request) throws ProcessorException {
try {
Document sheet;
@@ -180,10 +180,19 @@
}
}
- private Document getDocument(URL resource) throws Exception {
+ private Document getDocument(Object resource) throws Exception {
InputSource input = new InputSource();
input.setSystemId(resource.toString());
- input.setCharacterStream(new InputStreamReader(resource.openStream()));
+
+ if (resource instanceof File) {
+ input.setCharacterStream(new FileReader(((File) resource)));
+ } else if (resource instanceof URL) {
+ input.setCharacterStream(new InputStreamReader(((URL) resource).openStream()));
+ } else {
+ // should never happen
+ throw new Error("Fatal error: Could not elaborate given resource: " + resource);
+ }
+
return this.parser.parse(input);
}
1.3 +4 -3 xml-cocoon/src/org/apache/cocoon/producer/ProducerFromFile.java
Index: ProducerFromFile.java
===================================================================
RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/producer/ProducerFromFile.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ProducerFromFile.java 1999/12/16 11:45:07 1.2
+++ ProducerFromFile.java 2000/01/10 21:50:51 1.3
@@ -1,4 +1,4 @@
-/*-- $Id: ProducerFromFile.java,v 1.2 1999/12/16 11:45:07 stefano Exp $ --
+/*-- $Id: ProducerFromFile.java,v 1.3 2000/01/10 21:50:51 stefano Exp $ --
============================================================================
The Apache Software License, Version 1.1
@@ -64,7 +64,7 @@
* available, even if we should use getResource().
*
* @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
- * @version $Revision: 1.2 $ $Date: 1999/12/16 11:45:07 $
+ * @version $Revision: 1.3 $ $Date: 2000/01/10 21:50:51 $
*/
public class ProducerFromFile extends AbstractProducer implements Status {
@@ -117,7 +117,8 @@
} catch (MalformedURLException e) {
throw new RuntimeException("Malformed request URL.");
} catch (NullPointerException e) {
- throw new RuntimeException("Context cannot be null.");
+ // if there is no context set, we must be called from the command line
+ return request.getPathTranslated().replace('\\','/');
}
}