Changeset 61

Show
Ignore:
Timestamp:
04/30/05 00:58:40 (4 years ago)
Author:
pragma
Message:

Added Dexter Alpha - D to XML translator
Added Sundry imrpovements to Mango server components for DSP

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/dsp/servlet/DSPServlet.d

    r57 r61  
    3636 
    3737import mango.servlet.Servlet; 
     38import mango.io.FilePath; 
     39import mango.io.Uri; 
     40import mango.log.Logger; 
    3841 
    3942extern(C) alias void function(IDSPRequest request,IDSPResponse response) ServiceHandle; 
     
    4346    ServiceHandle handle; 
    4447     
     48    private static Logger logger; 
     49 
     50    static this (){ 
     51        logger = Logger.getLogger ("dsp.servlets"); 
     52    }    
     53     
    4554/*  public this(Library servletLibrary){ 
    4655        this.servletLibrary = servletLibrary; 
    4756        handle = cast(ServiceHandle)library.getSymbol("service"); 
    4857    } 
    49 */ 
     58 
    5059    public this(char[] libraryPath){ 
    5160        servletLibrary = new Library(libraryPath); 
     
    5665        assert(handle); 
    5766    } 
    58      
     67 
     68 
    5969    void service (IServletRequest request, IServletResponse response){ 
    6070        char[] path = request.getServletPath(); 
     
    7484        } 
    7585    } 
     86*/ 
     87    public this(){ 
     88    } 
     89     
     90    void service (IServletRequest request, IServletResponse response){ 
     91        FilePath path = new FilePath(request.getUri); 
     92         
     93        if(path.getExtension == "dsp"){ 
     94            IDSPRequest dspRequest = cast(IDSPRequest)request; 
     95            IDSPResponse dspResponse = cast(IDSPResponse)response; 
     96 
     97            assert(dspRequest); 
     98            assert(dspResponse); 
     99 
     100            //TODO: bind to the needed dll on the fly 
     101 
     102            dspResponse.getWriter.put("<h2>This is a test for DSP servlets</h2>"); 
     103 
     104            if(dspResponse.isExceptionSet){ 
     105                throw new DSPException("servlet: " ~ dspResponse.getException()); 
     106            } 
     107        } 
     108        else{ 
     109            //TODO: use configuration and handling rules  
     110            //TODO: provide a listing if the file doesn't exist 
     111            logger.info ("request for file: " ~ request.getUri.getPath ~ " (" ~ request.getPathInfo ~ ")"); 
     112            response.copyFile (request.getContext, request.getPathInfo);         
     113        } 
     114    } 
    76115 
    77116    void init (ServletConfig config) 
  • trunk/servertest.d

    r58 r61  
    6868import dsp.servlet.DSPServlet; 
    6969import dsp.servlet.DSPServletProvider; 
     70import dsp.servlet.DSPServletContext; 
    7071 
     72class FileServlet : MethodServlet 
     73{ 
     74        private static Logger logger; 
     75 
     76        /*********************************************************************** 
     77         
     78                get a Logger for this class 
     79 
     80        ***********************************************************************/ 
     81 
     82        static this () 
     83        { 
     84                logger = Logger.getLogger ("mango.servlets.File"); 
     85        } 
     86 
     87        /*********************************************************************** 
     88         
     89                support GET requests only! All other method requests will 
     90                return an error to the user-agent 
     91 
     92        ***********************************************************************/ 
     93 
     94        void doGet (IServletRequest request, IServletResponse response) 
     95        {    
     96                logger.info ("request for file: " ~ request.getUri.getPath ~ " (" ~ request.getPathInfo ~ ")"); 
     97 
     98                response.copyFile (request.getContext, request.getPathInfo); 
     99        } 
     100} 
    71101 
    72102void testServer (IProvider provider) 
     
    90120} 
    91121 
    92  
    93 /******************************************************************************* 
    94  
    95         Test the servlet wrapper. We have three servlets that we map to 
    96         various request paths. We take advantage of a 'default' context 
    97         to serve up pages from the Mango help files. 
    98  
    99 *******************************************************************************/ 
    100  
    101122void testServletEngine () 
    102123{        
     
    106127        DSPServletProvider sp = new DSPServletProvider(); 
    107128 
     129        // create a context for admin servlets 
     130        sp.addContext (new AdminContext (sp, "/admin")); 
     131 
    108132        // create a context for example dsp servlets 
    109         ServletContext example = sp.addContext (new ServletContext ("/dsp")); 
     133        sp.addContext (new DSPServletContext (sp,"/dsp","c:/dev/dsp/trunk/dspconf"));  
    110134 
    111         // add a mapping to our example servlet 
    112         sp.addMapping ("/dsp01.dsp", sp.addServlet (new DSPServlet("./dspconf/_cache/dsp01.dll"), "dsp01.dsp", example)); 
     135        // point the default context to the same path 
     136        //sp.addContext (new ServletContext ("", "c:/dev/dsp/trunk/dspconf")); 
     137 
     138        // map all other requests to our file servlet 
     139        //sp.addMapping ("/", sp.addServlet (new FileServlet, "files")); 
    113140     
    114141        // fire up a server 
    115142        testServer (sp); 
    116143} 
    117  
    118 /******************************************************************************* 
    119  
    120  
    121 *******************************************************************************/ 
    122144 
    123145int main () 
  • trunk/xml/BaseLexer.d

    r47 r61  
    153153        return  
    154154            ch == '_' ||  
     155            ch == '-' ||  
    155156            ch == ':' ||   
    156157            ch == '.' || 
  • trunk/xml/BaseParser.d

    r48 r61  
    8989        catch(XMLParserException e){ 
    9090            throw e; 
    91         }        
     91        } 
     92        catch(XMLException e){ 
     93            throw e; 
     94        } 
    9295        catch(Exception e){ 
    9396            throw new XMLParserException(e,this,peek().pos,"General parser error");