Updates 2024/09/27

Apart from a lot fixes, changes and additions, a lot of work has gone into replacing deprecated code. Since Java has been changing more rapidly since Java 9, quite a lot of code needed tweaking. Subtle changes between Java versions (e.g., ordering in Properties) were breaking the regression unit tests. In some cases, I had to resort to Java-version specific test output to compare against. But most importantly, ADAMS now successfully compiles, executes its tests and runs under the following Java versions: 11 (LTS), 17 (LTS), 21 (LTS), 22 and 23. Code base and compiled output are still targeting Java 11.

Fixes

  • When enabled in the Flow editor, garbage collection is now run after the flow finished and when the flow is being cleaned up.

  • Fixed handling of mnemonics and accelerators for properties-based menu items (e.g., Spreadsheet file viewer).

  • Editing enums in the GenericArrayEditor now allows adding multiple enums via their text-representation (fixed out of bounds exception).

  • Spreadsheet tables now apply numeric filters to numeric values correctly.

  • Debug view in the Flow editor no longer hides the notification area when a flow finishes.

  • The Storage debugging panel in the Flow editor had its Edit operation fixed.

  • The GOE editors for annotations, text and markdown now respect the line wrap state when reopening the editor.

  • The GenericObjectEditor no longer updates the current value of a chooser panel while editing an object, only when accepting the changes.

  • The FlowRunner now uses BackgroundScriptingEngineRegistry for stopping scripting engines.

  • adams-imaging: The PolygonPointAnnotator now plots a small circle or a line when there are only one or two points selected before plotting a polygon.

  • adams-compress: The GUNZIP, UnBzip2 and UnTar transformers now decompresses the data till they reach the end-of-file, handling concatenated streams now correctly.

  • adams-spectral-2dim-core: improved performance of the BulkSampleDataDbWriter by fixing the underlying

    SampleDataT code (auto-commit was always on regardless of parameter).

  • adams-weka and adams-weka-lts: Instances tables now apply numeric filters to numeric values correctly.

Changes

  • Variables and storage in the Flow editor are now available for inspecting after flow execution (even when stopped) till the flow is being cleaned up.

  • The FlatLaf* look'n'feel themes now show scrollbars again.

  • The ViewDataClickAction of the SequencePlotter and SimplePlot sink now allows the user to select the outline of a polygon and display the data points that fall within that polygon. The polygon is defined (invisible unless the PolygonSelectionPaintlet overlay paintlet is specified) by SHIFT+left-click on vertices and SHIFT+right-click to finalize the polygon (CTRL+right-click discards any points).

  • The WaitForFile transformer now uses the file use check class hierarchy.

  • The Storage debugging panel in the Flow editor now can copy the name/cache to the clipboard via the right-click popup menu, as well as editing and exporting.

  • The LocalScopeTransformer control actor has been renamed to LocalScopeSubProcess to better align with the naming conventions.

  • The DeleteFile transformer now handles arrays of strings/files as well.

  • The GenericObjectEditor now has an improved undo mechanism: it is now possible to revert to a previous object when switching between objects via the class tree.

  • adams-groovy: Upgraded groovy dependencies to 4.0.23 to work with Java 22

  • adams-imaging:

    • The ImageObjectInfo transformer can output the rectangle/polygon area now and supports scaling.

    • Upgraded commons-imaging to 1.0.0-alpha5

    • The ImageObjectFilter can now work off a copy of the incoming report/report handler rather than modifying in-place (default).

  • adams-spectral-2dim-core:

    • The RowWiseSpreadSheetSpectrumReader spectrum reader has improved support for chunked spreadsheet readers now; added support for row filtering.

    • The RowWiseSpreadSheetSampleDataReader now has support for row filtering.

  • adams-spreadsheet:

    • Added chunking support to FastCsvSpreadSheetReader

    • Added support for running garbage collection in Spreadsheet file viewer when closing sheets/pages (File / GC on close).

    • The Unique values column operation now opens a modeless text dialog, enabling multiple dialogs to be open at the same time.

    • Spreadsheet tables now limit the number of characters that are displayed in the title (default: 40) to avoid overly wide columns. That can be adjusted with key "SpreadSheetTableMaxColumnNameChars" in GUIHelper.props.

  • adams-visualstats: The ViewDataClickAction of the Scatterplot sink now allows the user to select the outline of a polygon and display the data points that fall within that polygon. The polygon is defined by SHIFT+left-click on vertices and SHIFT+right-click to finalize the polygon (CTRL+right-click discards any points).

  • adams-weka and adams-weka-lts:

    • Upgraded jgrapht-treevisualize-weka-package to 2024.8.19 to address CVE-2022-42889 introduced by commons-text:1.5

Additions

  • The BlockingSearch search plugin for the FileSystemSearch waits till the specified base search returns a non-empty results (or the specified timeout is reached).

  • The ListClassUsage actor processor generates a list of all occurrences of a class (or derived classes, when enabled) in a flow.

  • The LocalScopeTee control actor works like the normal Tee actor but with local scope for variables/storage.

  • The LaunchTee and LaunchTrigger control actors launch their respective sub-flows in separate threads (no limit to number of threads), each with their own local scope. Can be used for launching external processes, like Docker containers that keep running.

  • adams-imaging:

    • Added support for generating sub images from predefined regions that have a label associated with the LabeledRegions generator - plugin for the SubImages BufferedImageTransformer.

  • adams-spectral-2dim-core:

    • Added the MultiColumnSpreadSheetSampleDataReader reader for sample data, which reads reference data row-wise, using the specified column range.

    • Added the BulkSpectrumDbWriter transformer to make bulk imports of spectra faster. The recommended setting is to use a new connection and to turn auto-commit off, to dramatically increase throughput.

  • adams-spreadsheet:

    • The Overlay multi-spreadsheet operation combines multiple sheets into a single one by overlaying non-empty cells at the same coordinates, with the last non-empty cell overwriting any prior content.

Have a good weekend!