jSparrow: Expectation of the jSparrow Eclipse Plugin
Once you installed jSparrow in your Eclipse - you will save money & time in modernizing your Java sources.
technical debt, Java sample project, saving
21466
page-template-default,page,page-id-21466,ajax_fade,page_not_loaded,,select-theme-ver-3.8.1,menu-animation-underline,popup-menu-fade,wpb-js-composer js-comp-ver-5.1.1,vc_responsive

Expectation

Expectation – What you may expect

jSparrow reduces the technical debt of selected parts or whole java projects automatically. To show you the results of running jSparrow, we measured several projects with SonarQube before, while and after running the different rule-sets for setting standards, removing bugs or code smells and modernizing sources.

 

  • coding conventions
  • formatting
  • lambda
  • logging
  • old language constructs
  • performance
  • readability
  • string manipulation

Our crafty jSparrow improves even big projects and thousands of threats (major and minor SonarQube issues) within minutes.
Once you installed jSparrow in your Eclipse – you will save money & time in modernizing your Java sources.

set standards

jSparrow is formatting Java sources according to common language standards. You may run the rule-sets on legacy projects as well as during the ongoing programming.

 

Applying jSparrow on Java legacy projects will raise the software quality and improve the maintainability of your sources. This will reduce the maintenance costs especially of older and often changed applications.

 

In ongoing projects, using common Java standard, enterprise standards can be applied to the source at any time. You may integrate jSparrow in your software development processes to enhance maintainability and readability.

jSparrow

code smells

jSparrow reduces Java code smells by applying programming patterns. While analyzing the syntax tree, jSparrow tags code smells and bugs and replaces these threats during the next stages.

 

Legacy Java still uses older and deprecated classes and methods which may be a potential security issue – these will be replaced by safe implementations. jSparrow reduces the code smells in the affected methods within minutes by the appropriate rule-set.

 

Error prone coding and dangerous programming patterns will be avoided when integrating jSparrow into your software quality process. This kind code smells won´t occur, when you integrate jSparrow into your build process.

jSparrow

modernization

jSparrow assists you in replacing outdated frameworks with mainstream framework functionality. Thus deprecated sources will be substituted with modern programming constructs.

 

Legacy Java projects contain methods and classes which should be replaced into state of the art Java coding. Exactly this task is done by jSparrow. Time intensive code improvements will be done by a click of a button.

 

For ensuring that your daily programming remains up to date, you have to include jSparrow into your application build life cycle. This keeps your technical debt debt and future maintenance costs low.

jSparrow

What you may expect – some samples

The graphs below show you the measured results for a variety of different open source projects.

We analysed with SonarQube before running jSparrow and after each ruleset group and after committing the changes.

Group 1 (Operations)
Arithmetic assignment rule
Collection removeAll() to clear()
Organise Imports Rule
Remove new String() constructor
Remove toString() from Strings
Replace String.concat(param) with Infix-Operation Plus
Replace constructors of primitive types with valueOf() method
SerialVersionUid check for static, final
SonarQube: Primitives should not be boxed for String conversions
String Literals equality check
String.format() System line separator
StringUtils
Group 2 (formatting)
Braces to Control-Block
Field names convention
Organise Imports Rule
Rearrange class members
Separate lines for variable declarations
Group 3 (mixture)
For to ForEach
MultiCatch
OrganiseImportsRule
TryWithResource
Use Diamond Operator
While-loops to for-loop
Group 4 (lambdas)
Expression Lambda to Method Referene
Lambda forEach to map
Organise Imports Rule
Statement Lambda to Expression Lambda
Stream forEach to collect
Use Functional Interface
if-Wrapper in Stream::forEach to Stream::filter
something
-------------The open source project ET_Redux has 129k lines of code------------- 
We measured Tecnical debt before running jSparrow and after defined ruleset groups:
 _________________________________________________________________________________________ 
Start SonarQube Issues: 20.894 - Major: 9.940 - Minor 9.537 - Measured time: 0 minutes 
Running Group1 Issues: 19.574 - Major: 8.707 - Minor 9.450 - Measured time: 2 minutes 
Running Group2 Issues: 16.141 - Major: 8.710 - Minor 6.015 - Measured time: 5 minutes 
Running Group3 Issues: 15.951 - Major: 8.511 - Minor 6.015 - Measured time: 6 minutes 
Running Group4 Issues: 15.275 - Major: 7.822 - Minor 5.980 - Measured time: 8 minutes 
Run Logger Rule Issues: 14.860 - Major: 7.532 - Minor 5.937 - Measured time: 11 minutes 
_________________________________________________________________________________________ 
--------jSparrow improved in project ET_Redux 6.034 issues within 11 minutes-------- 
something
------------------The open source project Weka has 323k lines of code---------------- 
We measured Tecnical debt before running jSparrow and after defined ruleset groups: 
_____________________________________________________________________________________ 
Start SonarQube Issues: 41.550-Major: 21.3592-Minor 16.2175-Measured time: 0 minutes 
Running Group1 Issues: 39.358-Major: 19.439-Minor 15.942-Measured time: 10 minutes 
Running Group2 Issues: 36.040-Major: 19.438-Minor 12.628-Measured time: 16 minutes 
Running Group3 Issues: 33.663-Major: 17065-Minor 12.629-Measured time: 23 minutes 
Running Group4 Issues: 33.132-Major: 16534-Minor 12.629-Measured time: 28 minutes 
Run Logger Rule Issues: 29.939-Major: 14.103-Minor 12.629-Measured time: 32 minutes 
_____________________________________________________________________________________ 
---------- jSparrow improved in project Weka 11.611 issues within 32 minutes -------- 
something
---------The open source project BroadLeafCommerce has 153k lines of code--------- 
We measured Tecnical debt before running jSparrow and after defined ruleset groups: 
_________________________________________________________________________________________ 
Start SonarQube Issues: 15.872 - Major: 7.094 - Minor 5.152 - Measured time: 0 minutes 
Running Group1 Issues: 14.522 - Major: 6.757 - Minor 5.148 - Measured time: 8 minutes 
Running Group2 Issues: 13.495 - Major: 6.756 - Minor 4.597 - Measured time: 12 minutes 
Running Group3 Issues: 12.125 - Major: 6.097 - Minor 4.592 - Measured time: 18 minutes 
Running Group4 Issues: 12.122 - Major: 5.851 - Minor 4.592 - Measured time: 22 minutes 
Run Logger Rule Issues: 12.098 - Major: 5.387 - Minor 4.592 - Measured time: 24 minutes 
__________________________________________________________________________________________ 
---jSparrow improved in project BroadLeafCommerce 3.774 issues within 24 minutes--- 
--------------The open source project Ferko has 139k lines of code-------------- 
We measured Tecnical debt before running jSparrow and after defined ruleset groups: 
_______________________________________________________________________________________ 
Start SonarQube Issues: 17.472 - Major: 8.609 - Minor 7.955 - Measured time: 0 minutes 
Running Group1 Issues: 16.321 - Major: 7.839 - Minor 7.574 - Measured time: 5 minutes 
Running Group2 Issues: 13.591 - Major: 7.839 - Minor 4.828 - Measured time: 6 minutes 
Running Group3 Issues: 11.907 - Major: 6.188 - Minor 4.828 - Measured time: 8 minutes 
Running Group4 Issues: 11.805 - Major: 6.120 - Minor 4.797 - Measured time: 9 minutes 
Run Logger Rule Issues: 10.968 - Major: 5.486 - Minor 4.797 - Measured time: 12 minutes 
_______________________________________________________________________________________ 
--------- jSparrow improved in project Ferko 6.504 issues within 12 minutes --------- 
---------------The open source project jFreeChart has 96k lines of code--------------- 
We measured Tecnical debt before running jSparrow and after defined ruleset groups: 
______________________________________________________________________________________ 
Start SonarQube Issues: 4.221 - Major: 2.411 - Minor 825 - Measured time: 0 minutes 
Running Group1 Issues: 4.120 - Major: 2.341 - Minor 804 - Measured time: 2 minutes 
Running Group2 Issues: 3.939 - Major: 2.341 - Minor 634 - Measured time: 5 minutes 
Running Group3 Issues: 3.491 - Major: 1.911 - Minor 634 - Measured time: 8 minutes 
Running Group4 Issues: 3.490 - Major: 1.916 - Minor 628 - Measured time: 9 minutes 
Run Logger Rule Issues: 3.471 - Major: 1.899 - Minor 628 - Measured time: 10 minutes 
______________________________________________________________________________________ 
--------jSparrow improved in project jFreeChart 725 issues within 10 minutes----------
--------------The open source project Morphia has 15k lines of code ---------- 
We measured Tecnical debt before running jSparrow and after defined ruleset groups: 
_________________________________________________________________________________ 
Start SonarQube Issues: 916 - Major: 517 - Minor 165 - Measured time: 0 minutes 
Running Group1 Issues: 840 - Major: 467 - Minor 139 - Measured time: 3 minutes 
Running Group2 Issues: 839 - Major: 467 - Minor 138 - Measured time: 4 minutes 
Running Group3 Issues: 722 - Major: 351 - Minor 138 - Measured time: 7 minutes 
Running Group4 Issues: 722 - Major: 351 - Minor 138 - Measured time: 8 minutes 
_________________________________________________________________________________ 
---------- jSparrow improved in project Morphia 194 issues within 8 minutes ------