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-2017 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 which are relevant to developers.
See doc/BuildVersioning.txt for a more detailed description of how to read it.

version: 0.18.747
creator: Leon Poyyayil
created: 2017-11-21 15:00:04
status:  alpha
- build process:
  - lib/jai-imageio-core.jar: patched to properly handle new JDK 9 versioning scheme
  - products/FileBrowser/combine-binary.xml: fixed to include ImageIO plugin jars
  - script/javadoc.xml: added copyright years
- package
  - JarTool:
    - added support for displaying the signature type when showing signers:
      e.g. something like "SHA256withRSA based on SHA1 in manifest" or similar
      => helps to identify "weak" signatures which are not accepted anymore in more
         recent JREs and thus treated as unsigned
    - added option to drop directory entries when rewriting
    - added option to drop comments from entries when rewriting
    - added option to reset entry times when rewriting
- package net.boarderzone.apps.text.messageexport:
  - MessageExport: improved recognition of signal contacts to be independent of the
    presence of the 'name' property in the contact
- package
  - TextSearch:
    - fixed NullPointerException in case specifying a single archive to search
      with unpack enabled
    - fixed to only output the file containing a match (but not its matching text)
      when the "line" option is set to false
      => useful for searching text in binary files to not output binary content ...
- package net.boarderzone.gui.widget:
  - XmlTextArea: added support for disabling syntax highlighting
- package net.boarderzone.plugins.filehandler.exifviewer:
  - ExifViewer: added note text, saying why this viewer is currently unusable
- package net.boarderzone.plugins.filehandler.pdfviewer:
  - PdfViewerHandlerDependency.xml: removed dependency check for JDK 1.6
    => not necessary anymore as we already require JDK 1.7
    => no more warning about unsatisfied dependency on JDK 9 due to changed versioning scheme
- package net.boarderzone.plugins.filehandler.textlineviewer:
  - TextFileModel: fixed to properly dissect linux-EOL lines within windows-EOL files
- package net.boarderzone.plugins.filehandler.xmltools:
  - XmlEditor: improved handling of large XML files
    - added toggle button to toolbar to enable/disable syntax highlighting
    - changed to disable syntax highlighting when opening an XML file > 1 MB
    - enhanced to prevent OutOfMemory errors when normalizing large XML files upon load
      (perform manual IO for replacing EOL to the expected \n by java swing instead of
      regular expression replacement over the whole text)
- package net.boarderzone.plugins.filehandler.zipviewer:
  - VerifyAction: added debug logging of CRC and signature errors
- package net.boarderzone.util:
  - Dependency: added support for running on JDK 9 with changed package versioning

version: 0.18.746
creator: Leon Poyyayil
created: 2017-09-15 23:43:03
status:  alpha
- build process:
  - fixed several javadoc linking issues (Log4j-2.7, CheckStyle-7.3, FindBugs-3.0.1)
  - fixed javadoc to prevent importing missing dejavu.css (JDK bug)
- package net.boarderzone.apps.file.browser:
  - FileBrowser: added support for configuring custom ASN.1 OIDs
  - FileBrowserConfig.xml: added config option 'asn-oid-map'
- package
  - ASNconvert: updated support for formatting/resolving custom OIDs
- package
  - ASNdump: updated support for formatting/resolving custom OIDs
- package
  - AsnOIDFormatterImpl: added support for formatting/resolving custom OIDs
  - AsnXml: fixed guessing of unknown types to prevent runtime exceptions
- package net.boarderzone.plugins.filehandler.asnviewer:
  - AsnBerTreePanel: added support for formatting/resolving custom OIDs
- package net.boarderzone.plugins.filehandler.asnxmleditor:
  - AsnXmlEditor: added support for formatting/resolving custom OIDs
- package
  - CertificateBuilder: added overload for method to create PKCS#10 requests
    with a renewal certificate and a custom set of extensions
  - CertificateInspectionTool:
    - fixed to support non-http CDPs
    - added support for formatting/resolving custom OIDs
  - CertificateRevocationCheckTool: fixed NPE when reusing cached CRLs
- package
  - PKCS10ViewerPanel: added support for formatting/resolving custom OIDs

version: 0.18.745
creator: Leon Poyyayil
created: 2017-06-21 02:51:46
status:  alpha
- build process:
  - lib/javax.mail-*.jar: new libraries for sending e-mails via SMTP
  - updated to 1.7.0 => support for Java 7 language features
  - changed to used standard IOException instead of own NestedIOException
    (new nested c'tors available in new JDKs)
- package net.boarderzone.afw:
  - Application: added support for installing the configured network authenticator
  - ApplicationConfig.xml: added new options for network authentication:
    - net-authenticator
    - net-username
    - net-password
- package net.boarderzone.afw.auth: new package with network authenticators
- package
  - AcmeClient: fixed to properly report the status of missing certificates
- package new utility to send e-mails via SMTP
- package
  - ASNconvert: new command line utility to convert ASN.1 data to/from various formats
- package net.boarderzone.asn:
  - AsnTag: added method deriveTag()
  - AsnTagImpl: added new c'tor and implemented new interface method deriveTag()
- package net.boarderzone.asn.model:
  - AsnConstraintStringCharset:
    - added checking of ASCII chars in IA5 type
    - added checking of control chars in generic string types
- package
  - AsnTool: added method decodeAs()
  - AsnXml: new utility class to convert between ASN.1 DER and XML
- package net.boarderzone.asn.value:
  - AsnBitString: added methods and c'tor to parse/format binary (01) strings
  - AsnObjectValueBase: added method hasValue()
- package net.boarderzone.config:
  - ConfigData: improved possibilities for variable expansion when setting system
    properties to also accept config items and local properties, as well as all those
    system properties that are about to being set (independent of their order ...)
- package net.boarderzone.gui:
  - DesktopSiblingFrame: added new c'tor to set the title resource key
- package net.boarderzone.gui.action:
  - ShowSystemErr: new command to display the dialog to monitor System.err
  - ShowSystemOut: new command to display the dialog to monitor System.out
- package net.boarderzone.gui.action.text:
  - EditAction: added support for disabling mode to act on everything if nothing selected
- package net.boarderzone.gui.auth: new package with a gui network authenticator
- package net.boarderzone.gui.widget:
  - AuthenticationDialog: extended to support remembering entered credentials
  - ClipboardTool:
    - added constant for data flavor of binary content (application/octet-stream)
    - added methods getObjectFromClipboard() and getBinaryFromClipboard()
  - FileEditorHelperBase: added support for aborting save operations by derivations
  - FileEditorSaveAbortException: new special exception
  - SystemOutConsole: new dialog to monitor System.out and System.err
- package
  - HttpConnection: replaced package protected method getSocket() by two new
    methods getInputStream() and getOutputStream()
  - HttpRequestImpl:
    - adapted to modifed HttpConnection
    - added support for "executing" via standard classes to support
      automatic authentication via JAAS modules (Kerberos: SPNEGO, useful also
      for "Windows integrated authentication")
      => added methods buildURL(), various variants of connectURL() and executeURL()
         and sendTo(HttpURLConnection)
  - HttpResponseImpl: added protected access to status
- package net.boarderzone.plugins.filehandler.asnviewer:
  - AsnBerTreePanel: moved binary flavor definition to ClipboardTool
- package net.boarderzone.plugins.filehandler.asnxmleditor:
  - AsnXmlEditor: a new FileHandler plugin to edit arbitrary ASN.1 data as XML
- package net.boarderzone.plugins.filehandler.httpclient:
  - HttpClient: added button for disabling raw socket communication to allow for
    automatic authentication negotiation by standard classes
  - SendAction: added support for disabling raw socket communication
- package
  - CertificateBuilder: fixed to merge multiple SANs into a single extension
  - CertificateInspectionTool: moved implementation of formatPEM() to Base64Tool
  - Extensible: added convenience method getCustomExtension(OID)
  - ExtensibleBase: adapted to new interface
  - PKCS10CertificateRequest: adapted to new interface
- package net.boarderzone.util:
  - Base64Tool: added methods isValidBase64(), formatPEM() and detectPEMType()
  - Binary: implemented new interface method isEmpty()
  - BinaryData: added new method isEmpty()
  - BufferOverflowException: new exception
  - CircularByteBuffer: new pipe-like stream helper class
  - CircularCharBuffer: new pipe-like stream helper class
  - CircularObjectBuffer: new pipe-like stream helper class
  - HexTool:
    - added methods isValidHex()
    - reimplemented method decode() to properly support ignoring whitespace
  - NestedIOException: removed as unnecessary now
  - StreamTool: added method unbufferedCopy with an explicit chunk size
- package net.boarderzone.util.xml:
  - XmlSerializer: added method overload for serialize(Document,Writer)

version: 0.18.744
creator: Leon Poyyayil
created: 2017-05-19 14:58:21
status:  developmental
- package
  - AsnOIDFormatter:
    - changed behavior flag setters to return the instance for convenient chaining
  - AsnOIDFormatterImpl: adapted to changed interface methods
  - AsnTool: added overloads for customizing the result of toString()
- package net.boarderzone.plugins.filehandler.jcetool:
  - AddEntryWizardStepImportCertificate: enhanced to output all downloaded certificates
    into PEM text area in case of .p7c certificate chains
    => let the user decide which one to choose for import by editing the PEM text ...
  - AddEntryWizardStepSelectOperation: fixed to only allow generating secret keys
    if the keystore actually supports it (used to crash on .p12 stores)
  - JceCRLViewer: new viewer panel
  - JceCRLViewerHandler: new file handler
  - JceKeyStoreEditorHandler:
    - added support for these additional MIME types:
      application/pkcs7-mime application/x-pem-file application/x-pkcs12
    - adapted to disable editing and saving for read-only cert stores (.pem and .p7c etc)
  - JceKeyStoreViewer:
  - JceKeyStoreViewerHandler:
    - added support for these additional MIME types:
      application/pkcs7-mime application/x-pem-file application/x-pkcs12
    - added methods getKeyStoreFileType(), isReadOnlyCertStore() and isSecretKeySupported()
    - changed to prevent changes on read-only cert store instances
    - fixed to sort entries by alias
  - PKCS10Viewer: new viewer panel
  - PKCS10ViewerHandler: new file handler
- package
  - AlternativeName: added method to format the instance into a message
  - CertificateInspectionTool: added overload of method formatPEM for CRLs
  - CertificateProfile: extracted support for Extensions into new base class
  - CertificateRevocationCheckTool: added debug logging of downloaded CRLs
  - Extensible: new (read-only) interface for entities with Extensions
  - ExtensibleBase: new base class for new interface
  - KeyStoreEntrySorter: fixed sorting by alias
  - PKCS10CertificateRequest:
    - enhanced to allow access to all custom extensions
    - enhanced to allow access to all other attributes
    - fixed to properly recognize critical extensions
- package
  - PKCS10ViewerPanel: new viewer panel
- package
  - JceCRLViewerPanel: new GUI for displaying contents of CRLs
- package net.boarderzone.util:
  - PerformanceMonitor: restructured to simplify usage
- package net.boarderzone.web:
  - ConfigServlet:
    - fixed logging start sequence
    - enhanced to log config parameter values when level is on debug
    - added debug level logging on unavailable resources/files to ease troubleshooting
    - fixed to only execute code in destroy() method once to safeguard against
      multiple invocations (shutdown hooks vs. normal container operation)
    - changed to suppress performance counter report if not enabled (and not debug)

version: 0.18.743
creator: Leon Poyyayil
created: 2017-05-13 13:04:24
status:  developmental
- build process:
  - lib/acme4j.jar: new library for the Let's Encrypt ACME protocol
  - lib/jose4j.jar: new library (dependency of amce4j.jar)
  - lib/slf4j-api.jar: new library (dependency of acme4j.jar)
  - script/admin.xml: added new libraries to classpath
- package net.boarderzone.afw:
  - Application: added method installSecurityProviders()
- package new utility
- package
  - HttpClient: moved implementation of method installSecurityProviders() to base class
- package
  - MailExport:
    - added new option 'mbox-from-line-check' for strict from line format checking
    - added support for specifying headers and header prefixes to strip via file
- package
  - KeyStoreTool: moved implementation of method installSecurityProviders() to base class
- package net.boarderzone.apps.text.replace:
  - TextReplaceConfig.xml: added option 'multiline'
  - TextReplace:
    - added special support for std-in and std-out
      - if the 'in' option is the empty string, std-in is being read instead of a file
      - if the 'out' option is the empty string and only a single file (or std-in) is
        being processed, then output will be written to std-out
    - added support for setting the multiline flag on regular expressions
    - unescaping replacement string: "\r\n" becomes a single windows line end, "\t" a tab
- package net.boarderzone.asn:
  - AsnOIDValue: added methods removeFirstComponent() and removeLastComponent()
  - AsnOIDValueInfo: added methods isEmpty(), isTopLevel(), hasParent() and getLevel()
- package net.boarderzone.asn.code.ber:
  - AsnBerEncoderImpl: fixed NPE in case of empty AsnBitString instances
- package
  - AsnOIDFormatter:
    - added new convenience methods with string arguments and default parameters
    - added methods isKnown() to check whether an OID has a known name
    - added methods formatLastComponent() to result in a leaner output for known contexts
  - AsnOIDFormatterImpl: implemented new interface methods
  - added more OIDs
- package net.boarderzone.asn.value:
  - AsnObjectIdentifier:
    - added convenience c'tor from AsnOIDValueInfo
    - added methods getParent() and makeRelative()
  - AsnOIDValueBase: implemented new interface methods
  - AsnRelativeOID: added convenience c'tor from AsnOIDValueInfo
- package net.boarderzone.config:
  - ConfigData: fixed IndexOutOfBoundException in case zero-length arguments are given
    to boolean and multi-string options
- package net.boarderzone.gui.core:
  - CoreTypeView.xsd: changed TextArea 'wrap' attribute from boolean to new enum: none,char,word
  - CoreTypeViewTextArea: added support for 'word' style wrapping
  - CoreTypeViewXmlHelper: added support for 'word' style wrapping
- package net.boarderzone.gui.widget:
  - FileHandler:
    - replaced method getDialogPropertyType() with isUseFileExtensionAsDialogPropertyType()
  - FileHandlerFrame:
    - fixed distinguishing the dialog properties of different handler types depending on
      their respective file extensions used as dialog property type
  - LoggerConfigDialog: added button to reset the level of all known loggers
- package
  - MailFolder: added methods getFormat() and getEntryReader()
  - MailFolderImplBase:
    - added support for new interface methods
    - added support for stripping headers based on a prefix (in addition to exact name matching)
    - improved adding of folder contents by using the new MailFolderReader
      => allows to add emails one-by-one without requiring all of them to be loaded into memory
         simultaneously at the same time
  - MailFolderImplMaildir: added support for new interface capabilities
  - MailFolderImplMbox:
    - added support for strict from line format checking:
      - if a delivery date is present, it must be valid
    - improved to return a special entry reader that iterates through all contained entries
      => prevents having to load the entire mbox into memory to process its entries
    - improved to fall back to the "date" and "received" headers in case the "From " line
      is lacking a valid delivery date
      => prevents that an entry gets a dynamic delivery date in such situations
    - fixed to use the fixed DateTool in order to prevent date parsing to be locale dependent
    - fixed to prevent NPE in case of reading (e.g. skipping) content before the first message
  - MailFolderImplMh: added support for new interface capabilities
  - MailFolderReader: new interface for reading entries from a folder
  - MailFolderReaderMemory: new implementation
  - RFC822MessageImplBase:
    - removed member for set of header names to strip (saves runtime memory)
    - added utility method to check whether a header should be stripped
  - RFC822MessageImplFile: added support for stripping headers by prefix
  - RFC822MessageImplMemory: added support for stripping headers by prefix
- package net.boarderzone.plugins.filehandler.coretypeeditor:
  - CoreTypeEditorHandler:
    - fixed support for different dialog properties depending on the file extension being edited
- package net.boarderzone.plugins.filehandler.httpclient:
  - HttpClient: auto parsing the content upon load to automatically detect SSL mode
- package net.boarderzone.plugins.filehandler.jcetool:
  - AddEntryWizardStepConfirmCertificateRequest:
    - added support for new SAN variants 'IP', 'RegisteredID' and 'Other'
  - AddEntryWizardStepEnterAlternativeName: added support for 'IP', 'RegisteredID' and 'Other'
  - AddEntryWizardStepEnterCertificateProfile: added support for BigInteger serial numbers
  - AddEntryWizardStepImportCertificateRequest: added logging in case of invalid PKCS#10 content
  - JceKeyStoreViewer:
    - fixed to remember splitter position for derivations too
    - added support for highlighting entries by string matching
- package net.boarderzone.plugins.jedit:
  - BoarderZonePlugin:
    - fixed to derive from EditPlugin instead of EBPlugin => no more warning in JEdit log
    - fixed to manually set our 'single' logger as fallback
      => necessary because the new ServiceProvider mechanism doesn't work in the JEdit
         plugin classloader infrastructure ...
      => plugin is now usable again (used to throw an Error upon use of StringTool due to
         unavailable logger ...)
- package
  - AlternativeName:
    - made class final
    - added support for the 'IP', 'RegisteredID' and 'Other' variants
    - added debug logging of invalidity reason in isValid()
  - CertificateBuilder:
    - added support for multiple SANs when creating a PKCS#10
    - added support for custom extensions from profile
  - CertificateInspectionTool:
    - added special support in method formatAltNames() for the 'Other' variant
    - enhanced method formatExtendedKeyUsage() to display the last component name for known OIDs
  - CertificateProfile:
    - added debug logging of invalidity reason in isValid()
    - added support for custom extensions
  - Extension: new class to support custom extensions
  - ExtensionOIDs: new class utility for commonly used extension OIDs
  - KeyStoreEntryInfo: fixed to invalidate certificate cache too when replacing cert chain
  - PKCS10CertificateRequest: fixed to accept requests with an empty subject name as valid
  - SecureHashTool: fixed to use "SHA-256" as identifier instead of "SHA256" for better
    platform independence (the latter was not recognized on OpenJDK ...)
- package net.boarderzone.util:
  - BinaryData: changed semantics of copyBytes() to allow returning null
  - Binary: changed copyBytes() to return null in case internal data is null
    => this allows other classes to perform a proper "clone" (resp. "duplicate") operation
       that will result in "equal" instances
       (AsnBitString was suffering from that problem in case it was empty ...)
  - DateTool: fixed to be locale independent for parsing and formatting
  - LoggerFactory: added support for new SLF4j frontend (inactive by default)
  - LoggerFactorySlf4j: new logger factory as frontend for SLF4j
  - LoggerImplConsole: changed to only call System.out.print() once
    => this fixes a problem in certain environments (e.g. JEdit) which resulted in each
       such call being output on a new line ...
  - LoggerImplSlf4j: new logger implementation to wrap SLF4j
  - PerformanceMonitor: new utility class to monitor performance
  - RegularExpression: added c'tor with multiline matching support
  - ReplacementMapper:
    - fixed to be more defensive upon multiple successive calls to setDynamicFileVariables(null)
  - StringList: added method getIterable()
- package net.boarderzone.util.testing:
  - JUnit: fixed NPE when saving test output files
- package net.boarderzone.web:
  - ConfigServlet:
    - fixed to call super.destroy() _after_ performing own cleanup work
    - improved GET/POST support to render a HTML form
    - enhanced to listen for programmatic changes to its own config properties
      => config file monitoring and GET/POST support can now be turned on/off via POST ...
    - added new config option and support for PerformanceMonitor counters
  - LoggingServlet:
    - added init parameter 'log-destroy-upon-sigint' to install a signal handler for
      forcing the invocation of destroy() upon shutdown (useful for CTRL-C ...)
  - ProxyServlet:
    - added config option to strip a certain prefix from the inbound URI
    - changed config option for config persistence to be optional (no persistence by default)
    - added config options and support for an SSL truststore for connecting to the target(s)
    - added config options and support for logging all in- and outbound traffic
    - added config option and support for filtering in- and outbound text traffic
    - fixed to treat all POST request data the same (not just multipart/form-data)
    - added special support for chunked encoding (header treatment ...)
    - fixed to serve error stream in case of non-200 response codes
    - changed to serve messages as "text/plain;charset=UTF-8" instead of "text/html"
    - removed obsolete compatibility code for JDKs < 1.5
    - fixed to allow redirection URLs without URI path component
    - fixed setupConnection() to explicitly adapt the 'host' header

version: 0.18.742
creator: Leon Poyyayil
created: 2017-01-02 06:26:46
status:  developmental
- build process: migrated to use Log4j 2.7
  - conf/log4j2-test.xml: new unit test logging configuration
  - conf/ new app testing logging configurations
  - conf/ replaced by log4j2-test.xml
  - conf/ new logging setup troubleshooting logging configurations
  - conf/ replaced by logging.AppTest.*
  - updated to 2.7
  - deleted as not used anymore
  - fixed bug which would truncate the file name of
    non- .class resources which contain a '$' character
  - script/buildLib.xml:
    - changed to supply the unit test log4j config in new xml format
    - added support for global resources (for ServiceLoader and Logj4 config)
  - script/library.xml:
    - moved support for global resources to buildLib.xml so that these are already
      available when running unit tests
- package net.boarderzone.afw:
  - Application: adapted to Logger refactorings
- package net.boarderzone.gui.action:
  - ShowLoggerConsole: adapted to Logger refactorings
- package net.boarderzone.gui.widget:
  - LoggerConfigDialog:
    - fixed to not set logger levels when selecting them
      => no more problems with resetting logger levels
    - adapted to refactored logger API
  - LoggerConsole: migrated to Log4j 2.7
- package net.boarderzone.plugins.log4j: deleted as not useful anymore
  => the functionality of the BzSmtpAppender is now already covered in Log4j 2.7
- package net.boarderzone.util:
  - EmptyIterable: new utility class
  - EnumerationIterable: new utility classs
  - Logger:
    - changed method getKnownLoggerNames() to return an Iterable instead of an Iterator
    - fixed to properly return LEVEL_INDEX_ALL from getLevelIndex() if necessary
    - moved int and string constants for levels into new separate enum LoggerLevel
    - optimized to use less memory: one LoggerLevelInfo instance instead of 7 levels
    - moved implementation of mapping between our logger levels and that of the underlying
      implementation into new LoggerLevelInfo utility class
  - LoggerFactory:
    - changed method getKnownLoggerNames() to return an Iterable instead of an Iterator
    - improved to support caching of loggers
    - improved to support configuration from streams for derivations (not only properties)
    - changed to use LoggerFactoryConsole instead of LoggerFactorySingle in case
      that LoggerFactoryLog4j is not usable due to inavailability of Logj4
      => this allows to still use hierarchical named loggers for debugging/troubleshooting
    - changed selection mechanism to be based on the java.util.ServiceLoader and thus
      to be more flexibly configurable by users of the library
  - LoggerFactoryConsole:
    - moved caching of loggers to base class
    - added support for a proper logger hierarchy and a root logger
    - added support for new ServiceLoader mechanism
  - LoggerFactoryJdk:
    - improved to support caching of loggers
    - simplified loading of configuration directly from stream
    - added support for new ServiceLoader mechanism
  - LoggerFactoryLog4j:
    - migrated to Log4j 2.7
    - added support for new ServiceLoader mechanism
  - LoggerFactoryNone: added support for new ServiceLoader mechanism
  - LoggerFactorySingle:
    - added support for configuring the level by setting the
      property 'LoggerFactorySingle.Level' in the logging config properties file
    - added support for new ServiceLoader mechanism
  - LoggerImplConsole:
    - adapted to Logger refactorings
    - changed to print level before logger name
    - improved to inherit its level from a parent logger and to support resetting its level
  - LoggerImplJdk: adapted to Logger refactorings
  - LoggerImplLog4j:
    - adapted to Logger refactorings
    - migrated to Log4j 2.7
  - LoggerImplNone: adapted to Logger refactorings
  - LoggerLevel: new enum for our logger level abstraction
  - LoggerLevelInfo: new utility class for implementing loggers of different types
  - resources/ replaced by log4j2.xml
  - resources/log4j2.xml: new bootstrap configuration for Logj4 2.x
  - resources/META-INF/services/net.boarderzone.util.LoggerFactory$Provider:
    new service declaration for instantiating the LoggerFactory
  - TextFileMatcher: enhanced to support matching of filenames containing a '$'
- package net.boarderzone.web:
  - LoggingServlet:
    - adapted to Logger refactorings
    - added support for xml configuration
- web:
  - tomcat/conf/: changed to use xml format for logging configurations of webapps
    - new support for asynchronous MAIL appenders
  - tomcat/shared/lib/: updated mailapi jars to support new log4j
- webapps: changed to use xml format for initial logging configurations

version: 0.18.741
creator: Leon Poyyayil
created: 2016-12-30 03:22:31
status:  developmental
- build process: updated all file headers to specify copyright 2017

version: 0.18.740
creator: Leon Poyyayil
created: 2016-12-30 01:41:35
status:  developmental
- build process: migrated to JDK 1.8 but cross compile to produce JDK 1.7 compatible byte code
  - conf/setenv.*.bat: set new env var JAVA_TARGET to make target for cross
    compiling available
  -*: updated all own libs and tools
  - updated to 7.3 to support new language features
  - updated to 3.0.1 to support new class file format
    => introduces a lot of new bug pattern detectors
    => currently all these new bug patterns are ignored to be fixed/addressed later
  - removed as not used anymore
    (not maintained anymore and doesn't support new java syntax)
  -*: new simple tool to collect java metrics
    => replaces the removed locc tool and supports new syntax with the javaparser.jar
  - script/admin.xml:
    - removed unused taskdef elements: checkstyle, sortimports, chki18n
    - moved checking of resource translations to compile.xml
    - replaced automated metrics generation to use custom JavaParserMetrics tool
  - script/compile.xml:
    - added support for cross compiling to an older JDK that we're running on
    - changed to use our new Javac18 to check javadoc warnings and errors
    - added checking of resource translations when performing checkstyle
    - updated call of checkstyle task to not specify exclusions
      => done by a separate suppressions file in the new checkstyle configuration
  - script/javadoc.xml:
    - updated custom stylesheet support
    - added support for the -bootclasspath option (but disabled as it doesn't work)
  - script/library.xml:
    - added warning output in case findbugs is disabled or not available
  - script/SableCC: updated to produce output that is conforming to stricter compiler
  - script/style/checkstyle-config.xml:
    - updated configs to new checkstyle version
    - added link to new separate suppression filter file
  - script/style/checkstyle-suppressions.xml: new separate suppression filter file
  - script/style/findbugs-filter.xml:
    => changed to ignore many new bug patterns: will be fixed/addressed later
  - script/templates/jedit/javaContext.vm: updated to set JDK 1.7.0
- all source code:
  - adapted to address new compiler warnings in regard to stricter type checking,
    especially in the context of generic classes
  - fixed all potentially troublesome HTML in javadocs, as rejected by the new
    javadoc compiler
  - simplified to use PairOf<T> instead of Pair<T1,T2> where possible
  - cleaned up a lot of code due to new checkstyle and findbugs reports
- package net.boarderzone.apps.file.processor: deleted
- package net.boarderzone.apps.text.fuellog: deleted
- package net.boarderzone.core:
  - CoreTypeSchema.xsd: added optional attribute 'abstract' to complexType tag
  - CoreTypeSchema: added support for marking predefined types as such
  - CoreTypeSchemaJavaClassGenerator:
    - added support for new 'abstract' attribute
    - refactored method generateSourceCode for better maintainability
  - CoreTypeSchemaXmlHelper: added support for new 'abstract' attribute
  - CoreTypeSpec:
    - added support for marking a type as 'predefined'
    - added support for marking a type as 'abstract': can't create values
- package net.boarderzone.modules.contentmanagement:
  - marked type 'DataItem' as abstract
  - re-generated classes to update the generated code to fulfill new compiler requirements
- package
  - re-generated classes to update the generated code to fulfill new compiler requirements
- package net.boarderzone.modules.usermanagement:
  - marked type 'NamedItem' as abstract
  - re-generated classes to update the generated code to fulfill new compiler requirements
- package net.boarderzone.plugins.anttasks:
  - ConvertLOCCMetrics: deleted as obsolete
  - Javac15: fixed to only set the option if the property is set
  - Javac18: new class to support the new '-Xdoclint' compiler option
  - SortImportStatements: deleted as not used anymore (enforced by checkstyle)
- package net.boarderzone.plugins.checkstyle:
  - updated all implementations to new APIs of checkstyle
  - AvoidLabeledStatementsCheck: deleted as now covered by standard checkstyle implementation
  - AvoidStaticImportCheck: deleted as now covered by standard checkstyle implementation
  - PackageInfoCheck: deleted as now covered by standard checkstyle implementation
  - RightCurlyCommentCheck: fixed string index out of bounds exception
- package net.boarderzone.util:
  - Pair: changed to not be final
  - PairOf: simple derivation of Pair with two same types

version: 0.18.721
creator: Leon Poyyayil
created: 2016-12-14 17:44:21
status:  developmental
- build process: updated all file headers to specify JDK 1.7

version: 0.18.720
creator: Leon Poyyayil
created: 2016-12-14 16:39:56
status:  developmental
- build process: migrated code base to JDK 1.7:
  -*: updated all own libs and tools
  - script/admin.xml: force a findbugs run too when forcing jar builds
  - script/compile.xml:
    - changed default flags for debug mode and optimize to reflect changed
      behavior of javac on new JDK 1.7
      => by default, generate debug info and suppress optimization
      => as we normally obfuscate later in the process, this at least allows
         debug info to be available in unit test code (stack traces etc)
    - changed to use our new Javac17 to treat warnings as errors
  - script/javadoc.xml:
    - added option '-XDignore.symbol.file' to suppress warning about usage of
      non-public API sun.misc.SignalHandler
    - changed to use the argument for the '-source' option from our (new) build
      property 'java.generation'
    - increased max memory
    - updated package grouping on overview page
    - updated custom stylesheet support
    - removed timestamp comment and username from generated docs
  - script/library.xml: run findbugs independently of the compile mode
  - script/SableCC/tpl/*.txt: added support for separate vars for VERSION and SINCE
  - script/templates/BoarderZoneSableCC.variableset:
    - added new variable SINCE to distinguish from VERSION
    - changed variable JDK_VERSION to updated JDK
  - script/templates/SableCC/*.macro: added support for separate vars for VERSION and SINCE
- package net.boarderzone.plugins.filehandler.javabytecodeviewer:
  - JavaByteCodeViewer: new FileHandler to display the class file version
- package net.boarderzone.plugins.anttasks:
  - Javac17: new compiler adapter class to support the -Werror command line option
  - JavacWithWarningsAsErrors: changed to deprecated, use Javac17 instead
- package net.boarderzone.util:
  - VersionDependency: new enum
  - VersionInfo: in all packages: removed public constants except for the singleton
  - VersionInfoBase:
    - fixed some constants to be private instead of public
    - changed to use the new VersionDependency when checking compatibility
      (rather than boolean constants)
    - changed to use the new VersionStatus enum when being constructed
      (rather than string constants)
  - VersionStatus: new enum

version: 0.18.701
creator: Leon Poyyayil
created: 2016-12-11 04:02:29
status:  developmental
- build process: updated all file headers to specify JDK 1.6
  - script/admin.xml: added new target 'jdk-version-update' to automate the task
  - script/style/TextLayout.FileMatcher: added new variable 'JDK-VERSION' for rule files
  - script/style/rules/*.regex: adapted all relevant rule files to use the above variable

version: 0.18.700
creator: Leon Poyyayil
created: 2016-12-11 02:31:01
status:  developmental
- build process: migrated code base to JDK 1.6:
  - disabled automatic building of java metrics report as LOCC has problems with new java syntax
    (a new tool is available, but that requires JDK-1.8 to run => done manually for the moment)
  - renamed file catalogs to *.catalog
  - renamed metrics reports to *.metrics
  -*: updated all own libs and tools
  - new tool for parsing java source code into an AST
    => requires JDK-1.8 to work, currently used for manually generating metrics
  - script/admin.xml:
    - adapted to changed metrics file names and tools
    - fixed generation of dependency report to properly denote components
      => no more cycles in report
  - script/buildLibUtil.xml: disabled warning about using non-public APIs
  - script/compile.xml: added support for the new -XD command line option
- all packages:
  - removal of redundant casts as warned by new 1.6 java compiler
  - replacement of call to deprecated method with the
- package net.boarderzone.plugins.anttasks:
  - Javac16: new compiler adapter class to support the -XDignore.symbol.file
    command line option
    => this allows to turn off the warning about using non-public APIs such
       as sun.misc.Signal, without having to turn off all other warnings
- package net.boarderzone.util:
  - PasswordInput: making use of the new to actually read the
    password => avoids the problem that the entered password would end up in
    the input history (at least on Windows ...)

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