SonarJ 3.3.0 release notes
You should not install SonarJ over an installation with a different version number. If you wish to do so, you must first uninstall the elder version. Moreover you should manually remove remaining com.hello2morrow.* directories from the Eclipse/plugins directory for SonarJ versions until 3.0.
For a list of known issues and troubleshooting, we refer to the end of this document.
SonarJ 3.3 release notes
Build 429 (July 14th 2008)
Starting with SonarJ 3.3, a Java 5.0 Runtime Engine or newer is required. JRE 1.4 is not sufficient any longer.
This release contains one new view and several improvements:
- SonarJ - An "Exploration" view has been added. It allows to explore a system together with its dependencies. Cf. the user documentation for details.
- SonarJ - On refactoring the 'Item definition' editor shows up, so that priority, assignment to a developer and comment can be changed immediately.
- Sonarclipse - SonarJ refactoring work items "Move compilation unit", "Rename compilation unit" and "Rename package" can be executed automatically in Eclipse. To use this feature you must right-click on selected refactorings in the "Project Summary/Work Items" tab. Rename refactorings can only be executed one by one. Move refactorings can be executed together as long as they share the same target package.
- SonarJ - When a type dependency is double-clicked, the source code view shows the code where the dependency starts. Up to now, the source code view had to be brought to the front explicitly; now, it comes to the front on its own.
- SonarJ - Metrics calculation:
- Average cyclomatic complexity per method (project) - included in SonarJ report and QATracker history
- Accumulated cyclomatic complexity (project) - included in SonarJ report and QATracker history
- Number of methods with implementation (project)
- Average accumulated cyclomatic complexity per type (project, layer, vertical slice, subsystem, package, compilation unit) -
included in SonarJ report and QATracker history (project)
- Max accumulated cyclomatic complexity per type (project, layer, vertical slice, subsystem, package, compilation unit) -
included in SonarJ report and QATracker history (project)
- Max cyclomatic complexity per method (project, layer, vertical slice, subsystem, package, compilation unit, type) -
included in SonarJ report and QATracker history (project)
- Sonarclipse - It is now possible to scroll the Subsystem Dependency Tree in Sonarclipse.
SonarJ 3.2 release notes
Build 400 (May 30th 2008)
This release contains minor fixes and improvements:
- SonarJ - Regression error introduced with 'Build 398' concerning 'Move Compilation Unit' refactoring fixed
- SonarJ - Issue concerning warning filter for refactored elements fixed
- SonarJ - Calculation of 'Average Cyclomatic Complexity per Method' adapted (see documentation)
- QA Tracker - Project, module and attribute identifiers are now properly handled in chart creation
Build 398 (May 23th 2008)
This release contains minor fixes and improvements:
- SonarJ - Parser errors for casts and annotations fixed
- SonarJ - Error when moving a compilation unit into an external package fixed
Build 394 (April 17th 2008)
This release contains minor fixes and improvements:
- SonarJ - Warning filter issue concerning attribute "No attached source file" fixed
Build 391 (April 2nd 2008)
This release contains minor fixes and improvements:
- SonarJ - Warning filter issue fixed
- IssueTracking - Update for Atlassian Jira WSDL
Build 385 (Mar 19th 2008)
This release contains minor fixes and improvements:
- SonarJ - Cycle viewer now shows cycle groups
- SonarJ - Performance issue with cycle detection resolved
- QA Tracker - Attribute added: 'not-assigned'
- QA Tracker - Documentation improved
Build 380 (Mar 12th 2008)
This release contains minor fixes and improvements:
- SonarJ - Issue concerning managing workspaces fixed
- SonarJ - Java VirtualMachine options can be set in new file SonarJ.vmoptions
- SonarJ - StackOverflowError on large architecture description files fixed
- IssueTracking - Adapter for Intland CodeBeamer added
Build 376 (Jan 11th 2008)
This release contains minor fixes and improvements:
- SonarJ - An issue concerning warning filter creation was fixed
- SonarJ - Comment text fields do no longer have length restrictions
- SonarJ - Improvement of refactoring view
- QA Tracker - Documentation and error message issue fixed
Build 375 (November 30th 2007)
This release contains two minor fixes and improvements:
- SonarJ-Server now handles ignored violations in the expected way
- Improved performance and usability of subsystem dependency panel
Build 374 (November 12th 2007)
Corrected a regression bug, that did not update "lines of code" threshold violations in the initial load. Moreover a small user interface problem for MacOS has been fixed.
Build 368 (November 5th 2007)
This release now supports Windows Vista.
New features
- New project metric "normalized cumulative component dependency": this metric compares the coupling of the project with the coupling of a balanced binary tree with the same number of nodes.
Bug fixes
- QA Tracker - Minor issues fixed.
- Sonarclipse - Refactoring markers in Eclipse were not always updated correctly.
- Sonarclipse - During startup of Eclipse projects were parsed multiple times when 'Create one SonarJ Project for the complete Eclipse workspace' was used.
- SonarJ on Linux - Moving compilation units via drag and drop now works.
- SonarJ on Mac OS - Tab folders are now working better on low screen resolutions.
Build 364 (August 10th 2007)
Fixed a problem, where moving of compilation units caused a crash, if a type contained anonymous classes nested in anonymous classes.
Build 363 (July 16th 2007)
New features
- qatracker: now you can create a history of major project statistics and quality metrics and visualize them in charts. Make sure to read more about this feature in the documentaton. qatracker will soon become a small independent open source project.
- The cycle analyzer will now try to find all cycles. For deeply cyclic systems this might take a long time. You can always interrupt the cycle search by clicking the small red square in the status line on the bottom.
- The maven plugin now integrates the SonarJ report into the generated maven site.
Moreover several minor issues have been fixed.
Build 350 (May 23rd 2007)
New features
- Now we have a plugin for Maven 2. See the manual for more information.
- SonarJ now can be integrated with your favored issue tracker. This version comes with a ready-to-use version for JIRA. We supply the source code of the adapter, so that it shoud be easy to integrate SonarJ with other issue tracking systems.
- A new installer for 64-bit Linux has been added.
Bug fixes
- The cycle participation count was not always cleared, which caused incorrect values after issuing several "Detect Cycles" commands.
Build 335 (April 20th 2007)
Bug fixes:
- MacOS compatibility issue regarding drag & drop operations has been fixed.
- Warning filters for static methods did not work correctly with auto activation of SonarJ in Eclipse.
Build 333 (April 13th 2007)
Correction build, which fixes two nasty problems, which were introduced in build 331:
- Problem markers were not always updated correctly in Sonarclipse.
- When types have been filtered out, the workspace reported unbound Java files for these types.
Sorry for any inconvenience.
Build 331 (April 11th 2007)
New features
- SonarJ can now calculate cycle groups and levelization. See the documentation for a detailed description.
- Cyclic elements are now displayed in the warning list and not in a seperated list.
- Workspace paths can now be sorted alphabetically in the workspace management view..
- Package level warnings are now also displayed in the Eclipse problem and task views.
Bug fixes
- Removing non-existing directories from the workspace list now works as expected.
- SonarJ now better tolerates missing resources in Eclipse.
Build 329 (March 19th 2007)
New features
- The ANT task now has some additional options, that allow a more flexible error handling. Please check the documentation for more details.
- The source viewer now has an extra tab for browsing incoming dependencies.
Bug fixes
- The refreshing of dependencies did not work correctly for types, that had no outgoing dependencies before the refresh.
- The attribute search somtimes did not return a complete result set.
Build 327 (March 12th 2007)
New features
- SonarJ work items are now completely mapped to Eclipse tasks including priority and assigned person. Therefore you can now use Eclipse filters to filter out tasks that are asigned to you.
- The log4j configuration for SonarJ can now be modified by the user. log4j.properties can be found in the lib direcory of the SonarJ installation. Moreover the default location of the log files created by SonarJ is now the .sonarj subdirectory of the users home directory. (Important for Vista)
Bug fixes
- Cutting the last dependency to an external type caused SonarJ to crash. This is now fixed.
- Several other minor bug fixes and improvements.
Build 319 (Feb 23rd 2007)
New features:
- Layer and vertical slice diagrams can now be exported to a .JPEG file.
Bug fixes:
- When you created a named interface for a subsystem, incoming subsystem restrictions have not been removed, which caused wrong behaviour of SonarJ. This problem is fixed now. Moreover architecture descriptions containing inconsistent information caused by this problems are now repaired automatically.
- Renaming compilation units in Eclipse sometimes caused a problem in the Sonarclipse plugin.
Build 318 (Feb 20th 2007)
New features:
- New dependency browser in the source view of the standalone version. This browser shows all outgoing dependencies of the given compilation unit and is able to show all the positions in the code, where a given dependency occurs.
- Sonarclipse auto-activate. If you activate a project in Sonarclipse it will stay active, until you deactivate it. This means, if you start Eclipse and a SonarJ project was active before, it will be activated automatically. For larger projects this can increase the time needed to startup Eclipse, because everything must be parsed by SonarJ. As soon as the initial parse is finished everything should work as expected. If you want to avoid the initial parse at startup you need to deactivate SonarJ projects before you exit Eclipse. Please not, that you must have write access to the .project file to activate or deactivate Sonarclipse projects. Sonarclipse now installs an incremental project builder on your project, which requires a modification of the project file. Moreover it is a wise idea to give Eclipse as much memory as possible.
- You can now switch of timestamp checks in the "Workspace" tab by deselecting the "Don't parse uncompiled Java files" check box. This is useful, when you want to analyze third party code, which you haven't build on your machine and run into timestanp problems, because you unpacked source files from an archive. (This will make the source time stamps newer than the timestamp in the jar class file archive.)
- The subsystem view now also supports multi-select for patterns.
- You can now open the HTML documentation from the help menu.
Bug fixes:
- The filtering of "no attached source file" warnings did not synchronize correctly with the workspace warning view.
- In Sonarclispe markers were not updated correctly after move or rename refactorings.
SonarJ 3.1 release notes
Build 312 (Feb 1st 2007)
This release includes some major improvements for the Eclipse plugin.
New features:
- Improved graphical editor for the layer and vertical slice diagrams. Please note, that you now have to select the "Dependency tool" on the left to draw dependencies between elements. Moreover you have to use the left mouse button to draw dependencies by dragging from the source to the target element. The right mouse button will popup a context menu, which allows you to change stereotypes and to delete elements or dependencies. The "Positioning tool" can be used to drag arround elements.
- Eclipse plugin: architecture violations and SonarJ warnings are now mapped to error or warning markers in the source code and therefore also show up in the problem view.
- Eclipse plugin: an architecture violation can be configured as error or warning marker.
- Eclipse plugin: work items are visible in the task view and in the source code via task markers. Priority and assignment are not yet visible there - this information is only available in the SonarJ project summary view.
- Eclipse plugin: the plugin is now configured as an extension. Instead of installing the plugin in the Eclipse root directory you can now install an extension into Eclipse. Therefore it is possible to use one SonarJ installation for several Eclipse installations. To install an extension go to Eclipse, select the menu "Help / Software Updates / Manage configuration" and select the "eclipse " subdirectory of the SonarJ installation.
- "Cut dependency" translates into task markers on the source code level.
- Improved source code viewer with problem and task markers.
- New improved installer now also supporting Mac OS-X and Linux. Moreover the installer supports unattended installations and console based installations. Please check the install4j documentation for more detailled information.
- Attribute "number of type relations" is now avialbale in the attribute search view. It can be used to compare the weight of dependencies in the system.
Bug fixes:
- Directory links in Eclipse are now supported correctly.
- Scrolling in the graphical editor now works correctly.
- Fully qualified annotations are now handled correctly by the Java parser.
SonarJ 3.0 release notes
Build 284 (Jan 9th 2007)
This is a minor bug fix release. The following bugs have been fixed:
- The use of "enum" as a normal identifier in pre 1.5 projects now works correctly
- Cycle detection in logical architecture definition now works as expected again
- Umlaut and accent charcaters are now handled corectly in the SonarJ-Server report generation
- Parser now accepts fully qualified annotation names
Build 280 (Dec 12th 2006)
Fixed a bug, which caused wrong state computation for virtual refactorings.
Build 279 (Dec 10th 2006)
The following problems have been fixed:
- The workspace problem view sometimes refused to display certain problems
- XML report generation did not correctly handle XML special characters like &, <, ...
- Rename compilatiom unit caused a crash, when the name was completely deleted in the text field
- Moving away the last compilation unit of a package left an empty package
Build 277 (Nov 24th 2006)
We assume, that this will be the last RC before the final 3.0 release. Here is the list of new things and fixed problems:
- The documentation is almost finished now.
- Accented characters should be displayed correctly again (regression)
- A double click on a type without a source will not cause a crash anymore.
- Sometimes SonarJ detected cyclic compilation units although the checking level was limited to packages. This is fixed now.
- Fixed some selection issues in the project tree.
Build 275 (Nov 10th 2006)
RC2 fixes some issues of RC1:
- Fixed freezing of Eclipse-Plugin after certain update operations
- Improved consistency checks for the workspace. Workspace files with problems can now be loaded without a crash and will be fixed automatically.
- Reduced flickering of project view
- Added documentation for virtual refactorings
- Created workarround for problem in JDK UTF-8 decoder
Build 274 (Nov 6th 2006)
This is our first release candidate for SonarJ 3.0. The documentation is not completed yet and will follow soon. To give you an overview we have summarized all the new and changed features here.
New Features:
- Usability
- The project now has an attached navigation list to support forward and backward navigation through the list of visited elements.
- To easily find elements in a project a search element dialog was added (invokeg with Strg+E).
- A double click on compilation unit, type or method makes the source viewer visible (if not already) if the compilation unit has a source file.
- Elements with warnings and dependencies that are violations have now a tooltip showing the warnings or the violation cause.
- Metrics
- Relative average component dependency, which is the result of dividing the average component dependency (ACD) by the number of compilation units.
- Architecture
- All logical elements may now have an optional description to document purpose and responsibilities of the architectural elements.
- Subsystems and named subsystem interfaces may know have the stereotype <<frozen>>. This stereotype has an effect on incoming dependencies. It freezes the current state of the incoming dependencies. That means even if layer or vertical slice restrictions are changed no additional allowed incoming dependencies are added. If it is required to add further allowed incoming dependencies this must be done explicitly.
- New virtual refactorings
- Cut type dependencies to simulate this type of change (invoked in the context menu of dependencies)
- Rename compilation units to simulate this type of change (invoked in the context menu of compilation units)
- Rename Packages to simulate this type of change (invoked in the context menu of packages)
- All refactorings which are currently applicable show up in the work item list (Project/Work Items tab). The complete list of refactorings and their current state can be found under the Architecture/Refactorings tab. You should remove refactorings with state "Potentially done".
- Filters for elements warnings and dependency violations
- Define pattern based warning filters to either request the correction (fix) of warnings or to ignore them (invoked in the context menu of elements that have warnings). A warning to be fixed shows up in the work item list. All warning filters show up in the Archiotecture/Warning filters tab.
- Define pattern based violation filters to ignore known architecture-violating type dependencies temporarily. This will not change any dependency or metric. It just avoids, that the filtered dependency is marked as a violation.
- Workspace
- The workspace has a problem list that shows workspace inconsistencies like missing class files, missing source files, misplaced files, out-of-date files and unparseable files
- The workspace paths may now be ordered. This is important, if your workspace might contain duplicate implementations for certain types. In this case SonarJ will use the first definition found in the workspace and mark all subsequent ones as duplicates.
Bug Fixes:
- Work item list had an incorrect column to content assignment.
- Class parser problems with annotated methods under JDK 1.5
- The source parser is now even more tolerant to bizarre coding constructs.
- Many more minor bug fixes
Known Problems on Linux:
- Moving compilation units via drag and drop does not work. Please use the context menu "Move..." operation under Linux to avoid this problem.
- The arrows in all dependecy viewer are partially cut off.
SonarJ 2.6 release notes
Build 259 (Aug 11th 2006)
If you encounter problems with the Eclipse-Plugin, please try to start Eclipse with the -clean option.
New Features
- The Eclipse-Plugin and SonarJ-Developer now are able to display the current architecture in read-only mode
- Methods are now created by the class file parser too - so you get more information when only class files are available
- The ANT task is now able to make builds fail on different conditions. See the documentation for more information
- The ANT report contains a list of the work items
- Many minor improvements in the ANT task reports
Bug Fixes:
- Removed performance problem of very long list of type violations
- Linux start shell script has been fixed
- Workspace updates sometimes caused SomarJ to crash with a "ConcurrentModificationException"
- Deletions of architecture elements or patterns sometimes caused a crash of SonarJ
- Many other minor bug fixes
SonarJ 2.5 release notes
Before you install 2.5 over 2.0 you must uninstall SonarJ 2.0. Moreover you should manually remove remaining com.hello2morrow.* directories from the Eclipse/plugins directory.
Build 254
Removed two bugs:
- renaming vertcial slices now works correctly again
- drag and dropp of subsystems between layers sometimes did not work in the expected way
Build 252
Deleting thresholds now works as expected even with multi-selection.
Build 250
Deleting a layer or vertical-slice with incoming dependencies caused a crash. This problem was introduced due to a refactoring in build 247 and is fixed now.
Build 249
A few bugs and a regression made it into build 247. This release fixes those problems:
- Mangled names appeared in the project view for annotations containing enums (fixed)
- Moving compilation units without an open architecture description caused a crash (fixed)
- The workspace manage dialog caused a crash under some exotic circumstances (fixed)
- The Java parser is now even more tolerant
Build 247
This is the first release containing features for virtual refactoring. The first supported refactoring is moving of compilation units to another package. All refactorings are performed in memory only, therefore you can simulate the effects withoput having to change anything on your disk. If a package contains classes from more than one subsystem it is now possible to create "virtual packages" to split the package into several new ones, which then can be assigned individually to different subsystems. See the documentation for a deeper explanation.
In the near future more refactorings will be supported by SonarJ:
- Rename package
- Rename compilation unit (i.e. rename the main type of a compilation unit)
- Cut dependencies
Moreover we are still working on the possibility to ignore warnings or violation. As soon as all of thos features are ready, this will be SonarJ 3.0.We expect this version to be available in the middle of Q3 2006.
Additionally we fixed some bugs and added some minor usability improvements:
- The Cycle Tab will become active automatically when the cycle search is finished
- Making public layers not-public caused a crash under certain conditions - this is fixed
- Moving of named interfaces should not cause a crash anymore
- Allowed dependencies are now displayed correctly between public layers / vertical slices
SonarJ 2.0 release notes
Build 241
- Fixed a bug, where selecting a subsystem without an open architecture description caused SonarJ to crash (thx to Thomas Lankes from Allianz AG for his help)
- From JDK 1.5 on the naming strategy for anonymous classes has been changed. This is now also handled correctly by SonarJ.
Build 240
This is only a minor bugfix release. We are working heavily on virtual refactoring and the ignore-list concept. We hope to have a first release with these new features in June 2006 the latest.
- New feature: when defining a workspace it is now possible to skip nested archives (path manager).
- Bugfix: renaming of subsystems, layers or vertical-slices did not work, when lower-case letters were replaced by upper-case letters or vice-versa.
- Bugfix: "save-as" of an existing workspace in another directoty now works correctly.
- Bugfix: nested types in annotations now are parsed correctly.
Build 236
- If a subsystem has severl named interfaces, the types belonging to the named interfaces can overlap. (This created a warning before)
- The report created by the ANT task has been improved.. Warnings are now sorted by topic and severity. Moreover the type dependencies causing an architecture violations are listed. An extra problem count statistic has been added.
- Introduction of "public" layers and vertical slices (see example and documentation). A public layer or vertical slice is accessible by all non-public layers or vertical slices. This helps to eliminate a lot of dependency arrows, which tend to make diagrams unreadable.
- Multi selection is now possible in the project view. Of course dragging is only possible, if all selected items are of the same type.
- Drag and drop has been improved and now automatically performs needed pattern adaptions.
- Better support for JDK 1.5 - some dependencies caused by Java Generics were not recognized by the previous version.
- Cycles including the not-assigned layer and subsystem are ignored.
Before
- Improved subsystem manager
- Linux support (see "installation" section of the manual)
Standalone versus Plugin:
The standalone version is mainly used to:
- define a logical architecture (that should be used by sonarclipseto check restrictions directly during coding sessions)
- Investigate the internal structure of existing projects reviewingthe technical quality
Sonarclipse is used to support the developer while coding:
- check the conformance to logical architecture restrictions(defined with the standalone version)
-
spot cyclic code constructs
- spot complex code areas
Known issues
- Sonarclipse: The option 'Create one SonarJ project for the complete Eclipse workspace' does not function properly.
A full build performs for each Eclipse project a SonarJ build. Therefore this feature must not be used for large Eclipse
workspaces (i.e. Eclipse workspace with many or large projects).
Troubleshooting
If you have problems with your Sonarclipse installation make sure
that you do not have a Sonarclipse version in the Eclipse plugin directory.
If you still encounter problems you may start Eclispe with the
'-clean' start option or remove the Eclipse configuration directory.
Feedback
Should you have any questions or problems, please send us an
EMail (support@hello2morrow.com). Moreover feedback of any kind is more
than welcome. This will help us to make SonarJ even more useful for you.