development / build news
 
 
-- FILE ---------------------------------------------------------------------
-- name       : BuildNews.txt
-- project    : BoarderZone: Development Environment
-- created    : Leon Poyyayil - 2003-01-25
-- language   : English
-- environment: the human readers mind ... ;-)
-- copyright  : (c) 1990-2026 by Leon Poyyayil (private), Switzerland
-- license    : this is free software licensed under the GPL. see COPYING
-----------------------------------------------------------------------------

This file contains a description of the major code changes between builds of
the java and web-site code for BoarderZone.net which are relevant to developers.
See doc/BuildVersioning.txt for a more detailed description of how to read it.


=============================================================================
version: 0.22.863
creator: Leon Poyyayil
created: 2026-01-08 17:09:09
status:  release
----------------------------
- build process:
  - updated all file headers to specify copyright 2026
  - lib.dev/*: updated all own libs and tools


=============================================================================
version: 0.22.862
creator: Leon Poyyayil
created: 2026-01-08 14:19:04
status:  release
----------------------------
- build process
  - conf/logging.AppTest.xml: renamed to logging.AppTest.log4j2.xml
  - conf/log4j2-test.xml: renamed to UnitTest.log4j2.xml
  - lib.com/bfopdf.jar: updated to latest version 2.29.4
- package net.boarderzone.apps.text.xmlvalidator:
  - XmlValidator: fixed to remove ignorable whitespace when pretty-printing
    => adapt to changed JDK serialization behavior (e.g. "beautify" the XML)
- package net.boarderzone.plugins.filehandler.javacodesnippeteditor:
  - JavaCodeSnippetEditor: added javac cmd line option to suppress annotation
    related warning that occurs on JDK 21
- package net.boarderzone.gui.util:
  - MultiFlavorTransferable: fixed to avoid error upon clipboard access
- package net.boarderzone.gui.widget:
  - ClipboardMonitor: added debug logging in case of access errors
  - ClipboardTool: added data flavors for file copy/cut/paste on Linux
  - DirectoryBrowserData: added support for marking a file for "move" (vs "copy")
    => on Linux, that should also work with Gnome compatible other file managers
  - DirectoryBrowserFrame:
    - now shows the active directory name first in the title (like FileHandlerFrames)
  - DirectoryListPanel:
    - added support for adding the new "cut" operation to the popup-menu
    - changed keyboard shortcut for toggling the executable flag
      from CTRL+X TO CTRL+SHIFT+X (to avoid conflict with new "cut" operation)
  - DirectoryListPanelBase:
    - added support for a new "cut" operation (i.e. "mark file for move") with CTRL+X
      => marks the selected file for a subsequent "move" operation
  - DirectoryTreePanel:
    - added support for a new "cut" operation (i.e. "mark dir for move") with CTRL+X
      => marks the selected directory for a subsequent "move" operation
    - enhanced the "copy" operation implementation to honor the new "marked for move"
      flag on an item in the clipboard
      => will actually _move_ a file when such a condition is detected
      => CTRL+V following a CTRL+X will thus perform a "cut-and-paste" operation
      => CTRL-V following a CTRL+C will remain a "copy-and-paste" operation
      => interacts well with Gnome-compatible file managers on Linux
      => no support possible with the Windows File Explorer due to it not providing
         any means to put such information into the Windows clipboard
      => cut/paste will still work _within_ the same BZ FB instance (same JVM)


=============================================================================
version: 0.22.861
creator: Leon Poyyayil
created: 2025-11-30 20:45:34
status:  release
----------------------------
- build process
  - changed to compile on JDK-11 but still generate byte code for JDK-8
    => code still runs on those older platforms
    => this leads to javadoc being in new format, without frames but search support
    notable:
    - Math calculation accuracy has changed, leading to slightly different results
    - Swiss locale has changed the numerical (thousands) grouping character
      (used to be a simple ASCII apostrophe, is now a Unicode (not ASCII!) backtick)
    - changed timestamp locale formatting (including a comma to separate date from time)
    - removed stuff related to the deprecated SecurityManager and its security policy
  - disabled FindBugs for the moment as it fails miserably on the new JDK-11
    - Java complains about using internal JDK APIs upon start
    - NPEs during analysis
  - lib.dev/log4j.jar:
    - updated from 2.17.2 to 2.25.2
    - replaced by separate .jar files due to compile time restrictions (annotations)
  - lib.dev/log4j-jdk9.jar: removed again as no longer needed
  - lib.dev/slf4j-api.jar: updated from 1.7.25 to 2.0.17
  - updated all own libs and tools
  - script/bzjava*:
    prepared BZ java starter utility scripts for passing --add-opens arguments to the
    JVM for allowing reflective access when needed (none required for basic operation)
  - script/compile.xml:
    - cleaned up filtering while copying files to only process files which we need to
      (to avoid inadvertently modifying or even corrupting other files)
  - script/docbook.xml:
    - changed to normalize produced XML files
    - changed to make use of our updated own XSLTransform task instead of the
      original Ant <style> task, now that it supports parameters and allows beautification
  - script/library.xml:
    - changed to make use of new attribute on SignJar task to set the digest algorithm name
      => JDK-21 has changed its default digest algorithm to SHA-384, while earlier
         JDKs (8, 11, 17) had SHA-256
      => as the previous build scripts used the default jarsigner utility of the
         build machine, older BZ releases were thus signed with SHA-384 already
      => having re-configured the ant start scripts to ensure to use the jarsigner
         utility of the configured JDK, they now use the one from JDK-11 which would
         resort to SHa-256 again
      => we want to keep the more modern algorithm despite using an older JDK for compilation
  - script/style/javadoc:
    - stylesheet.css: adapted javadoc dark stylesheet to have BZ colors for the (new) search UI
  - script/webapp.xml:
    - cleaned up filtering while copying files to only process files which we need to
      (to avoid inadvertently modifying or even corrupting other files)
    - changed to produce a beautified web.xml, without comments
- package net.boarderzone.afw:
  - Application: extended debug info output to show java version information
- package net.boarderzone.apps.file.browser:
  - FileBrowserSessionXmlHelper:
    - changed to make use of new utility method to set file header/footer comments
- package net.boarderzone.config:
  - ConfigItem: fixed to fall back on the defined default value upon string access
    when the value itself is null or empty
    => fixes a problem on JDK-25 when the plugin dir config option is not explicitly
       configured, when the new JDK-25 would assume the empty string to be the current
       directory, leading to plugins not being found.
    => by now falling back on the default value instead, that is avoided
    => can be considered a bug in the previous state, where the default value would
       not be consulted at all in such a situation
- package net.boarderzone.core:
  - CoreTypeSchemaGenerator:
    - changed to make use of new utility method to set file header/footer comments
- package net.boarderzone.gui:
  - ToolbarMenuAction: added possibility for dynamic refreshing of the popup menu
- package net.boarderzone.gui.core:
  - CoreTypeViewXmlHelper:
    - changed to make use of new utility method to set file header/footer comments
- package net.boarderzone.java.cmopile:
  - JavaCompiler: improved error messages when missing jmods/ from modern JDKs
- package net.boarderzone.modules.geomap:
  - MapTileProviderImplArcGIS: changed default URL from http to https
  - MapTileProviderImplBingMaps: changed default URL from http to https
  - MapTileProviderImplOpenStreetMap: changed default URL from http to https
  - MapTileProviderImplYandexMaps: changed default URL from http to https
- package net.boarderzone.modules.tabulardata:
  - TableDataXmlHelper:
    - changed to automatically beautify DOMs upon parsing for better handling
      contents with new JDKs which preserve (ignorable) whitespace
    - changed to make use of new utility method to set file header/footer comments
  - TableDataXmlHelperString:
    - changed to automatically remove ignorable whitespace from table cells upon
      saving for better handling contents with new JDKs
- package net.boarderzone.plugins.anttasks:
  - ObfuscateProperties:
    - changed to preserve original strings (prevent unicode escape sequences)
    - changed to sort entries by property names
  - XSLTransform:
    - added new config parameters to "beautify" and "keepComments"
    - added support for nested <param> tags for passing dynamically configurable parameters
- package net.boarderzone.plugins.filehandler.asnxmleditor:
  - AsnXmlEditor: adapted to changed XML serialization behavior
- package net.boarderzone.plugins.filehandler.cborxmleditor:
  - CborXmlEditor: adapted to changed XML serialization behavior
- package net.boarderzone.plugins.filehandler.diaryeditor:
  - DiaryEditor: added support for quick selection of the most recent activities
- package net.boarderzone.security:
  - SignatureAlgorithmSelector: added support for EDDSA
- package net.boarderzone.util:
  - LineEndingNormalizerWriter: new utility class to enforce a specific EOL
  - ReplacementMapperConfigXmlHelper:
    - changed to make use of new utility method to set file header/footer comments
  - VersionInfoBase: extended main() method to output java version information
- package net.boarderzone.util.xml:
  - XmlMessageHelper:
    - added accessor method for serializer to allow more customization control
    - added new flag "AutoBeautify" to allow automatic beautification of DOMs
      upon parsing of messages
    - moved implementation of beautification methods to XmlTool for broader re-use
    - breaking API changes:
      - replaced "CompactFormat" with "AddIndentation" flag
      - made c'tor with single boolean parameter private (due to inversed semantics)
  - XmlSerializer:
    - changed to use LineEndingNormalizerWriter instead of setting EOL system property
      => required for proper enforcement of configured EOL on new JDKs
    - improved to make use of the LSSerializer "xml-declaration" parameter when supported
    - breaking API changes:
      - replaced "CompactFormat" with "AddIndentation" flag
      - renamed "Indent" to "IndentAmount"
      - made c'tor with single boolean parameter private (due to inversed semantics)
  - XmlTool:
    - added utility method to beautify a DOM
    - made getFileHeader() more convenient to use by taking the user.name java
      property as creator when given a null argument for this parameter
    - added setDocumentComments() convenience method to set header/footer comments
    - added utility methods to remove comments
    - re-implemented debugging methods to dump the structure of a DOM to provide
      more control over whitespace to help in troubleshooting issues with new JDK
- package net.boarderzone.web:
  - DirectoryServlet: fixed to prevent a 500 server error when receiving an
    If-Modified-Since header with invalid format (will now be ignored silently)


=============================================================================
version: 0.22.860
creator: Leon Poyyayil
created: 2025-09-10 03:24:33
status:  release
----------------------------
- build process
  - javadoc: removed links to external servlet and Tomcat APIs
  - lib.dev/struts.jar: migrated to jakarta.servlet.* package names
  - all own web code: migrated to jakarta.servlet.* package names
    => will require at least Tomcat 10.0.x to run
- products:
  - removed BitCoin and PayPal donation buttons from documentation menu
  - removed old (animated) GIF favicon files as they're no longer supported by browsers
- package net.boarderzone.plugins.tomcat:
  - SaltedJDBCRealm: removed class due to its base being gone due to deprecation


-- EOF ----------------------------------------------------------------------