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);
  
  
  

Reply via email to