haul        2002/07/14 07:47:03

  Modified:    src/java/org/apache/cocoon/components/language/markup/xsp
                        XSPUtil.java
  Log:
  fix util.xsl
  
  Revision  Changes    Path
  1.10      +59 -2     
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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- XSPUtil.java      13 Jun 2002 09:28:15 -0000      1.9
  +++ XSPUtil.java      14 Jul 2002 14:47:03 -0000      1.10
  @@ -64,6 +64,8 @@
   import org.xml.sax.SAXException;
   
   import org.apache.cocoon.environment.SourceResolver;
  +import org.apache.avalon.framework.component.ComponentManager;
  +import org.apache.avalon.framework.component.Component;
   import org.apache.excalibur.source.Source;
   import java.lang.Long;
   
  @@ -73,6 +75,7 @@
   import java.text.SimpleDateFormat;
   import java.util.Date;
   import java.util.Map;
  +import java.util.HashMap;
   
   /**
    * The XSP <code>Utility</code> object helper
  @@ -279,8 +282,10 @@
   
           StringBuffer result = new StringBuffer();
           InputStream stream = null;
  +        Source resource = null;
           try {
  -            Source resource = resolver.resolveURI(uri);
  +            Map mymap = new HashMap();
  +            resource = resolver.resolveURI(uri);
               long length = resource.getContentLength();
               stream = new BufferedInputStream(resource.getInputStream());
               if (length != -1) {
  @@ -303,8 +308,60 @@
           } finally {
               if ( stream != null )
                   try {stream.close();} catch (Exception ase) {  throw new 
RuntimeException(ase.getMessage()); }
  +            if ( resource != null )
  +                resolver.release(resource);
           }
           return result.toString();
       }
  +
  +
  +    public static void includeSource(String uri, String base, SourceResolver 
resolver, ContentHandler contentHandler) 
  +        throws RuntimeException {
  +        
  +        if (base != null) base = (base != "" ? 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 RuntimeException("Error including source "+base+" 
"+uri+":"+e.getMessage());
  +          } finally {
  +              if (source != null)
  +                 resolver.release(source);
  +          }
  +    }
  +
  +    public static void includeString(String string, ComponentManager manager, 
ContentHandler contentHandler) 
  +        throws RuntimeException {
  +
  +        XSPUtil.includeInputSource(new InputSource( new StringReader( 
String.valueOf(string))), manager, contentHandler);
  +    }
  +        
  +    public static void includeFile(String name, ComponentManager manager, 
ContentHandler contentHandler, Map objectModel) 
  +        throws RuntimeException {
  +
  +        try {
  +            XSPUtil.includeInputSource(new InputSource(new 
FileReader(XSPUtil.relativeFilename(name,objectModel))), 
  +                                       manager, contentHandler);
  +        } catch (IOException e) {
  +            throw new RuntimeException("Could not include file "+name+" : " + 
e.getMessage());
  +        }
  +    }   
  +
  +    public static void includeInputSource(InputSource source, ComponentManager 
manager, ContentHandler contentHandler) 
  +        throws RuntimeException {
  +        
  +        Parser newParser = null;
  +        
  +        try {
  +            newParser = (Parser) manager.lookup(Parser.ROLE);
  +            XSPUtil.include(source, contentHandler, newParser);
  +        } catch (Exception e) {
  +            throw new RuntimeException("Could not include page " + e.getMessage());
  +        } finally {
  +            if (newParser != null) manager.release((Component) newParser);
  +        }
  +    }
  +        
   
   }
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to