Release notes for SWS

For download and other details see the project's download site.

Version 1.0.4 (2026-11-04 15:12:17)

    Changed from using AR Common version 1.1.7 to version 1.1.8. See release notes for AR Common for details.
    Changed from using ABT Update Checker version 1.0.4 to version 1.0.5. See release notes for ABT Update Checker for details.
    "faild" changed to "failed".
    12 user agent unit tests have been added to the ClientInformationUserAgentParserTest class.
        An spell mistake in an error message has been fixed in the process.
        Some error messages have been slightly changed in the process.
    The unit test could not run (For others than me) because of missing user agent log files. This part of the unit will now ignore missing log files with a warning.
    Internet Explorer version 10.6 and 11 are now parsed correctly by the ClientInformation.
        Firefox version 0.9.2.1 is now also parsed correctly.
    Windows 11 is now parsed correctly by the ClientInformation (Maybe).
    "time out" changed to "timeout".
    All WebResources (Images...) caused a server error 500 "noCache", if a user was logged in. This has been fixed.
    Changed to only use the "formaction" HTML field, if it is supported by the browser. A JavaScript solution is used in that case.
    The "back" button in the sample web shop, is now only shown if an user is logged in. If a user is not logged in a "Start shopping a new order" button is now shown instead. (SampleWebShopOrderWebPage.writeOrder()).
        The order (sample web shop) is no longer wrapped in a form if it is not updatable.
    The "have" in "One more of the <product name> product..." message in the sample web shop has been corrected to "has".
    The "Check was cancelled" has been corrected to "Checkout was cancelled" in the sample web shop.
    "check out" changed to "checkout".
    The "ResponseCode: " message can now be removed using the HttpHandler.printToConsoleIfRequestFailed field.
        The requested URL has been added to the message and the format has been changed slightly in the process.
    The request console message can now be removed using the HttpHandler.printRequestToConsole field.
    The called method (page function) is now printed to the console after the request has been printed to the console. This can be removed using the PageCalle.printMethodCalled and printMethodCalledLocalhost.
        It is printed in the stacktrace format to make it clickable by Eclipse.
    "missmatch" changed to "mismatch".
    " [" changed to "[".
    "while(" changed to "while (".
    " ," changed to ",".
    ",([^ ])" changed to ", $1".
    "auto save" changed to "autosave".
    " =" changed to " =".
    "Javascript" changed to "JavaScript".
    Trailing spaces have been removed.
    Trailing tabs have been removed.
    Inner double spaces have been removed.
    Order of modifiers have been fixed ("default" was before "public" and "final" was before "static").
    Operator moved to the next line.
    Missing "final" has been added to constants.
    "default:" changed to "default :".
    "case ([^:]*[^ ]):" changed to "case $1 :".
    The wrongly named "simpleDateFormats" field in the HtmlOutput class has been corrected to "SIMPLE_DATE_FORMATS".
    Wrong line intenting has been fixed.
    "([^ ] +)\\)" changed to "$1)".
    The WebResource.calculateContentTypeFromExtension() method has been changed to be protected.
    The user agent parser in the ClientInformation class has been hacked to handle the "))" in "Mozilla/5.0 (Linux; Android 11; moto g power (2022))".
        The "... contains incorrect number of slashes " error message has been changed to include the error index in process.
    The feature list on the download page has been slightly revised.
    The getSecure() method in the SimpleWebServer class has been removed. Use the isSecure() method instead.
    The setUseAcceptCH() method has been "moved" from the SimpleWebServer class to the HtmlOutput class.
    The Sample10ClientInformationDemoWebPage class has been changed to use the getUseAcceptCH() and setUseAcceptCH() methods.
        The layout and content of the "Raw data" section in the output from the Sample10ClientInformationDemoWebPage has been changed slightly in process.
    The ClientInformation.isMobile() (and isMobileInDesktopMode()) and the ClientInformation.Platform.isMobile() methods have been added.
    The ClientInformation class can now parse the "Chrome Android", "Firefox for Android", "Opera Android", "Safari on iOS" and "Samsung Internet" browsers.
        The calculateSupport() method in the ClientInformation class has been changed to public.
        Some other minor changes have been made in the process.
    The web server (The WebApplicationManager.print() method) will now print the machines IP address instead of "localhost" on Linux.
    "doesn\'t exists" changed to "doesn't exist".
    The spelling of "cancelled" has been changed to "canceled".
    "hardcode" changed to "hard code".
    "cash" changed to "cache".
    The SampleQuiz sample has been added.
    If the file behind a WebResource if missing (Not the WebResource) a warning is now issued to standard error. Can be control by the WebResource.warnOnMissingFile field.
    "pakage" changed to "package".
    The "webp" file extension has been added as content-type "image/webp".
    The "webm" file extension has been added as content-type "video/webm".
    HTTP range requests ("Accept-Ranges", "Range", "Content-Range", "206 Partial Content") support has been added. (I can't make the browser use it in a meaningful way).
        This feature can be control by the WebResource.supportHttpRangeRequests field. Default is false.
    A "Videos" and a "Sounds" directory have been added to the WebApplication.getResourceFor() method.
    Large WebResource are now read and send in small blocks for better memory use.
        The definition of large can be control using the WebResource.readSendBlockSize field. Default is 1M. Setting it to WebResource.READ_SEND_BLOCK_SIZE_NO_LIMIT will return the original behavior.
    The simplified stack trace in the HTML (StackTraceUtil.stackTraceInHtml = true and StackTraceUtil.simplifyStackTrace = true) from the default error handler has been changed slightly.
    "YAUTAR.dk" changed to "yautar.dk".
    The user agent parser in the ClientInformation class threw a ArrayIndexOutOfBoundsException on some weird app user agent strings. This has been fixed.
    Web resources (disk file name of) containing a URL escape characters (Like %20) didn't work. This has been fixed.
        Some code has been refactored / renamed to achieve this.
    The "bmp" file extension has been added as content-type "image/bmp".
    The "image/vnd.microsoft.icon" content-type is now a image (WebResource.isImage() returns true).
    The "ogg" file extension has been added as content-type "audio/ogg".
    The "wav" file extension has been added as content-type "audio/x-wav".
    The field names used in a HTML form are now validated: Must (be unique and) not be in the list of reserved field names.
    The header on the download site has been extended slightly.
    The "contains incorrect number of slashes" error message from the user agent parser (ClientInformation class) was off-by-one. This has been fixed.
    The "Auto values not supported for ..." error messages has been changed slightly.
    The content type for unknown extensions is now calculated using the xdg-mime tool on Linux (WebResource.calculateContentTypeForUnkwownExtensionUsingXdgMimeOnLinux).
        The content type for the "class" and "xpi" extensions has been changed to what xdg-mime says in the process.

Version 1.0.3 (2025-11-05 09:47:55)

    Public on yautar.dk at 2025-11-05 09:49.
    Changed from using AR Common version 1.1.6 to version 1.1.7. See release notes for AR Common for details.
    Changed from using ABT Update Checker version 1.0.3 to version 1.0.4. See release notes for ABT Update Checker for details.
    The WaitForEnterKeyHitMyThread class has been refactored to call SimpleWebServer.enterHasBeenHit().
        The readLineFromStdIn log message has been slightly changed in the process.
    The ClientInformation class threw a NullPointerException on a bingbot/2.0 user agent string ("Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/...."). This has been fixed.
    The version string in the ClientInformation.platformVersion has changed format from "NT <version> aka Windows <version>" to "Windows <version> (NT <version>)" for Windows user agent strings.
    The "SWS Getting Started.html" page has been renamed to "SWS Getting started.html".
    The format of the code samples on the "SWS Getting started.html" has been slightly changed.
    If the to file existed File.rename() didn't report an error (Bug fixed in AR Common). This caused the RollingLogFile rename not work. The RollingLogFile will now check if the rename was successful, and will try 10 times with different names if not.
    The rolling of the crash log file didn't work. The logFileLastModified field wasn't set in the RollingLogFile.checkForRoll() method, causing continues file rolling. This has been fixed.
    The automatic detection of file encoding for web resources will now only be done once (WebResource.textEncodingHasBeenDetected).
    The automatic detection of file encoding can now also detect Linux script file encoding (UTF-8).
        The log message if the automatic detected encoding doesn't match system file encoding (System.getProperty("file.encoding")) has been slightly changed in process.
    The ByteReader method "readStringTo" has been renamed to "readString" and "readBytesTo" to "readBytes".
    The "Accept-CH" header is now supported (Secure connection (https) and SimpleWebServer.setUseAcceptCH(true) must be called).
    The Copy-and-paste bugs in the ClientInformationUserAgentParserTest exception messages have been fixed.
    The user agent parser in the ClientInformation class has been made more stable against wrongly formatted user agent strings.
        The format for the ClientInformation.toString() string has been changed in the process.
    The symbolMap file extension has been added as content-type "text/pain".
    Validation has been added to the maxAge field in the Cookie class.
    The header of the value column in the Sample11CookieCrudWebPage page was wrong. This has been fixed.
    The useDefaultCashControl field in the WebResource class was not set to true, causing that the default cash control was not used as default. This has been fixed.
    The class file extension has been added as content-type "application/class".
    The xpi file extension has been added as content-type "application/xpi".
    The htaccess file extension has been added as content-type "application/htaccess".
    The default 404 page has been changed slightly to make it more valid HTML.
    An empty cookie value is now allowed.
        Validation of the cookie name has been added in the process.
    Some minor spell mistakes in the SampleWebShopLoginFailureCallBackImplementation and in the SampleWebShopLoginWebPage classes have been fixed.
    A spell mistake in the "Standard input is not available => Enter can't..." message has been fixed.
    The ico file extension has been added as content-type "image/vnd.microsoft.icon".
    "return;" changed to "return ;".
    The "Simple list" header in the "Sample list" has been fixed to "Sample list".
    Some small spell mistakes in the Sample02SimpleLink class (and in the SWS Getting started page) have been fixed.
    The use of the bold tag (<b>) has been removed from the SWS Getting started page.
    Most of the output from ClientInformationUserAgentParserTest have been removed (print = false), to speed up the unit test.
    Shutting down the server while a request(s) was in process, was not handled correct. This has been fixed.
        The check for leaked MyTimers was typically not executed, when pressing enter to stop the server. This check is now always executed.
        The SimpleWebServer.shutdownTimeout field has been created in the process.
    The uncommented experiments code in the WebResource.writeResource() method has been removed (Ups).
    The method autoDectectTextEncoding in the WebResource class has been spell corrected to autodetectTextEncoding.
    The "Code copied from" notation has been cleaned up.
    "continue ;" changed to "continue;".
    "auto save" changed to "autosave".
    Order of modifiers have been fixed ("synchronized" was before "static").

Version 1.0.2 (2024-05-05 17:13:03)

    Public on yautar.dk at 2024-05-05 17:13.
    Changed from using AR Common version 1.1.5 to version 1.1.6. See release notes for AR Common for details.
    Changed from using ABT Update Checker version 1.0.2 to version 1.0.3. See release notes for ABT Update Checker for details.
    The TestDirectoryWebPage class will now add new files if they are created after start of the server.
        This class and all the test / experiment classes have been removed from the public version of this project.
    The "Internal server error" page is now in <meta charset="UTF-8"> as the content always was.
    The application has been heavily extended:
        Support for number input, select (Drop-down list / combobox), checkbox and radio button fields have been added.
        Support for cancel and alternate submit buttons have been added.
        Existing code has been moderate refactored breaking backward compatibility in the process.
        Many small bugs have been fixed in the process.
        Call between "page functions" can now be made using other primitive type that int, and it can also be made with Objects and Enums.
        "Page functions" now supports polymorphism.
        Less memory is leaked.
        Support for HTTP POST method.
        Support for HTTPS.
        File Upload, security, session and cookie support.
        Multi WebApplications support.
        WebDirectory and WebResource support.
        And more.
        The feature list on the download site has been updated accordingly.
    The "SWS Getting Started.html" page has been added.

Version 1.0.1 (2023-03-27 13:25:49)

    Public on yautar.dk at 2023-03-27 13:25.
    Dependency of AR Common version 1.1.5 has been added.
    Dependency of ABT Update Checker version 1.0.2 has been added.

Version 1.0.0 (2014-02-01 ??:??:??)



Generated on 2026-11-04 15:12:17 by ABT - Allan's Build Tool (Version: 1.0.20 (Build: 843), AR Common version: 1.1.8 (Build: 1532)).
The template for this file was last updated on: 2026-11-04 15:12:17.
Copyright Allan Rasmussen©.