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:
Completed the first release version of the RSS user agent identifiers listing and added a site RSS guide as a subsection index. Adapted the CSWideImport.css stylesheet to allow extra-wide user agent strings to be displayed across the full screen width. Also improved layout of the navigation side bar and site search panel in wide format display, whose widths were not previously adjusted to this mode. Added the RSS feed listing to the "At a glance" box-out.
Incorporated all servlet 2.3 methods in the AbstractMockHttpSession class to simplify the creation of concrete types for different API versions.
Re-named and re-cast the former AbstractMockServletRequest and AbstractMockServletResponse to introduce new classes by these names, to emulate generic ServletRequest and ServletResponse types. Moved the generic servlet request and response methods to these new abstract classes and added servlet 2.3 methods to their abstract HTTP type subclasses. Also made the types (and API version) of the concrete classes explicit in their names:
MockServlet20Request
MockServlet20Response
MockHttpServlet20Request
MockHttpServlet20Response
The concrete types are little more than shells that extend the abstract bases, so that later API versions can be implemented with minimal extra code.
Changed the hashCode method in several classes to use the bitwise XOR operator, ^, and assignment operator, ^=, where the default equals method is overridden, in ResultKey, ResultValue and Client. Also simplified the equals method in the Parameters class to check null, check the instance type and compare hashCode values, rather than compare field by field.
Re-visited the recent AWT components to complete JavaDoc comments and remove magic numbers for FileSavePanel, TrimPanel, AppendPanel and LogManager.
Added Jetbot and amended NextGenSearchBot entries in the robots.txt exclusion policy.
Removed the setSessionId method from the AbstractMockServletRequest class and moved it to the concrete MockServlet20Request class. Made the HttpSession field protected for access in subclasses. Amended test cases to adapt to the new session assignment scheme.
Created a first draft Appender utility class for appending an array of files to an output stream. Also created a TextCopier class for manipulating copies between Reader and Writer interfaces. Includes a straight line-for-line copy, a trim copy that starts at a given string marker and ends at another; and filter and select copies that exclude and include lines with specified string tokens.
Re-factored elements from the LogManager application to create separate TrimPanel and AppendPanel components. TrimPanel has input and output file selectors, to trim the files using the TextCopier trim method. AppendPanel appends multiple input files to a single output file via the Appender class. Both panels are designed for use in a CardLayout.
Updated the FileSavePanel and FileSelectPanel components to a use a GridBagLayout. Added a MenuBar to the LogManager application to switch between append and trim function panels.
Added a failure counter to the Client class with incrementor and accessor methods. Removed redundant private default constructor and excluded the creation date from the hashCode and equals method comparisons. Completed coverage tests.
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.