Hi Everyone,

It's been quite a while since I have interacted with the group. First of all 
may I congratulate everyone on the tremendous effort producing repeatedly 
better versions of NetBeans. Secondly, may I apologise for the length of this 
email.

I suspect that everyone has forgotten my last email where I personally found 
the source code hard to read and was going to embark upon an attempt to 
reformat it. Well, that has turned out to be a significant task requiring a 
great deal of manual intervention.

Originally, I started with 12.1 but soon gave up when 12.2, 12.3 etc rolled on 
rapidly. So I restarted at version 13. However, not really understanding the 
structure I began with the ide cluster and after a lot of fumbling around 
decided that this wasn't the right place and moved to the harness and platform.

Like Alice I fell down a rabbit hole into a veritable wonderland of confusion 
and surprises.

A simple, so I thought, reformat turned into:

- Reformat to improve readability.
- Correct inconsistent formatting within files.
- Introduce a consistent use of comments:

/**
Javadoc
*/
/*
inline (not end of line) code comments
*/
// Commented out code.

- Remove unused imports and use single class imports not * imports.
- Update code to be JDK11 compatible - gives cleaner code. Plus this had 
already been made the minimum requirement for compiling and running the IDE.
- Tried to make code GREEN by eliminating as many errors as possible (warnings 
are just soft errors).
- Eliminate, where possible, all obsolete code and preferably deprecated code. 
That's easier said than done.
- Make fields final where possible.
- Reduce the use of 'else if', I've never really been a fan but I particularly 
dislike the lack of a proper implementation of it in Java.
- Make return values unmodifiable where necessary/possible.
- Make full use of the internal formatter to handle formatting and reduce, as 
much as possible, any manual intervention.
- Remove unnecessary decoration.
- Replace anonymous inner classes with lambda expressions where possible.
- Remove 'unused assigned values'.
- Change conditional statements from:
testing a value against a variable, to:
testing a variable against a value.

- This includes:
-  ==, != and equals.
- Parameters (in my language formal parameters) should be read from and never 
written to within the method body. Parameters are input to the method while 
return values and side-effects are the output from the method.
- Correct 'inefficient use of string concatenation in logger'.
- Constant name does not follow naming conventions.

Plus many more...

A lot of these where highlighted by the static analyser and therefore were not 
particularly arduous to deal with.

However, the whole process (as yet unfinished) has been time consuming, I have 
visited some 5000 Java files and many have required multiple passes to deal 
with all the problems. I estimate that it has taken me approximately 8 hours a 
day, 7 days a week for 12 months.

But, I have now reached a point where I have some problems that I cannot find a 
solution for and need your help/guidance.

First, a few of the packages (17 of 114) in platform give me the error message 
"cannot find item" and in some cases they are in the same package?

Secondly, I cannot compile anything and therefore cannot test anything. I get 
the error message:

ant -f /Users/jeremycavanagh/netbeans-jc-cleaned/platform/api.io 
-Djavac.includes=org/netbeans/api/io/Fold.java compile-single
init-tasks:
/Users/jeremycavanagh/netbeans-jc-cleaned/nbbuild/default.xml:31: taskdef class 
org.netbeans.nbbuild.JNLPUpdateManifestStartup cannot be found
using the classloader AntClassLoader[]
BUILD FAILED (total time: 0 seconds)

I can only assume that my setup is incorrect for dealing with the NetBeans 
source. I am using the source download for NB13 and have not changed anything 
other than Java files.

Kindest regards

Jeremy

Reply via email to