Changeset 61
- Timestamp:
- 04/30/05 00:58:40 (4 years ago)
- Files:
-
- trunk/dexter (added)
- trunk/dexter/README (added)
- trunk/dexter/changes.txt (added)
- trunk/dexter/convert_for_msvc.php (added)
- trunk/dexter/dmd (added)
- trunk/dexter/dmd/access.c (added)
- trunk/dexter/dmd/aggregate.h (added)
- trunk/dexter/dmd/array.c (added)
- trunk/dexter/dmd/artistic.txt (added)
- trunk/dexter/dmd/attrib.c (added)
- trunk/dexter/dmd/attrib.h (added)
- trunk/dexter/dmd/cast.c (added)
- trunk/dexter/dmd/class.c (added)
- trunk/dexter/dmd/complex_t.h (added)
- trunk/dexter/dmd/constfold.c (added)
- trunk/dexter/dmd/dchar.c (added)
- trunk/dexter/dmd/dchar.h (added)
- trunk/dexter/dmd/debcond.c (added)
- trunk/dexter/dmd/debcond.h (added)
- trunk/dexter/dmd/declaration.c (added)
- trunk/dexter/dmd/declaration.h (added)
- trunk/dexter/dmd/dsymbol.c (added)
- trunk/dexter/dmd/dsymbol.h (added)
- trunk/dexter/dmd/dump.c (added)
- trunk/dexter/dmd/entity.c (added)
- trunk/dexter/dmd/enum.c (added)
- trunk/dexter/dmd/enum.h (added)
- trunk/dexter/dmd/expression.c (added)
- trunk/dexter/dmd/expression.h (added)
- trunk/dexter/dmd/func.c (added)
- trunk/dexter/dmd/gnuc.c (added)
- trunk/dexter/dmd/gnuc.h (added)
- trunk/dexter/dmd/gpl.txt (added)
- trunk/dexter/dmd/html.c (added)
- trunk/dexter/dmd/html.h (added)
- trunk/dexter/dmd/id.c (added)
- trunk/dexter/dmd/id.h (added)
- trunk/dexter/dmd/identifier.c (added)
- trunk/dexter/dmd/identifier.h (added)
- trunk/dexter/dmd/idgen (added)
- trunk/dexter/dmd/idgen.c (added)
- trunk/dexter/dmd/impcnvgen (added)
- trunk/dexter/dmd/impcnvgen.c (added)
- trunk/dexter/dmd/impcnvtab.c (added)
- trunk/dexter/dmd/import.c (added)
- trunk/dexter/dmd/import.h (added)
- trunk/dexter/dmd/inifile.c (added)
- trunk/dexter/dmd/init.c (added)
- trunk/dexter/dmd/init.h (added)
- trunk/dexter/dmd/inline.c (added)
- trunk/dexter/dmd/lexer.c (added)
- trunk/dexter/dmd/lexer.h (added)
- trunk/dexter/dmd/link.c (added)
- trunk/dexter/dmd/lstring.c (added)
- trunk/dexter/dmd/lstring.h (added)
- trunk/dexter/dmd/mangle.c (added)
- trunk/dexter/dmd/mars.c (added)
- trunk/dexter/dmd/mars.h (added)
- trunk/dexter/dmd/mem.c (added)
- trunk/dexter/dmd/mem.h (added)
- trunk/dexter/dmd/module.c (added)
- trunk/dexter/dmd/module.h (added)
- trunk/dexter/dmd/mtype.c (added)
- trunk/dexter/dmd/mtype.h (added)
- trunk/dexter/dmd/opover.c (added)
- trunk/dexter/dmd/optimize.c (added)
- trunk/dexter/dmd/parse.c (added)
- trunk/dexter/dmd/parse.h (added)
- trunk/dexter/dmd/port.h (added)
- trunk/dexter/dmd/readme.txt (added)
- trunk/dexter/dmd/root.c (added)
- trunk/dexter/dmd/root.h (added)
- trunk/dexter/dmd/scope.c (added)
- trunk/dexter/dmd/scope.h (added)
- trunk/dexter/dmd/statement.c (added)
- trunk/dexter/dmd/statement.h (added)
- trunk/dexter/dmd/staticassert.c (added)
- trunk/dexter/dmd/staticassert.h (added)
- trunk/dexter/dmd/stringtable.c (added)
- trunk/dexter/dmd/stringtable.h (added)
- trunk/dexter/dmd/struct.c (added)
- trunk/dexter/dmd/template.c (added)
- trunk/dexter/dmd/template.h (added)
- trunk/dexter/dmd/total.h (added)
- trunk/dexter/dmd/unialpha.c (added)
- trunk/dexter/dmd/utf.c (added)
- trunk/dexter/dmd/utf.h (added)
- trunk/dexter/dmd/version.c (added)
- trunk/dexter/dmd/version.h (added)
- trunk/dexter/dmdfe (added)
- trunk/dexter/dmdfe.exe (added)
- trunk/dexter/dmdfe.map (added)
- trunk/dexter/gpl.txt (added)
- trunk/dexter/index.html (added)
- trunk/dexter/linux.mak (added)
- trunk/dexter/mandel.d (added)
- trunk/dexter/mars (added)
- trunk/dexter/mars/mars.h (added)
- trunk/dexter/root (added)
- trunk/dexter/root/mem.h (added)
- trunk/dexter/sc.ini (added)
- trunk/dexter/stubs (added)
- trunk/dexter/stubs/annotation.c (added)
- trunk/dexter/stubs/annotation.h (added)
- trunk/dexter/stubs/ir.c (added)
- trunk/dexter/stubs/symbol.h (added)
- trunk/dexter/stubs/tocsym.c (added)
- trunk/dexter/stubs/todt.c (added)
- trunk/dexter/stubs/toobj.c (added)
- trunk/dexter/stubs/typinf.c (added)
- trunk/dexter/stubs/xml.c (added)
- trunk/dexter/stubs/xml.h (added)
- trunk/dexter/test.d (added)
- trunk/dexter/test.xml (added)
- trunk/dexter/test2.d (added)
- trunk/dexter/test2.xml (added)
- trunk/dexter/test3.d (added)
- trunk/dexter/test3.xml (added)
- trunk/dexter/win32.mak (added)
- trunk/dsp/servlet/DSPServlet.d (modified) (4 diffs)
- trunk/dspconf/config.xml (added)
- trunk/servertest.d (modified) (3 diffs)
- trunk/xml/BaseLexer.d (modified) (1 diff)
- trunk/xml/BaseParser.d (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/dsp/servlet/DSPServlet.d
r57 r61 36 36 37 37 import mango.servlet.Servlet; 38 import mango.io.FilePath; 39 import mango.io.Uri; 40 import mango.log.Logger; 38 41 39 42 extern(C) alias void function(IDSPRequest request,IDSPResponse response) ServiceHandle; … … 43 46 ServiceHandle handle; 44 47 48 private static Logger logger; 49 50 static this (){ 51 logger = Logger.getLogger ("dsp.servlets"); 52 } 53 45 54 /* public this(Library servletLibrary){ 46 55 this.servletLibrary = servletLibrary; 47 56 handle = cast(ServiceHandle)library.getSymbol("service"); 48 57 } 49 */ 58 50 59 public this(char[] libraryPath){ 51 60 servletLibrary = new Library(libraryPath); … … 56 65 assert(handle); 57 66 } 58 67 68 59 69 void service (IServletRequest request, IServletResponse response){ 60 70 char[] path = request.getServletPath(); … … 74 84 } 75 85 } 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 } 76 115 77 116 void init (ServletConfig config) trunk/servertest.d
r58 r61 68 68 import dsp.servlet.DSPServlet; 69 69 import dsp.servlet.DSPServletProvider; 70 import dsp.servlet.DSPServletContext; 70 71 72 class 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 } 71 101 72 102 void testServer (IProvider provider) … … 90 120 } 91 121 92 93 /*******************************************************************************94 95 Test the servlet wrapper. We have three servlets that we map to96 various request paths. We take advantage of a 'default' context97 to serve up pages from the Mango help files.98 99 *******************************************************************************/100 101 122 void testServletEngine () 102 123 { … … 106 127 DSPServletProvider sp = new DSPServletProvider(); 107 128 129 // create a context for admin servlets 130 sp.addContext (new AdminContext (sp, "/admin")); 131 108 132 // 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")); 110 134 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")); 113 140 114 141 // fire up a server 115 142 testServer (sp); 116 143 } 117 118 /*******************************************************************************119 120 121 *******************************************************************************/122 144 123 145 int main () trunk/xml/BaseLexer.d
r47 r61 153 153 return 154 154 ch == '_' || 155 ch == '-' || 155 156 ch == ':' || 156 157 ch == '.' || trunk/xml/BaseParser.d
r48 r61 89 89 catch(XMLParserException e){ 90 90 throw e; 91 } 91 } 92 catch(XMLException e){ 93 throw e; 94 } 92 95 catch(Exception e){ 93 96 throw new XMLParserException(e,this,peek().pos,"General parser error");
