balld 00/06/28 23:17:49
Modified: src/org/apache/cocoon/processor/xinclude
XIncludeProcessor.java
Log:
fixed stupid bug in resolving href
now set systemid on included xml resources
Revision Changes Path
1.8 +21 -8
xml-cocoon/src/org/apache/cocoon/processor/xinclude/XIncludeProcessor.java
Index: XIncludeProcessor.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/processor/xinclude/XIncludeProcessor.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- XIncludeProcessor.java 2000/06/04 05:52:20 1.7
+++ XIncludeProcessor.java 2000/06/29 06:17:49 1.8
@@ -44,7 +44,7 @@
* from my XInclude filter for cocoon2.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Donald Ball</a>
- * @version CVS $Revision: 1.7 $ $Date: 2000/06/04 05:52:20 $ $Author: balld
$
+ * @version CVS $Revision: 1.8 $ $Date: 2000/06/29 06:17:49 $ $Author: balld
$
*/
public class XIncludeProcessor extends AbstractActor implements Processor,
Status {
@@ -199,6 +199,7 @@
if (current_xmlbase_uri != null) {
xmlbase_stack.push(current_xmlbase_uri);
}
+ System.err.println("URL IS "+value);
current_xmlbase_uri = new URL(value);
}
@@ -216,16 +217,27 @@
href = href.substring(0,index);
}
Object object;
- if (current_xmlbase_uri != null) {
- URL url = new URL(current_xmlbase_uri,href);
+ String system_id;
+ try {
+ URL url = new URL(href);
+ system_id = url.toString();
processor.monitored_table.put(monitor_key,"");
processor.monitor.watch(monitor_key,url);
object = url.getContent();
- } else {
- File file = new File(base_file,href);
- processor.monitored_table.put(monitor_key,"");
- processor.monitor.watch(monitor_key,file);
- object = new FileReader(file);
+ } catch (MalformedURLException e) {
+ if (current_xmlbase_uri != null) {
+ URL url = new URL(current_xmlbase_uri,href);
+ system_id = url.toString();
+ processor.monitored_table.put(monitor_key,"");
+ processor.monitor.watch(monitor_key,url);
+ object = url.getContent();
+ } else {
+ File file = new File(base_file,href);
+ system_id = file.getAbsolutePath();
+ processor.monitored_table.put(monitor_key,"");
+ processor.monitor.watch(monitor_key,file);
+ object = new FileReader(file);
+ }
}
Object result = null;
if (parse.equals("text")) {
@@ -264,6 +276,7 @@
} else {
throw new Exception("Unknown object type:
"+object);
}
+ input.setSystemId(system_id);
Document included_document = null;
try {
included_document = parser.parse(input,false);