Sonargraph Release Notes ======================== Build 15.0.0.246_2024-11-27 =========================== Improvements ------------ - Sonargraph - Added 'Source Element Count' metric to Architectural/Exploration Metrics view. - Added 'CSharpIsEnum' attribute retriever to Architecture DSL, check manual for details. Bug Fixes --------- - Sonargraph - For C# sometimes generic parameter dependencies were not recognized properly. This is now fixed. - Fixed a problem with internal fully qualified names for TypeScript. This prevented a generated report (xml) file to be read successfully. - Fixed 'IllegalArgumentException' (HistogramBin(): startBoundary > endBoundary.) when creating a Histogram. - Fixed 'NCCD' (John Lakos) metric calculation leading to invalid float values (NaN). Build 14.0.1.866_2024-11-14 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error (AssertionError: maxValue >= minValue) when creating a Histogram. - Fixed stack overflow error for TypeScript attribute retrievers. Build 14.0.1.865_2024-11-07 =========================== New Features ------------ - Sonargraph - Added 4 attribute retrievers for TypeScript: TypescriptImplementsInterface, TypescriptExtendsClass, TypescriptTypeof and TypescriptFileName. Please find the details in the documentation. Bug Fixes --------- - Sonargraph - Fixed assertion error (Unexpected call: getLogicalModuleScopeRecursiveElementRefactoringDescriptor) when opening an Exploration view on a 'logical' Architecture file (DSL) for a TypeScript system. TypeScript does not have a logical domain. The statement 'model "logical"' is now ignored and generates a warning. Build 14.0.1.864_2024-10-29 =========================== Improvements ------------ - Sonargraph - If an internal TypeScript module is also found under the external 'node_modules' directory, the external variant will be merged into the internal version. Bug Fixes --------- - Sonargraph - Fixed assertion error (XML System object must not be null!) when using undo/redo of a system file modification in a C# system. Build 14.0.1.863_2024-10-18 =========================== Improvements ------------ - Sonargraph - Improved logging in the 'Architecture Check' to hunt down a spurious 'NullPointerException'. Bug Fixes --------- - Sonargraph - Fixed assertion error ('nextRecursiveElementCreationDescriptor' of method 'loadArchitecturalView' must not be null) when trying to create a logical Architectural view for TypeScript. In TypeScript no logical domain exists. The logical Architectural view creation is no longer available in the corresponding wizard dialog. Build 14.0.1.862_2024-10-02 =========================== Improvements ------------ - Sonargraph - TypeScript source files can now be moved/renamed (refactorings). - The metric 'number of methods' is now available for TypeScript and Python. Bug Fixes --------- - Sonargraph - Fixed layout of product information in About dialog on Linux. - Fixed assertion error (Same points) in Cycle view. - The C# parser now should also work on Mac's with an Arm64 processor. - Fixed a stack overflow problem in the TypeScript parser. Build 14.0.1.861_2024-09-24 =========================== Bug Fixes --------- - Sonargraph - Fixed a regression bug in the TypeScript analyzer. Build 14.0.1.860_2024-09-13 =========================== Improvements ------------ - Sonargraph - Decorators are now properly added as dependencies for TypeScript. - Better resolution of ambiguous TypeScript dependencies when namespaces and elements of the same name as the namespace are involved. Build 14.0.1.859_2024-09-13 =========================== Bug Fixes --------- - Sonargraph - Fixed 'NullPointerException' in C# solution import wizard. - Replaced commons-text-1.9.jar with the newest version 1.12 due to a vulnerability. Build 14.0.1.858_2024-08-29 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error (already contains child) in background task when analyzing package cycles adding an element to a detected cycle. - Eclipse Plugin - Fixed assertion error (unexpected class) in delta refresh. Build 14.0.1.857_2024-08-23 =========================== Bug Fixes --------- - Sonargraph - Corrected the positioning of 'added' signs of newly added nodes (using a baseline) in the Cycle view applying the circular layout. - Enforced the selection of a root directory for the Python system creation wizard. - Fixed an assertion error that occurred when TypeScript directory dependencies were analyzed in a Graph view. Build 14.0.1.856_2024-08-09 =========================== Improvements ------------ - Sonargraph - Updated Roslyn libraries (C# parser) to the newest version. Bug Fixes --------- - Sonargraph - In C,C++ we now resolve symbolic links for internal header files. That avoids phantom duplicates of header files found via symbolic links. - Fixed an assertion error that would occur when creating a graph view from the architecture view of a Python project. - Double clicking a dependency in the Cycle view sometimes left the viewer unresponsive. Build 14.0.1.855_2024-08-02 =========================== New Features ------------ - SonargraphBuild - Added dynamic report goals for Python and TypeScript (Maven and Gradle). Now you can create a report by just specifying a source root directory. For Python you can also add a virtual environment. Improvements ------------ - Sonargraph - Made several small modifications to the Cycle Breakup algorithm to achieve a balance between performance and quality of the found break up set. This might result in small deviations from the previously found break up sets. Sorry for any inconvenience this might cause. Bug Fixes --------- - Sonargraph - Fixed a regression error that would not allow multiple elements to be selected and open an Exploration view based on all those elements (only 1 would be used). - The TypeScript preference dialog now works properly if NodeJS can't be found. Build 14.0.0.854_2024-07-23 =========================== Improvements ------------ - Sonargraph - Now it is possible to select a NodeJS executable in the TypeScript preferences. Bug Fixes --------- - Sonargraph - Ignoring violations or deleting violating dependencies in an Exploration view based on an Architecture (DSL) file did affect violations produced by all checked Architecture (DSL) files and not only the ones produced by the file the Exploration view was based on. This has been fixed. - Fixed another error that would prevent the Cycle Breakup algorithm from finding the minimal breakup dependency set. - Using 'File->Save As...' to a different directory made source control metrics unavailable. Now it works as expected. Build 14.0.0.853_2024-07-17 =========================== Improvements ------------ - Sonargraph - The Exploration/Architectural view now uses the cycle breakup set to order the nodes in cycles. - Highlighting edges in the Cycle view triggered by the edge selection in the corresponding Cycle Breakup view no works faster. Bug Fixes --------- - Sonargraph - Fixed another error that would prevent the Cycle Breakup algorithm from finding the minimal breakup dependency set. - C comments in tsconfig.json files will not create problems any longer. Build 14.0.0.852_2024-07-09 =========================== Bug Fixes --------- - Sonargraph - Fixed several issues in the Typescript parser and model builder. Build 14.0.0.851_2024-07-08 =========================== Bug Fixes --------- - Sonargraph - Fixed some issues with interpretation and parsing of the tsconfig.json file for Typescript systems. - Fixed a 'NullPointerException' when parsing a Typescript system. - Fixed an error that would prevent the Cycle Breakup algorithm from finding the minimal breakup dependency set. - The bin size in the Histogram was not calculated correctly when a lower threshold was defined. Build 14.0.0.850_2024-07-04 =========================== New Features ------------ - Sonargraph - Typescript support added. Typescript based systems can be created based on tsconfig.json files. NOTE: You need a working Node.js installation to be able to parse Typescript source code. Improvements ------------ - Sonargraph - The product information in the about dialog can be copied. Bug Fixes --------- - Sonargraph - Selecting a dependency in the Cycle Breakup view now also updates the Parser Dependencies views if connected to the corresponding Cycle view (since the dependency is also revealed in the corresponding Cycle view). - When a Cycle view is updated due to a modification the connected Cycle Breakup view is reset. This avoids showing incorrect (stale) information. Build 13.5.2.849_2024-06-05 =========================== Bug Fixes --------- - Sonargraph - Fixed Java syntax error caused by record compact constructor without modifiers. - Fixed Java syntax error that occurred when a file contained several multi-line string literals. - Fixed assertion error (Unable to find issue manager for element) when opening a system while another system was already opened. Build 13.5.2.848_2024-05-28 =========================== Bug Fixes --------- - Sonargraph - Fixed a regression error regarding Java 21 parsing. Build 13.5.2.847_2024-05-24 =========================== Bug Fixes --------- - Sonargraph - Fixed a Java 21 parsing problem. Build 13.5.2.846_2024-05-15 =========================== Bug Fixes --------- - Sonargraph - Fixed an assertion error (Parameter 'selection' of method 'canExecute' must not be null) when opening Sonargraph. Build 13.5.2.845_2024-05-14 =========================== Bug Fixes --------- - Sonargraph - Fixed an assertion error (Parameter 'propertiesOfElement' of method 'addProperties' must not be null) when retrieving the properties of an element shown in the Properties view. Build 13.5.2.844_2024-05-01 =========================== Bug Fixes --------- - Sonargraph - Fixed an assertion error caused by Python input with Syntax errors. - Fixed calculation of 'max indentation depth' metric to not increase values upon encountering 'else if' statements. Build 13.5.2.843_2024-04-19 =========================== New Features ------------ - Sonargraph - Now it is possible to open an Exploration view on a selected cycle group in a checked Architecture (DSL) file context. NOTE: - Module/component/directory cycle groups can only be opened in a 'physical' Architecture (DSL) file context. - Module scope namespace/package cycle groups can only be opened in a 'logical' Architecture (DSL) file context. - System scope namespace/package cycle groups cannot be opened in an Architecture (DSL) file context, since the architecture model is module based. - When selecting components or logical top-level programming elements in module scope now it is possible to jump into a specific Architecture (DSL) file in the Architecture view. Bug Fixes --------- - Sonargraph - Fixed assertion error (Unable to find properties manager) when closing a system. Build 13.5.1.842_2024-04-11 =========================== Bug Fixes --------- - Sonargraph - Due to an oversight it was possible to execute 'Show in Temporal Coupling View' on external source files leading to errors or useless results. This has now been fixed. - The metrics for number of statements and variants of cyclomatic complexity were not always correctly calculated for C,C++. This has now been fixed. - The bodies of C++ template functions and methods were not analyzed. We updated the built-in compiler definitions to fix this. If you have a self made compiler definition please add '--no_defer_parse_function_templates' to the C++ specific options. - Eclipse Plugin - The plugin did not run on newer Eclipse installations (>= 2023-09). This has been fixed. Build 13.5.0.841_2024-03-18 =========================== Improvements: ------------- - Sonargraph - C# source files without relevant programming elements inside are now ignored. Bug Fixes --------- - Sonargraph - In some cases undo/redo during Architectural view modelling did not work. - Fixed an error that led to Artifacts not being shown when not containing any programming elements in the Architectural view. Build 13.5.0.840_2024-03-14 =========================== Bug Fixes --------- - Sonargraph - Fixed a rare 'NullPointerException' in the C# module selection wizard page. - Fixed 2 errors in recursive element (namespace/directory) handling in the Exploration/Architectural view leading to empty recursive elements causing an assertion error (Not expandable) when applying a view state. - Fixed an error in the Exploration/Architectural view leading to recognize an assignment instead of a refactoring. Build 13.5.0.839_2024-03-07 =========================== Bug Fixes --------- - Sonargraph - Fixed another scenario leading to an assertion error: ('weight' must be greater than 0) when refreshing a system with an opened Cycle view. Build 13.5.0.838_2024-03-06 =========================== Improvements ------------ - Sonargraph - Upgraded Python support to version 3.12.2. - Improved the Excel export for dependencies with more detailed and readable data. Bug Fixes --------- - Sonargraph - Fixed at least 1 scenario leading to an assertion error: ('weight' must be greater than 0) when refreshing a system with an opened Cycle view. Build 13.4.0.837_2024-02-23 =========================== Improvements ------------ - Sonargraph - Improved speed of architecture artifact assignment and architecture check. Bug Fixes --------- - Sonargraph - Creating an Exploration view during the Architecture check analyzer execution would cause Sonargraph to freeze due to a deadlock. - Fixed an error that would cause a Sonargraph plugin to be falsely enabled for a newly opened system after previously having closed a system with an enabled Sonargraph plugin. Build 13.4.0.836_2024-02-09 =========================== New Features ------------ - Sonargraph - In the architecture DSL you can now mark include and exclude patterns as 'optional'. That would suppress a warning if the pattern has no matches. - The Cycle view is no longer closed when modifying the system (e.g. apply a refactoring) if possible. The Cycle view awaits the corresponding cycle analyzer and updates itself. This makes it possible to interactively work on a cyclic structure with refactorings and see how it changes. See new tutorial video: https://www.hello2morrow.com/videos/cycleview Improvements ------------ - Sonargraph - Using 'strong include' in architecture files imported via 'apply' is now marked as an error. As soon as a file is applied more than once only one of the copied artifact could hold the included components, which is obviously a problem. - The Java Build Unit(s) import wizard now uses always the full path underneath the chosen start directory as module candidate name. If you have the following layout on your disk: /Workspace /Client /Web (project) /Desktop (project) /Server /Core (project) /Common (project) /Services /Customer (project) /Finance (project) If you choose 'Workspace' as start directory the module names will be as follows: - Client.Web - Client.Desktop - Server.Core - Server.Common - Server.Services.Customer - Server.Services.Finance Bug Fixes --------- - Sonargraph - Fixed 'NullPointerException' in Visual Studio configuration dialog (C,C++). - Fixed redraw error in the Architecture view. Build 13.3.1.835_2024-01-25 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error when resizing the Treemap View. - SonargraphBuild (Gradle plugin) - Fixed Gradle plugin parameter 'compilerDefinitionPath' so that it also supports built-in compiler definitions. - The Gradle plugin now properly works with Gradle 8.5. Build 13.3.0.833_2024-01-19 =========================== Bug Fixes --------- - Sonargraph - When importing a C# system via solution file the 'Select All' button for module selection would produce an assertion error if the solution supports several base frameworks. This is now fixed. - Fixed a 'NullPointerException' in the Python analyzer. - The Roslyn runtime for C# has been upgraded to .Net 8. YOU WILL HAVE TO INSTALL A .NET 8 RUNTIME ON YOUR COMPUTER TO USE SONARGRAPH FOR C#. Build 13.3.0.832_2023-12-11 =========================== New features ------------ - Sonargraph - Updated Roslyn to the newest version. That adds support for C# 12. Bug Fixes --------- - Sonargraph - A git commit without an author would lead to an assertion error. That has been fixed. - The Roslyn daemon would not start once a .Net 8 SDK is installed. Please note that you must have .Net 7 installed. Build 13.3.0.831_2023-12-04 =========================== Bug Fixes --------- - Sonargraph - Fixed regression error causing namespace/directory rename refactorings not to work any longer. Build 13.3.0.830_2023-11-29 =========================== New Features ------------ - Sonargraph - Added 3 additional focus modes to the Exploration/Architectural view: - 'In Transitively (programming element based)' - 'Out Transitively (programming element based)' - 'In/Out Transitively (programming element based)' The already existing non programming element based variants of those operations treat leaf nodes (components or top-level logical programming elements) as indivisible units. Using the new variants allow the user to create/modify a focus showing only interconnected programming elements (types, fields, methods, routines) by their compile time dependencies. Build 13.3.0.829_2023-11-28 =========================== Bug Fixes --------- - Sonargraph - Now annotation dependencies will also be added to Kotlin files. Build 13.3.0.828_2023-11-27 =========================== Bug Fixes --------- - Sonargraph - Fixed an error in the focus transitively operation of the Exploration/Architectural view leading to dependencies shown that were not connected. - Attempted to fix spurious buffer overflow error when saving a snapshot. - Fixed 'IllegalArgumentException' (HistogramBin(): startBoundary > endBoundary) when generating a histogram with a defined lower threshold. Build 13.3.0.827_2023-11-21 =========================== Bug Fixes --------- - Sonargraph - When using a license without the 'Plugins' feature the C,C++ analysis would fail with an IOException (Unable to resolve plug-in "com.hello2morrow.sonargraph.plugin.api.cplusplus"). - When opening a system from a snapshot the 'refresh' and 'clear' actions shown on top of the Software System view were sometimes not showing the correct enabled/disabled state. Build 13.3.0.826_2023-11-03 =========================== Bug Fixes --------- - Sonargraph - Fixed 'ConcurrentModificationException' when parsing Kotlin source code. Build 13.3.0.825_2023-11-01 =========================== Bug Fixes --------- - Sonargraph - Now the C# Roslyn daemon should also work on M1/M2 Macs. Build 13.3.0.824_2023-10-31 =========================== Improvements ------------ - Sonargraph - Improved C# diagnostics when Roslyn daemon fails to start. Build 13.3.0.823_2023-10-24 =========================== Bug Fixes --------- - Sonargraph - In the DSL the JavaHasAnnotationValue retriever did not work properly for String annotation values due to a regression bug. This is now fixed. New Features ------------ - Sonargraph - Added analysis support up to Java 21. - Added new 'Temporal Coupling' view. Temporal coupling occurs when several source files are committed together. You can display the view either via Window->Show View or via context menu 'Show in Temporal Coupling View' on a source file. It will display the temporal coupling of the selected source file, i.e. how often the selected file was committed with other files. Data only goes back 5 years, so if the view does not show any data they have not been any commits in the last 5 years or the file was always committed just by itself. NOTE: Only works if you use Git. Build 13.2.0.821_2023-10-20 =========================== Improvements ------------ - Sonargraph - Improved diagnostics for missing dependency targets in C#. Bug Fixes --------- - Sonargraph - Expanding the external node in the dependencies view for a C# project caused an assertion error. That is now fixed. - Fixed an assertion error caused by a missing cmake json command file. Build 13.2.0.819_2023-10-07 =========================== New Features ------------ - Sonargraph - The Properties view will show the 5 strongest temporal coupling links if a source file is selected. Temporal coupling occurs when sources are committed in the same commit. Each occurrence increases temporal coupling strength. So if two files have strong temporal coupling they have some semantic connection, even if they do not have any other dependencies among them. Bug Fixes --------- - Sonargraph - Fixed assertion error (Unexpected class in method 'setBaseline') when using an Explorer license and expanding the 'Baselines' node in the Files view. - Fixed freeze of the Sonargraph user interface when double clicking a workspace profile in the Files view. Build 13.1.0.818_2023-10-04 =========================== Bug Fixes --------- - Sonargraph - Kotlin functions were not shown in the logical Exploration/Architectural views. Important Changes ----------------- - Sonargraph-Explorer - We removed the Exploration and Cycle view from the free Explorer license. They made the Explorer license almost as useful as the Architect license leading to paying customers downgrading to the free version. Since we have to pay our developers and other bills that was not commercially sustainable. Sonargraph-Explorer still supports limited visualizations via the Graph view and is now mostly a tool for metric gathering and cycle group detection. Build 13.1.0.817_2023-10-02 =========================== Bug Fixes --------- - Sonargraph - Fixed 'ConcurrentModificationException' when showing the focus info of an Exploration/Architectural view in the Properties view when analyzers are still running. - In C# the refresh after changed source files did not work properly due to limitations in the Roslyn API. This has now been fixed. Build 13.0.3.816_2023-09-20 =========================== New Features ------------ - SonargraphBuild - New build parameter 'createAndUploadSnapshot' (default 'true') for the integration with Sonargraph-Enterprise. If set to 'false' no snapshot will be created and uploaded. Bug Fixes --------- - Sonargraph - Fixed 'StackOverflowError' in Architectural view when performing an 'Undo' of a move artifacts operation. - Fixed at least 1 scenario leading to a 'ConcurrentModificationException' in the 'Issue Density Analyzer'. - Fixed at least 1 scenario leading to a 'ConcurrentModificationException' in the 'Issue Ranking Analyzer'. Build 13.0.2.815_2023-09-12 =========================== New Features ------------ - Sonargraph - Extended version control metrics to cover periods of 2 years and 5 years. - Added new metric 'Days since last commit'. (9999 means more than 5 years) Improvements ------------ - Sonargraph - Increased pixel tolerance for the dependency selection in the Exploration/Architectural view. - Added 'Select Dependencies Of Nodes' to the context menu of the Exploration/Architectural view. This way all dependencies of one or more nodes can be selected at once and will show their dependency counts. - The text filter widget is now also accessible via the view options menu (three dots) in the Parser Dependencies (In/Out) views and the Issues view. - C# dependencies for type parameters and type parameter constraint clauses are now detected. Bug Fixes --------- - Sonargraph - Fixed assertion error (Unable to find issue provider for element 'com.hello2morrow.sonargraph.core.model.architecture.ArchitectureFile') when deleting an Architecture (DSL) file with an opened Exploration view based on it. Build 13.0.1.813_2023-08-30 =========================== Improvements ------------ - Sonargraph - When the C# parser daemon fails to start we are now trying two more different approaches. - The Roslyn daemon will now avoid using preview versions of the .Net framework. Build 13.0.1.812_2023-08-25 =========================== Bug Fixes --------- - Sonargraph - Fixed 'NullPointerException' when processing dependency info in the Exploration view based on an Architecture (DSL) file containing deprecated connections. Build 13.0.1.811_2023-08-24 =========================== Bug Fixes --------- - Sonargraph - External physical architecture filter names were not computed properly in C#. This is now fixed. - Fixed 'IndexOutOfBoundsException' when moving an artifact into another artifact (changing the parent/child relationship) in the Architectural view with at least 1 allowed dependency defined. - Architecture DSL: CSharpImplementsInterface and CSharpTypeOf would not properly work with indirectly inherited interfaces. This has been fixed. Build 13.0.1.810_2023-08-23 =========================== Bug Fixes --------- - Sonargraph - Fixed 'NullPointerException' in C# language provider caused by a failure to start the C# daemon. - typeof expressions in C# now properly generate dependencies to the referenced type. - CSharpImplementsInterface and other retrievers did not work properly after the upgrade to the Roslyn daemon. This has now been fixed. Build 13.0.1.809_2023-08-22 =========================== Improvements ------------ - Sonargraph - C,C++: improved logging in case a parser daemon fails to start. - C#: Upgraded Roslyn libraries to the newest version. Bug Fixes --------- - Sonargraph - C,C++: now defining Visual Studio installation locations should also work on a French locale. - C#: Fixed an error that would invalidate a valid snapshot and therefore force the need for a re-parse because the order of modules changed. - C#: Fixed 'NullPointerException' that would occur if no proper .Net installation could be found. Build 13.0.1.807_2023-08-20 =========================== Bug Fixes --------- - Sonargraph - Fixed a bug that would not allow to define a Visual Studio installation location on a machine with a French Locale. Build 13.0.1.807_2023-08-18 =========================== Improvements ------------ - Sonargraph - Improved diagnostics when adding Visual Studio installation locations. Bug Fixes --------- - Eclipse Plugin - Fixed assertion error (No Sonargraph builder registered for project) when opening a system containing a closed Eclipse project. Build 13.0.1.805_2023-08-15 =========================== Improvements ------------ - Sonargraph - Added support for Apple's M1 and M2 processors for C# analysis. Build 13.0.1.804_2023-08-09 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error (Unexpected class in method 'createImage') when editing a treemap definition changing from 2D to 3D and already showing the 2D treemap. - Fixed 'NullPointerException' that occurs when Sonargraph cannot locate the 'dotnet' command (C# only). - Fixed 'NullPointerException' caused by a failure to locate .Net SDK's using the 'dotnet' command (C# only). - Fixed 'NullPointerException' in the C# module selection page used when importing solutions. - Fixed a 'ConcurrentModificationException' that occurred when there where too many diagnostic messages from the C# parser. Build 13.0.1.803_2023-07-27 =========================== Improvements ------------ - Sonargraph - Improved diagnostics and logging for C# analyzer. - Removed command to execute preprocessor for C,C++ (obsolete, not needed anymore). Bug Fixes --------- - Sonargraph - Fixed assertion error (Parameter 'part' of method 'updatePartName' must not be null) on system open. Build 13.0.1.802_2023-07-19 =========================== Improvements ------------ - Sonargraph - If elements (nodes/dependencies) in the Exploration view have issues (e.g. architecture violations, threshold violations, ...), these can now be either marked as 'Task' (i.e. to be fixed) or 'Ignored' by creating corresponding resolutions using the context menu. Build 13.0.1.801_2023-07-13 =========================== New Features ------------ - Sonargraph - Exploration/Architectural view now offers a presentation mode affecting recursive elements like namespaces and (non-root) directories called 'NONE'. Using this mode makes it possible to inspect component or top-level programming element structures without being affected by their grouping. That mode is now also used when visualizing a component cycle in the Exploration view which is the correct visualization because Sonargraph analyzes component cycles without taking into account their grouping by namespaces or (non-root) directories. Improvements ------------ - Sonargraph - Improved error handling for missing cmake json command files (C,C++). - Updated Kotlin grammar to newest version. - Updated the C,C++ parser to the newest version. - Simplified issue access in Script API for architecture models and artifacts. Retrieving architecture violations/deprecations can now be done this way: IArchitectureVisitor visitor = coreAccess.createArchitectureVisitor() visitor.onArchitectureModel { IArchitectureModelAccess nextModel -> println(nextModel) //Print model name (i.e. checked top-level architecture file name) for(IIssueAccess nextIssue : nextModel.getIssues(null, Arrays.asList("ArchitectureViolation", "ArchitectureDeprecation"), null, null, true, true)) { println(nextIssue) //Print issue details } } coreAccess.visitActiveArchitectureModels(visitor); NOTE: See JavaDoc for details of access methods. Bug Fixes --------- - Sonargraph - Fixed a problem where a Java source method could not be matched to the byte code version. Build 13.0.0.800_2023-07-06 =========================== Improvements ------------ - Sonargraph - For C# we now enforce that .Net 7 or higher is installed when analyzing a C# project. Bug Fixes --------- - Sonargraph - Fixed a regression where parsing a newly created C++ project based on cmake command files would lead to an assertion. - Fixed an assertion error caused by duplicate module/assembly dependencies in a C# solution. Build 13.0.0.798_2023-06-30 =========================== Improvements ------------ - Sonargraph - For C,C++ systems based on cmake compile command the source files and options are not stored in the Sonargraph system file anymore. Instead we read the command file with each refresh. That improves accuracy because added or removed compilation units will be detected immediately. - IntelliJ Plugin - Replaced some deprecated API's. Bug Fixes --------- - Sonargraph - If opening a C# solution created a warning this would lead to an error in Sonargraph, which made it impossible to analyze that solution. This is now fixed. - Fixed an assertion error that occurred when opening a C# software system that was created with an older version of Sonargraph. Build 13.0.0.797_2023-06-20 =========================== Bug Fixes --------- - Sonargraph - Fixed an assertion error when trying to add C# modules to an empty system. - Fixed an assertion error that occurred when loading a C# system that was created with a previous version of Sonargraph. - Fixed an assertion error caused by preview versions returned by asking dotnet for installed versions. - Updated ccspy for C,C++ to fix a bug related to absolute paths. Build 12.6.0.796_2023-06-15 =========================== New Features ------------ - Sonargraph - The C# analyzer is now based on the Roslyn C# parser. That will greatly simplify the configuration of C# projects and also will make it much easier for us to keep up with language changes. You just need to import a solution and the rest is done by your local .Net installation. You must have .Net 7.0 or higher installed so that the Roslyn parser can be executed. The documentation has been updated accordingly. NOTE: If you already have setup C# projects with Sonargraph those old projects might not be compatible with the old version. In that case you will have to recreate the project by importing from a C# solution file. You can still copy the content of the old Sonargraph folder into the new project folder. Just do not copy or overwrite the file system.sonargraph at the root of the folder. Please make sure to build your solution locally before you analyze it with Sonargraph. After the build you can check for problems by looking at the C# parser log view. You can bring it up via Windows/Show View. - The script API now allows to access issues. 'INamedElementAccess' and 'IDependencyAccess' now offer methods to retrieve instances of 'IIssueAccess'. NOTE: If you want to process issue information make sure that the corresponding script is the last to be executed (i.e. put it at the end of the script runner list). This way issues added by other scripts can be accessed too. Bug Fixes --------- - Sonargraph - Fixed 'NullPointerException' in the C,C++ compiler options dialog. Build 12.6.0.795_2023-05-25 =========================== Improvements ------------ - Sonargraph - Improved logging for Python parsing. - Script auto completion now shows the top-level functions and built-in variables when the script is empty. - When closing the script auto completion viewer by clicking outside the viewer no proposal is added. - Include more packages in Groovy script API JavaDoc generation. - When typing very fast in the Architecture (DSL) file or Groovy script editor keystrokes were lost. This has been fixed. Bug Fixes --------- - Sonargraph - Fixed error in modifiable model deletion leading to assertion error (Fully qualified name: '[model].vm' is not contained in 'items'). Compatibility ------------- - Sonargraph - Now the installed (default) browser is used to show the user documentation. - To create/update a Maven build based system definition now the Sonargraph Build Maven plugin has to be used. - To create/update an IntelliJ based system definition now either use the Build Unit(s) importer or the Sonargraph Build based Maven or Gradle plugins. Build 12.6.0.794_2023-05-09 =========================== Bug Fixes --------- - Sonargraph - Fixed Java parse error when using 'someObject instanceof final Integer integerObject'. Build 12.6.0.793_2023-05-02 =========================== Bug Fixes --------- - Sonargraph - Retrieving dependencies of artifacts obtained from the 'IArchitectureVisitor' in the script API did not work. This has been corrected. Build 12.6.0.792_2023-04-20 =========================== Bug Fixes --------- - Sonargraph - Selecting a node in the Treemap Info view of a 2D treemap only rendered the selected node (the other nodes were no longer visible). Build 12.6.0.791_2023-04-17 =========================== Bug Fixes --------- - Sonargraph - Fixed 'IndexOutOfBoundsException' when moving artifacts in the Architectural view. Build 12.6.0.790_2023-04-11 =========================== Bug Fixes --------- - Sonargraph - Fixed 'NullPointerException' in Source view when accessing the selected element leading to an 'ExecutionException' (Error executing 'parserDependenciesView.pin'). - Fixed 'IllegalArgumentException' (URI path begins with multiple slashes) when entering an invalid host name (with multiple slashes) in the License Server configuration dialog. - Fixed assertion error ('nextView' of method 'selectNodes' must not be null) in TreeMap view. - Fixed an assertion error in the C,C++ refresh cycle. - Fixed a problem that would lead to exponentially increasing parse times for large project (C,C++). Build 12.6.0.789_2023-03-30 =========================== Improvements ------------ -Sonargraph - The C,C++ parser now marks all single header files that are not located under a version control repository root as external. This only works with Git right now. If you are not using Git the behavior is the same as before. - Scripting API: the CppVariableAccess and CppFieldAccess classes now have two more methods: isConst() and isStatic(). Make sure to use 'CppAccess' instead of 'CoreAccess' to make language specific features available. - Minimized import restrictions for Groovy scripting. - When generating a treemap now it is possible to select a module subset. Bug Fixes --------- - Sonargraph - Fixed assertion error (Not supported) when creating artifacts from header or source files in C,C++ in the Architectural view. - Fixed assertion error when displaying a Histogram. - Fixed an error in the C# solution file importer. - Treemaps can now be successfully rendered for bigger systems (100000+ components). Build 12.5.3.788_2023-02-24 =========================== Improvements ------------ - Sonargraph - The C,C++ importers can now interpret -iquote compiler options. Bug Fixes --------- - Sonargraph - Fixed a potential 'NullPointerException' in the CMake-JSON importer. Build 12.5.3.787_2023-02-23 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error (No system available) requesting a context menu after a failed Python parse. - Fixed stack overflow error in Python parser. - Fixed assertion error (Number of steps already defined) when trying to refresh a C,C++ system. Build 12.5.3.786_2023-02-15 =========================== Improvements ------------ - Sonargraph - The license server configuration now allows https connections. - SonargraphBuild - The build parameters 'licenseServerHost' and 'licenseServerPort' have been replaced by 'licenseServerUrl'. The old parameters still work. But by using a URL instead of host name and port you can now enforce the use of https when communicating with the license server. Bug Fixes --------- - Sonargraph - Fixed potential 'NullPointerException' applying the upward dependency minimization after moving elements in an Exploration/Architectural view. - In the C,C++ scripting API the method 'RoutineAccess.getReturnType()' produced an 'IndexOutOfBoundsException'. This is now fixed. - Due to inherent complexities we disabled the C,C++ delta refresh. Now as soon as at least one input file has changed, everything will be parsed. That should solve a lot of very hard to reproduce problems that only occurred during the delta refresh. Build 12.5.2.784_2023-02-09 =========================== Improvements ------------ - Sonargraph - Added support for top-level statements in C# (as replacement for 'Main'). - Added support for constants in C# interfaces. Bug Fixes --------- - Sonargraph - Fixed problems in C# parser that would lead to syntax errors in correct code. - On Linux not all metric values were shown in the Metrics view. Build 12.5.2.783_2023-02-07 =========================== Improvements ------------ - Sonargraph - 'Export To Excel' only exports the information in the corresponding views (i.e. the user might have applied some kind of filter and therefore the information in the corresponding view might only be a subset of all available information). When no filtering is applied all available information is exported. The only view offering 'Export All To Excel' is the Metrics view, since that view does not offer the possibility to display all metrics. Bug Fixes --------- - Sonargraph - Fixed assertion error (Parameter 'presentationName' of method 'Element' must not be empty) for metric category of plugin metrics. - Fixed assertion error (Unable to find issue provider for element) when deleting an Architecture (DSL) file. Build 12.5.2.782_2023-02-03 =========================== Bug Fixes --------- - Sonargraph - Fixed an assertion error in the C,C++ delta refresh. - Fixed a Java parsing problem caused by annotations in certain generic parameter lists. - When typing fast in the Architecture File view some characters were lost. Build 12.5.2.781_2023-02-02 =========================== Bug Fixes --------- - Sonargraph - Fixed an assertion error caused by C++ enum declarations. Build 12.5.2.780_2023-02-01 =========================== New Features ------------ - Sonargraph - The architecture check analyzer now identifies include and exclude patterns that do not match any assignables (components or top-level logical programming elements). Those patterns will be marked with a warning issue. You can delete them without changing the current assignment to architecture elements. This will help to produce more concise architecture models. Improvements ------------ - Sonargraph - If you filter the issues view using Ctrl-Shift-F a new option will show up in the context menu that allows you to export only the filtered data. - The search filter (Ctrl-Shift-F) for tables now also supports regular expressions. Make sure to check the regex check-box to activate regex matching. Bug Fixes --------- - Sonargraph - Using enum declarations in C,C++ could sometimes lead to a case where the wrong declaration was selected as a dependency target. This has now been fixed. - Fixed 'NullPointerException' requesting a context menu in the Treemap view on Linux. - When selecting a leaf node in the Treemap view the Treemap Info view did no longer show all available leaf nodes but only a subset. This has been corrected. - Fixed 'SWTException' (Widget is disposed) when testing the connectivity to the license server. - Fixed an assertion error in the C,C++ model. Compatibility ------------- - Sonargraph - On MacOS Ventura opening the integrated help crashed the application. With the latest MacOS Ventura 13.2 update the integrated help works again. Build 12.5.2.779_2023-01-24 =========================== New Features ------------ - Sonargraph - The script API now allows access to checked architecture DSL models. We delivered an example script 'ArchitectureModelAccess' with the core default quality model, which you can import via into your project via 'File / Import Quality Model'. The API can also be found in the Java doc of the script API. Improvements ------------ - Sonargraph - Permit dependencies in Java (coming from sealed classes or interfaces) are excluded from detecting cycle groups. The reason is, that this language feature will always lead to cycles that cannot be broken by the user without giving up the use of that feature. This change is also incorporated into a new version of the SuperTypeUseSybtype script. The permit dependencies are still visible in all dependency viewers. So you might see a cycle in the exploration view that is not reported as a cycle group. We decided to keep permit dependencies relevant for the architecture check. This encourages to keep sealed type hierarchies within the same architectural artifact. Bug Fixes --------- - Sonargraph - Compact constructors for Java records lead to a parser error. This has now been fixed. Build 12.5.1.777_2023-01-12 =========================== New Features ------------ - Sonargraph - Architecture deprecations (i.e. parser dependencies contained in deprecated connections defined via a checked architecture (DSL) file) are now shown in the Architecture view and their numbers are aggregated and shown as metrics in the Exploration Metrics view. INFO: Deprecated dependencies are shown in color blue. Aggregated dependencies that contain either ignored violations or ignored deprecations are shown with a dash-dot line pattern. INFO: Mixed aggregated dependencies are still shown in color yellow and may now contain non-violating, violating and deprecated parser dependencies. Bug Fixes --------- - CSV Issues Plugin - Fixed potential 'ConcurrentModificationException'. - Added error code to message. Build 12.5.1.777_2023-01-12 =========================== New Features ------------ - Sonargraph - Added the JXL Excel library to the Script API. Now you can write Excel sheets from Groovy scripts. The package 'jxl' is imported by default. We also added 'java.io' as a default import. Other classes from 'jxl' should be imported explicitly. Improvements ------------ - Sonargraph - The Java Wizard 'System/Module(s) Based On Build Unit(s)' now also detects build units if only either class or source root directories are detected. Bug Fixes --------- - Sonargraph - Fixed an assertion error in the C,C++ refresh (Invalid element encountered, model is compromised). - Eclipse Plugin - Fixed installation issue (Missing requirement 'org.slf4j.api') when using Eclipse 2022-12. - CSV Issues Plugin - Fixed a potential StackOverflowError. Build 12.5.1.776_2022-12-23 =========================== New Features ------------ - Sonargraph - New plugin to import issues from other tools (issues csv plugin). The plugin can read a csv like file with semicolons as separators. Each line has five fields: line number, column, absolute path of affected source file, error code and error message. No quotes needed. The error code is an integer that can be mapped to severity in the plugin configuration. To activate a plugin open a system and then look at the plugin section after selecting System/Configure from the main menu. Bug Fixes --------- - Sonargraph - Fixed an assertion error caused by unexpected output from MS-Build (C#). Build 12.5.0.775_2022-12-16 =========================== New Features ------------ - IntelliJ Plugin - Implemented the remote selection service. Bug Fixes --------- - Sonargraph - Due to the update of a lot of internal libraries the Sonargraph plugin infrastructure stopped working. The plugin infrastructure has been completely reworked. The plugins are now available in all clients (i.e. it is not necessary to install them manually). The plugins are only executed if explicitly enabled by the user. Build 12.4.4.774_2022-12-09 =========================== New Features ------------ - Sonargraph - In the architecture DSL you can now mark dependencies as 'deprecated'. All parser dependencies in a deprecated connection will get deprecation warning markers. There are also new metrics to count deprecated dependencies and the dashboard has been updated accordingly. To mark a connection as deprecated simply add the keyword 'deprecated' at the end of a 'connect to' statement. Bug Fixes --------- - Sonargraph - Fixed 'NoClassDefFoundError' (org/apache/commons/codec/binary/Base64) when using the 'Manage License...' dialog to request license details trough a proxy. - SonargraphBuild - The Gradle plugin now added proper input and output declarations for the Gradle build cache. Build 12.4.3.773_2022-12-02 =========================== New Features ------------ - Sonargraph - The architecture DSL supports a new connect statement: connect to class SomeArtifactClass using SomeConnectionScheme This allows to connect an artifact to all other artifacts that have the given class. Note that this will disable the cycle check for architecture artifacts. Bug Fixes --------- - Sonargraph - Fixed assertion error (Unexpected element in logical group of 1 element) in C,C++. - Fixed a false syntax error for C# on string constants containing "\u0022". - Fixed potentially wrong dependencies caused by using certain Lombok annotations. - When attaching a snapshot to an opened system refactorings were not applied. This has been fixed. - Fixed assertion error (Unable to find issue provider for element) when modifying an architecture file (DSL). Build 12.4.3.771_2022-11-25 =========================== Improvements ------------ - Sonargraph Build - Now all available cores are used for the analyzer phase. Before we were reserving some cores to keep the machine responsive. This did not work well when running the build in a docker container and is not really needed on a build machine. - New build parameter 'analyzerExecutionLevel', values are FULL (default), ADVANCED, BASIC or MINIMAL. For large projects that take too much time to analyze you can speed up build times by reducing the analyzer execution level in exchange for fewer metrics. - Sonargraph - Improved speed of incoming/outgoing dependency metrics analyzers. This should be very noticeable for larger systems. Bug Fixes --------- - Sonargraph - Fixed assertion error (Element not visible) when saving modifications to an Architecture file (DSL) with opened Exploration and Exploration Metrics view. - Fixed 'ConcurrentModificationException' when updating the Exploration Metrics view. - The calculation of the metrics ACD, Propagation Cost and CCD was slightly off when using an issue filter in your workspace. Now all components excluded by the issue filter will not contribute values for those metrics, which might result in changes to those metrics after updating Sonargraph. - Fixed assertion error (Parameter 'presentationMode' of method 'getParent' must not be null) when using 'Link Master Views' on logical model element. Build 12.4.2.770_2022-11-15 =========================== Bug Fixes --------- - Sonargraph - Fixed 'SWTException' (Widget is disposed) in Metrics view. - Sonargraph Build - When matching modules based on contained source root directories case is now ignored on Windows and Mac. Build 12.4.1.769_2022-11-10 =========================== New Features ------------ - Sonargraph Build - Added new Maven goal 'create-or-update-system' that will create a Sonargraph system out of a Maven project. See the Sonargraph Build documentation for details. - Added new Gradle task 'sonargraphCreateOrUpdateSystem' that will create a Sonargraph system out of a Gradle project. See the Sonargraph Build documentation for details. - Added new parameters 'numberOfDaemons' and 'daemonStackSize' to the report creation tasks for all of our different clients. This is only relevant for C,C++ parsing. Bug Fixes --------- - Sonargraph - Fixed assertion error ('previous' of method 'addDescriptor' must be null) when refreshing a system with an opened Exploration/Architectural view. - Sonargraph Build - Fixed lookup of logback.xml when running Sonargraph Build on Windows. - Added more diagnostic info on startup. Build 12.4.0.768_2022-11-01 =========================== Compatibility ------------- - A lot of underlying libraries have been updated to be able to run Sonargraph (including Sonargraph Build and the other integrations like the Eclipse plugin and so forth) with JDKs higher than version 11. We have tested Sonargraph with JDK 17. NOTE: If you have any problem auto-updating Sonargraph Standalone, consider a clean re-install (i.e. deinstall of previous version, download newest version from https://www.hello2morrow.com/products/downloads and install). Build 12.3.0.767_2022-10-29 =========================== New Features ------------ - Sonargraph - Number of parser daemons and parser daemon stack size can now be configured via C,C++ preferences. - Added support for Git modules. Improvements ------------ - Sonargraph - The model for external headers has been optimized for C,C++. Please re-parse your C,C++ projects. - Diagnostics in case of a parser crash have been improved for C,C++. - Exploration/Architectural view zoom in/out now also available per PRIMARY_MODIFIER_KEY + mouse wheel (PRIMARY_MODIFIER_KEY = CTRL on Windows/Linux and CMD on Mac). Bug Fixes --------- - Sonargraph - Fixed a bug associated with the Turkish locale (conversion to upper case works in unexpected ways there). - Fixed 'SWTException' (Widget is disposed) when using the Java Wizard 'System/Module(s) Based On Build Unit(s)'. Build 12.3.0.765_2022-10-19 =========================== Bug Fixes --------- - Sonargraph - Header files that are reached via symbolic links are now resolved correctly in C,C++. Build 12.3.0.764_2022-10-17 =========================== Bug Fixes --------- - Sonargraph - Fixed a problem in the 3rd party C,C++ parser that caused a memory overrun if certain errors were detected by the parser. Build 12.3.0.763_2022-10-13 =========================== Bug Fixes --------- - Sonargraph - Fixed a problem with stale analyzer results when opening a snapshot that has been opened in edit-mode before. - Fixed a problem that would fail a C,C++ parser run due to a header file not present on disk. Build 12.3.0.761_2022-10-10 =========================== Bug Fixes --------- - Sonargraph - Fixed an error in the view option handling in the Duplicate Code Blocks and Cycle Groups view section in the System Diff view that would prevent the 'Unmodified' elements to be shown. - When modifying the name of a Java source file only by changing upper/lower case and performing a refresh led to duplicate files on case insensitive platforms. This has been fixed. - When stopping the remote selection server the configuration modification is persisted and used the next time Sonargraph is started. Build 12.3.0.760_2022-10-03 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error ('descriptor' of method 'getDescriptor' must not be empty) when refreshing a software system with an opened Exploration view. Build 12.3.0.759_2022-09-30 =========================== Bug Fixes --------- - Sonargraph - Fixed problems in cleanup after a failed C,C++ parser run. Build 12.2.0.758_2022-09-23 =========================== New Features ------------ - Sonargraph - Added new attribute retrievers to the architecture DSL: 'JavaIsInterface', 'JavaIsClass', 'CSharpIsInterface' and 'CSharpIsClass. For example 'JavaIsInterface: **Service' will only match interfaces ending with Service. Build 12.2.0.756_2022-09-22 =========================== Bug Fixes --------- - Sonargraph - Fixed 'NullPointerException' that occurred when using 'JavaHasAnnotationValue' with a '**' pattern. Build 12.2.0.755_2022-09-15 =========================== Bug Fixes --------- - Sonargraph - Fixed 'NullPointerException' in C,C++ refresh cycle. - Fixed assertion error (Parameter 'descriptor' of method 'addDescriptor' must not be empty) when performing a 'refresh' with an opened Exploration view. Build 12.2.0.755_2022-09-15 =========================== Bug Fixes --------- - Sonargraph - Fixed another assertion error in the C,C++ refresh cycle. Build 12.2.0.754_2022-09-14 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error in C,C++ refresh cycle. Build 12.2.0.753_2022-09-12 =========================== Bug Fixes --------- - Sonargraph - Fixed 'NullPointerException' in C,C++ refresh cycle. Build 12.2.0.752_2022-09-09 =========================== Bug Fixes --------- - Sonargraph - Fixed 'NoClassDefFoundError' when opening an Exploration/Architectural view. Build 12.2.0.751_2022-09-08 =========================== Improvements ------------ - Sonargraph - Applied performance improvement affecting creation and update cycle of an Exploration/Architectural view. - The Violations section on the bottom of the Architecture view shows the restriction that is violated. - The Parser Dependencies (In/Out) views show the contained parser dependencies when selecting a violation in the Violations section in the Architecture view. - When an Architecture file (DSL) and/or Artifact (including Artifact children) produces an architecture violation it is marked with an error marker. - Error/warning markers are no longer removed in Architecture File (DSL) view upon fist modification. Bug Fixes --------- - Sonargraph - Fixed an issue where multiline Java strings would not be parsed correctly. Build 12.2.0.750_2022-08-27 =========================== Bug Fixes --------- - Sonargraph - Fixed system lru list shown when navigating to System view instead of showing the dashboard when a system is already opened on Windows. - Fixed a deadlock that could occur when saving an Architecture file (DSL) with an opened visible Architecture view. - Fixed missing (inline) dependencies for nested interfaces with constant fields in Java. Build 12.2.0.749_2022-08-24 =========================== Improvements ------------ - Sonargraph - Applied several performance improvements affecting architecture assignment, architecture check and the update cycle of an Exploration view based on an Architecture file (DSL). - The Exploration/Architectural Metrics view tries to preserve the visible metrics on selection changed. Bug Fixes --------- - Sonargraph - Fixed assertion error (Not supported) when saving modifications to an Architecture file (DSL) with opened Exploration view. - Fixed assertion error (Node is not visible) when moving elements in the Architectural view. - 'CppExtendsClass' retriever now considers all classes in a physical model, not only the classes with the same name as the C,C++ component. - Fewer header files should end up as 'Unbound Components' in C,C++. - Fixed problems in C,C++ model caused by specialized templates - a complete reparse is required. - Now the new Java 14 'yield' keyword is properly supported. Build 12.2.0.748_2022-08-20 =========================== Bug Fixes --------- - Sonargraph - Fixed error in 'CppExtendsClass' retriever for used in the Architecture file (DSL) and the Architectural view. A complete re-parse of your system is required since the problem was rooted in the parser model. - Fixed an error in snapshot handling leading to an empty C,C++ system after reopening a snapshot file from disk. Build 12.2.0.747_2022-08-18 =========================== Bug Fixes --------- - Sonargraph - Fixed 'ConcurrentModificationException' in analyzer 'Architecture Check' when applying a focus to an Exploration view based on an Architecture file (DSL) after saving modifications. Build 12.2.0.746_2022-08-17 =========================== Improvements ------------ - Sonargraph - View state (expansion, selection) is preserved in Architecture view when modifying Architecture files (DSL). - Selecting a dependency in the Cycle Breakup view now shows the contained parser dependencies also in the Parser Dependencies (In/Out) views. Bug Fixes --------- - Sonargraph - Fixed false syntax errors in the C# parser. - Fixed assertion error when updating the navigation states for an Exploration view based on an Architecture file (DSL) on saving modifications. Build 12.2.0.745_2022-08-13 =========================== Bug Fixes --------- - Eclipse Plugin - Fixed 'NullPointerException' when trying to open a context menu on a selected item. - Fixed assertion error (Rename is only possible for a single element, but got 2) when executing a component based refactoring (e.g. rename of xxx.java to yyy.java). Build 12.2.0.744_2022-08-09 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error (Only one child matching the filter expected) when applying a modification to a C# profile. - Fixed assertion error (Navigation state to restore: ...) when refreshing a system with an opened Exploration view. Build 12.2.0.743_2022-08-04 =========================== Bug Fixes --------- - Sonargraph - Fixed 'NullPointerException' on saving a modified architecture (DSL) file with opened Exploration view with applied focus. Build 12.2.0.742_2022-08-03 =========================== Bug Fixes --------- - Sonargraph - Increased parsing loop timeout for C,C++ to 60 seconds. That should fix a problem where the parsing process is interrupted prematurely due to long parsing times. Build 12.2.0.741_2022-08-02 =========================== Bug Fixes --------- - Sonargraph - Further C,C++ robustness fixes. - Fixed assertion error (Only one child matching the filter expected) when opening a Java system with modules named in form 'module-1' and 'module-2' (i.e. the module names only differ in the number suffix). Build 12.2.0.740_2022-07-30 =========================== Bug Fixes --------- - Sonargraph - Fixed a scenario when updating the navigation states for the Exploration/Architectural view on a parser model change leading to the incorrect loss of a previously set focus. - Make C,C++ parser more robust to deal with incomplete or wrongly configured inputs. Build 12.2.0.739_2022-07-28 =========================== Improvements ------------ - Sonargraph - Navigation states (backward/forward) are now updated on parser model changes instead of being deleted for the Exploration/Architectural view. That means navigation states still containing valid references to model elements are preserved. Bug Fixes --------- - Sonargraph - Fixed 'IndexOutOfBoundsException' in the C,C++ parser. Build 12.2.0.737_2022-07-18 =========================== Improvements ------------ - Sonargraph - Context menu entries for auxiliary architectural views (e.g. Operations, Findings, ...) are always shown. Bug Fixes --------- - Sonargraph - The ccspy C,C++ importer now tolerates spaces between -I and include directories. - Made the C,C++ parser more resilient against parsing errors. - Fixed assertion error ('provider' of method 'getFilterName' must not be null) when deleting Java class or source root directories (now the model is cleared as in the other language providers). - Fixed assertion error (Node is not visible) when double clicking an arc in the Exploration/Architectural view (expand down to component/top-level logical programming element). - Fixed freeze of Sonargraph when renaming a recursive element (namespace, package, directory) in the Architectural view from name of form 'a.b.c' to 'a.b.c.d' (push down). Build 12.2.0.736_2022-07-09 =========================== New Features ------------ - Sonargraph - Added first auto completion capabilities to the Architecture (DSL) File view: - After having entered 1 char keyword completion is active. - After the 'connect' keyword connectors name completion is active. - After 'connect to' statement artifact/interface name completion is active. Bug Fixes --------- - Sonargraph - Fixed focus update on parser model refresh in Exploration view leading to invalid programming elements in focus. - Fixed assertion error (Parameter 'baselineReportPath' of method 'getBaselineReportFile' must not be empty) when opening a System with an empty baseline report path value. - Fixed assertion error (Already marked as 'reloaded') when performing a 'Refresh System Files' leading to reloading a modified tree map file on disk. - Fixed error in C,C++ component creation caused by shared root directories for different modules. - Typedef and macro invocation dependencies are not architecture relevant anymore in C,C++. - IntelliJ Plugin - Fixed 'IllegalArgumentException' (Unrecognized property 'escapeCharacters') when creating a baseline. Build 12.2.0.735_2022-06-26 =========================== Bug Fixes --------- - Sonargraph - Corrected violation count of parser dependencies in Exploration view when violations were contributed by different architecture (DSL) files. - Fixed assertion error (Unexpected class in method 'collect') when opening an Exploration view on an Unassigned (Internal/External) node in the Architecture view. NOTE: The bundled JRE of Sonargraph Standalone has been updated to OpenJDK 11.0.15 update 10. If you experience any problems on your platform please let us know. Build 12.2.0.734_2022-06-14 =========================== New Features ------------ - Sonargraph - The tree based viewers Checked 'Physical' and Checked 'Logical' on the Architecture view offer a search field widget that can be used to find components (physical) or top level programming elements (logical). The text entered in the field is matched against the short name of the elements. If the element short name contains the text (non case sensitive) it is shown. Improvements ------------ - Sonargraph - Improved Kotlin parser (now also evaluates @file:JvmName annotations). - Plugin Infrastructure - If a plugin throws an exception the information is added as a 'Plugin Exception' issue. - The internal PMD plugin libraries have been updated to PMD 6.45.0. - The PMD plugin uses now the internal cache making subsequent runs faster (configurable). - If no rule set is specified for the PMD plugin an internal default rule set is used. - The user can specify custom rule sets for the PMD plugin as comma separated entries of the 'Rule Sets' field on the corresponding property page. NOTE: The path of a custom rule set needs to start with either './' or '../'. Those relative paths are resolved relative to the parent directory containing the Sonargraph system folder. E.g.: If the system is called 'MySystem' those relative paths are resolved relative to the parent directory of the directory 'MySystem.sonargraph'. - The internal SpotBugs plugin libraries have been updated to SpotBugs 4.7.0. - Plugin status (enabled/disabled) is shown in the Files view. Bug Fixes --------- - Sonargraph - Fixed assertion error (Does not start with start path) when using the Java Build Unit importer. - Fixed some glitches in Sonargraph's communication with Sonargraph-Enterprise. - Fixed an assertion error in the Sonargraph-Enterprise configuration. - Plugin Infrastructure - Fixed 'ConcurrentModificationException' in analyzer 'IssueRanking' when configuring a Sonargraph plugin. - Fixed assertion error (StructureItem not in group) when opening a Dependencies or Graph view on an endpoint created by the Swagger plugin. Compatibility ------------- - Underlying libraries of PMD and SpotBugs plugins have been updated as well as some infrastructure aspects. If you are using any of those plugins you need to reinstall them, when using this Sonargraph version. Build 12.2.0.733_2022-05-23 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error (No interface expected) using the Java attribute retriever 'JavaExtendsClass' in a checked Architecture (DSL) file. - Fixed assertion error (ThresholdViolationIssue expected for maxNesting of method) when refreshing a system. - When moving artifacts to another parent in the Architectural view they are added in their selection order. Before those artifacts were added with their relative index from the source parent resulting in an order that could not be controlled by the user. - Fixed an error in the calculation of the relative path of elements in the Architectural view that led to operations that were not applicable involving several operations. Build 12.2.0.732_2022-05-19 =========================== New Features ------------ - Sonargraph - Now it is possible to navigate from selected elements in the Exploration view into the Architecture and Architecture File views. - Added new block operation 'Replicate Lines' to Architecture File and Script view. The spanned lines (of selection) are replicated (copied and pasted) after the last selected line. Bug Fixes --------- - Sonargraph - Fixed at least 1 scenario leading to an assertion error ('Not valid') when updating the architecture violations state of an Exploration view based on an architecture (DSL) file. - Fixed assertion error ('modifiableModel' must not be null) when transferring an Architectural view containing 'Findings' ignoring architecture violations with selected 'Parser' model. Build 12.2.0.731_2022-05-13 =========================== Improvements ------------ - IntelliJ Plugin - When opening a project with Sonargraph, 'build' is only called on the first activation. When reopening a project that has been analyzed before we rely on snapshot data. That means that you have to call 'build' yourself if you want to ensure up-to-date issues. Bug Fixes --------- - Sonargraph - Java 'Cast' dependencies were no longer added (regression). This has been corrected. Build 12.2.0.730_2022-05-10 =========================== New Features ------------ - Sonargraph - In the architecture DSL artifacts without their own include patterns will offer all elements to their children artifacts. They become 'transparent' artifacts and in that case the children do not need to rely on 'strong' include patterns. Details can be found in the documentation. Transparent artifacts can still have 'exclude' statements to define exceptions that should not be passed to the children artifacts. - The Find Elements dialog in the Exploration/Architectural view now offers the option 'In selection only' to limit the search to the selection if there is any. Bug Fixes --------- - Sonargraph - Fixed sort by 'Involved Lines of Code' in Cycle Groups view. - Architecture DSL C# attribute retrievers 'CSharpExtendsClass' and 'CSharpImplementsInterface' did not work properly for partial types. This is now fixed. - Fixed an error leading to an incorrect current navigation state when navigating forward or backward. - Fixed 'NullPointerException' when deleting Architectural view elements (refactoring). Build 12.2.0.729_2022-05-03 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error (Is deleted) when applying a delete refactoring on a programming element (e.g. field) in an Exploration view based on a checked architecture (DSL) file. - Fixed another Java source parsing error caused by multiple annotations on source elements. Build 12.2.0.728_2022-04-29 =========================== Bug Fixes --------- - Sonargraph - Fixed Java source parsing errors caused by multiple annotations on source elements. Build 12.2.0.727_2022-04-27 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error ('parent' of method 'updateTargetInfo' must not be null) in Move Elements dialog in the Architectural view when setting a different target position. - Fixed a problem in the C,C++ component creation algorithm. - IntelliJ Plugin - Adapted to API changes in IntelliJ 2022.1. Handling of the Sonargraph Tool Window has been adapted. Compatibility ------------- - The Gradle system/module import wizards for Java have been disabled. They didn't work reliably. We are working on a different solution. Sorry for any inconvenience. Consider using the Build Unit system/module import wizards instead. Build 12.2.0.726_2022-04-22 =========================== Bug Fixes --------- - Sonargraph - Fixed 'SWTException' (Widget is disposed) in Metrics view when refreshing a system. - Fixed 'SWTException' (Widget is disposed) when closing the manual C,C++ wizard to create either a system or module while still scanning sources for include references. - Fixed assertion error (Already finished step) when refreshing a Java system. - Eclipse Plugin - Fixed assertion error ('filePath' of method 'modified' must be valid). - Fixed 'NullPointerException' when updating the Refactoring view. - IntelliJ Plugin - Works now also with IntelliJ 2022.1. Build 12.2.0.725_2022-04-13 =========================== New Features ------------ - Sonargraph - Added a new Java Importer 'New Java System/Module(s) Based On Build Unit(s)...' that does not rely on a specific build tool (e.g. Maven, Eclipse, Gradle...). When the other specific importers fail you should consider using this one. The only thing that is required, is that you have successfully performed a build of your system since the Java class and source files are analyzed. Bug Fixes --------- - Sonargraph - Now gcc -include options (pre-includes) are recognized and translated properly for C,C++. - Fixed 'NullPointerException' in the C,C++ system and module creation wizards. Build 12.1.0.724_2022-04-06 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error in analyzer 'AverageComplexityMetrics'. Build 12.1.0.723_2022-04-02 =========================== Bug Fixes --------- - Sonargraph - Fixed 'ClassCastException' when selecting/deselecting entries in the import wizards. Build 12.1.0.722_2022-03-31 =========================== Bug Fixes --------- - Sonargraph - Fixed assertion error ('m_leafNodeCandidate' of method 'enter' must not be null) when opening a physical Exploration view. - Fixed error in the calculation of average complexity metrics. Build 12.1.0.721_2022-03-25 =========================== New Features ------------ - Sonargraph - Added new C,C++ importer based on ccspy (https://github.com/sonargraph/ccspy). A blog article with more details will be published soon on blog.hello2morrow.com. Bug Fixes --------- - Sonargraph - Fixed Java parsing problem caused by annotated type parameters. - Fixed assertion error (Parameter 'presentationMode' of method 'isOpCreateArtifactsForElementsPossible' must not be null) when creating multiple artifacts on an element selection with an applied focus. - Eclipse Plugin - Fixed 'JavaModelException' (Couldn't create JavaElementNameFilter).