Folks, One of the concerns raised at the Lift Workshop on Saturday was that ill-formed XML files in your templates will fail at run time instead of compile time, often with cryptic errors.
To correct for this, I've added a simple test to lift-archetype-basic and lift-archetype-blank that will test all *.html and *.xml files in your src/main/webapp directory (and its subdirectories) to make sure they can all be loaded by Scala's XML parser. If they can't be loaded the test will fail and notify you which files couldn't be loaded and why. These tests run during Maven's 'test' phase. This phase is required before the 'package', 'install', or 'deploy' phases can run. Unfortunately, the 'jetty:run' phase only requires 'test-compile', not 'test'. If you want the test to run before starting Jetty, you'll have to specify it manually: 'mvn test jetty:run' (or 'mvn install jetty:run', etc). The test is available on any new projects created with Lift's archetypes. To add the test to your own project, the code is included below. It's a simple JUnit test. If you used a previous version of the archetypes to start your project, you can throw it into AppTest.scala Enjoy, --j /** * Tests to make sure the project's XML files are well-formed. * * Finds every *.html and *.xml file in src/main/webapp (and its * subdirectories) and tests to make sure they are well-formed. */ def testXml() = { var failed: List[java.io.File] = Nil def wellFormed(file: java.io.File) { if (file.isDirectory) for (f <- file.listFiles) wellFormed(f) if (file.isFile && (file.getName.endsWith(".html") || file.getName.endsWith(".xml"))) { try { scala.xml.XML.loadFile(file) } catch { case e: org.xml.sax.SAXParseException => failed = file :: failed } } } wellFormed(new java.io.File("src/main/webapp")) val numFails = failed.size if (numFails > 0) { val fileStr = if (numFails == 1) "file" else "files" val msg = "Malformed XML in " + numFails + " " + fileStr + ": " + failed.mkString(", ") println(msg) fail(msg) } } --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---