The Code Style site has evolved by gradual refinement and accumulation of features and content. This review is part of a fully backdated site log and archive that sheds light on when, why and how particular features were implemented.
This log is sometimes updated several times per week, sometimes with a long overdue backlog of items. Many log entries refer to the Code Style Java package that delivers the servlet services and utilities used to manage this site.
Subscribe to the news feed for this log:
Added a Hashtable to the new draft XSL ResultCache to store the cache, and added Serializable declarations to Parameters and ResultKey to enable the Hashtable to be saved and loaded. Added addResult, getResult, deleteResult, and hasResult methods to manage ResultKeys, an emptyCache method, a public save method and private load method to deserialize the cache when the class is loaded.
Created a first skeleton draft of ResultValue and updated ResultCacheTest to test all new methods.
Added special handling of HTTP POST versus GET requests to the SourceBrokerFactory class for content submitted via HTML forms. Changed the FileContentRequest class to override IORequest and removed the redundant getBufferedReader and getInputStreamReader methods it now inherits.
Created a new StringContentRequest convenience class that also overrides IORequest, and a StringBroker to handle its interface with JAXP stylesheet transformations.
Separated out a new protected handleRequest method for the abstract ParseServlet superclass for more flexible implementation of stylesheet transformations through doGet and doPost methods. Also added further stylesheet parameters to display specific answers and category listings.
Corrected the content type of the new draft ParseFAQ servlet to text/html and revoked the final status of the setParameters template method.
Assigned version number 1.0 to various XSL import stylesheets for release:
AbsolutePath for obtaining an absolute path from a relative URL.
DomainExtractor for obtaining a host domain URL from a full URL.
MakeURI for obtaining a URI from a relative or absolute URL and a base directory.
ParentDirectory for obtaining the parent directory for a given URL or file path.
Added notes on imported stylesheet dependencies in XHTML to RSS stylesheet.
Extracted server questions from the FAQ: Java servlets page to create a new Java servlet containers FAQ page, with a new question about loading supporting classes in Tomcat. Updated all local navigation menus accordingly.
Added glossary and FAQ links to each of the generic font family samplers: sans serif, serif, monospace, fantasy and cursive.
Added new FAQ answers on custom document types in XHTML.
catalina.bat?
tomcat-apache.conf, how come?
Changed the static getQueryResults methods in the DatabaseUtilities class to throw SQLException and ClassNotFoundException to report problems, rather than return null. Added new executeInsert, executeDelete, getQueryDatum and getKeyDatum convenience methods with basic error checking. Also added boolean isSingleRow, isSingleColumn, isSingleDatum methods to the DBResults class.
Set a common JDBC driver for PostgreSQL across all Ant build profiles. Set the project distribution output directory to ./tomcat/lib for rapid deployment to a forthcoming project.
Added stylesheet parameters to the new draft ParseFAQ servlet to develop more advanced navigation features, and glossary or FAQ output options. Added pre element handling to the XHTML element copy template.
Added the target servlet class name to the constructor for MockServletConfig to implement the getServletName method required under the Servlet 2.3 API. Then had to upgrade the 14 unit tests that use the class.
Added a distribution target to the Ant build file to release mock object classes only.
Assigned version number 1.0 to the DCElements XSL that generates Dublin Core namespace elements from XHTML meta elements to package for re-use in a forthcoming project.
Added seealso and link elements to the faq.dtd.
Added Opera 7.50, Firefox 0.8.0+, Firefox 0.8 and Galeon versions 1.3.7 and 1.3.11a to the validation script for the Code Style font survey. There were an exceptional number of submissions this week thanks to referrals from Dive Into Mark, Mezzo Blue and Zeldman, so a special update to the results pages was compiled and issued.
Adjusted the minimum results limit on the draft FontStats servlet to zero, to build the full combined font survey results table directly. The zero value equates to no SQL LIMIT statement.
Added an SQL ORDER statement to the font survey submissions per month query, and modified the surveyline table to include the Bitstream Vera font images in the Unix family font survey results.
Introduced a new set of font sampler pages that classify the most common fonts according to their generic font family: serif, sans serif, monospace, fantasy and cursive fonts by platform. Created new menu include files and updated other menus and contents page.
Updated FAQ: Java servlets with a question on the run() method. Changed many section contents pages to use the new footer include file with RSS links, apparently omitted from changes on 25 January.
Made a minor change to all email feedback templates to improve formatting on reply.
Deployed a first draft FAQ.xml file to the development environment and created an initial XSLT to generate basic XHTML markup with metadata, anchors and formatted answers. Extracted two separate templates for modular inclusion to copy XHTML elements and attributes respectively.
Adapted the ParseRSS class to implement a new ParseFAQ transformation servlet. Necessary to revoke the final modifier on the init method of the abstract superclass ParseServlet to introduce a new parameter for the source XML file. Also had to update the SourceBrokerFactory to acquire a FileBroker for the source. Deployed the first draft faq.dtd and added it to the local ResourceResolver Hashtable.
Updated the remote Ant filter files for the Code Style build to include the new ParseFAQ stylesheet file name in the servlet configuration.
These backdated pages record detailed changes to the Code Style Web site since July 2000, when development first got underway. Some pages may refer to documents or features that have since changed or are no longer part of the site, but the archive is checked to ensure there are no dead links.
For a summary overview, see the annotated site log contents.