Refactored code so that the CPD, PMD, etc. GUI panels are now in ide/common, and the jEdit plugin uses those.
Modified the stand-alone JRefactory application so that it uses the new components.
Version 2.8.04
fixed regression in pretty printing that caused "@param paramName descr" to be printed as "@paramparamName descr" if the value of "javadoc.indent" setting is zero.
fixed regression in the Option panes that caused numbers to be save as one less than the set value!
fixed bug that if a non-existant file were selected as an additional PMD ruleset, the displaying the option pane would fail, hence it could not be changed.
fixed getting of correct PropertiesFile for the project and JRefactory module. All PMD settings are now in pmd.settings, with only the parts modified from the defaults in the project directories.
(options) Improved the option dialogs, now includes some PMD options in a separate JTagPane
(Coding Standards) imported the regression tests from PMD and ran them. A few still fail :-(
(Parser) Fixed bugs in how SimpleNode works.
(Parser) Fixed two bugs in equals() methods which caused AST nodes that where not equal to be evaluated as the same.
(Parser) All AST nodes that are created programatically now have their type IDs set.
(Parser) now handles cntrl-z at the end of files
(Parser) make ForLookahead a Java function so that it need not be handled by the Visitor pattern.
(JavaStyle) moved the JavaStyle plugin to org.acm.seguin.ide.jedit
(JavaStyle) created a separate JavaStyle.jar containing only those classes required for the jEdit plugin.
Version 2.8.01
(Pretty Printer) Added ability to have multiple projects. each with their own pretty.settings file.
Each project inherits from the pretty.settings of the "default" project.
Version 2.8.00
(UML Diagrams) Fixed scaling of target types of associations.
(UML Diagrams) When associations are removed, if the type has no other associations or other links to it and it is contained in a different package it is removed from the diagram.
Fixed Unicode support (I hope) by converting from Input/Output Streams to Reader/Writer.
Changed ModifierHolder to be an interface, created new AccessNode class that implements it to be the base class of AST nodes that have modifiers. Summary also now implements ModifierHolder. These changes make parsing faster and the node graph take less memory, also small reduction in code size.
(Parser) Changed to be non-static
(Parser) Updated to JDK 1.5 generics as in the Public Draft Specification 2.0.
(Coding Standards) Integrated PMD into JRefactory codebase, the PMD code now uses the JRefactory parser. The parse trees are very similar so almost all PMD coding standard xml files will work with JRefactory.
(Summary) added parsing of .class files using reflection.
Fixed JRefactory bugs:
531379 JRefactory do'nt work under Japanese.
574070 Error pretty print (EOF on comment)
Version 2.7.07
Fixed regression that meant that the JBuilder plugin was not being compiled.
Updated to the latest (version 9) of JBuilder API.
Updated to the latest (3.5) of Netbeans API.
Version 2.7.06
Fixed regression that caused some of the assert statement variants not to parse. This was not being caught by the JUnit tests so added another one to check assert statements more fully.
Fixed JEdit bugs:
667347 JavaStyle does not support assertions
Version 2.7.05
Only enable edit->Undo Refactoring menu when there are undo actions on the stack.
Made UndoAction an interface and created DefaultUndoAction to implement it, allow different UndoAction implementations to be plugged into UndoStack.
Made ComplexTransform an interface and created DefaultComplexTransform to implement it, allow different ComplexTransform implementations to be plugged into Refactoring.
Fixed JEdit bugs:
549394 JavaStyle Neverending Work this was only partly fixed in Version 2.7.0
Version 2.7.04
(regression) Fixed regression causing Refactory command line premature exit.
(UML Diagrams) RFE 568317 Better scaling on prints
(UML Diagrams) Further improvements to UML class diagram drawing and printing.
(UML Diagrams) Positions of Types, etc now saved when diagram closed.
(assertions) Modified grammar so "assert" may be an identifier in pre-JDK 1.4 code.
(UML Diagrams) Added automatic positioning for types in the class diagram based on a mixture of simulated annealling and spring forces along relationships, gravity makes subclasses more to the bottom.
Now has consitent usage of path to the .Reactory settings directory.
Fixed JRefactory bugs:
554735 PrettyPrintchokes on //End Class after }
Version 2.7.03
(JDK1.5) Fixed various bugs so that now all of the source code provided with "adding generics early access 2.0" can be parsed.
(UML Diagrams) Fixed bugs in UML class diagram drawing and printing.
(PrettyPrinter) added this tag (with defaults) to pretty.settings; when false 'C' style comments that end a line with program code on it are treated as single line comments.
cstyle.comment.ownline=true
(JEdit) Added support for the new JEdit JRefactoryPlugin.
It is not obvious that this is a bug (should the header stay with the java.util import or should it stay at the top of the list of imports?), or how to fix it.
Version 2.7.00
(JDK1.5) Based on version 2.6.40, this is a branch created by Mike Atkinson (JRefactory@ladyshot.demon.co.uk)from the original program by Chris Seguin (seguin@acm.org).
Version 2.7.x adds JDK 1.5 language features. As these are still being worked on by Sun (and others) under various JSR's support should be considered preliminary. The language features are those supplied by "adding generics early access 2.0"
Version 2.6.40
Changes unknown
Version 2.6.38
(PrettyPrinter) Javadoc @ tags that do not consist of only letters and digits are treated as inline and left inside the description rather than breaking them out onto their own lines.
(PrettyPrinter) instanceof requires a space around it even if no other operators do
(IDE) JDeveloper support added for pretty printer and pretty printer configuration
Version 2.6.37
(UML) Popup menu correctly activated for a Mac.
(PrettyPrinter) Added newlines at the start of a multiline method, and before extends and implements in a class. Indent specified.
(PrettyPrinter) Fixed spaces before operators when operator is on a new line
(PrettyPrinter) Align initializer {} with the code option
(PrettyPrinter) Normal indent when surprise return is encountered
Version 2.6.36
(PrettyPrinter) Fixed ; after a static block
(PrettyPrinter) No spaces around operators
(PrettyPrinter) Added a sort bean properties together
(Refactoring) Rename method parameter where the method is invoked on the parameter
Version 2.6.35
(PrettyPrinter) Processing for assert keyword
Version 2.6.34
(PrettyPrinter) Constructors use the correct exception tag
(PrettyPrinter) Constructors throw param.descr not found MissingSettingsException fixed
(PrettyPrinter) Do not discard incorrect @param and @exception tags
(PrettyPrinter) Switch to add spaces inside the parens of a cast
(PrettyPrinter) Switch to add space a between method and arguments
(PrettyPrinter) Move spaces before operators to previous line
(Refactoring) More error checking for command line repackage (move class) and rename class
Version 2.6.33
(PrettyPrinter) Don't pop up an error dialog box when pretty printer is running in quiet mode, instead return the number of problems
(PrettyPrinter) Non standard exception tags don't increase each time the system runs. Ability to unit test exception tags.
Version 2.6.32
(PrettyPrinter) Added support for DL and DD/DT tags
(PrettyPrinter) Don't print the javadoc comments twice if there are two javadoc comments before a method
Version 2.6.31
(PrettyPrinter) Moved undo.stk and log.txt into the .Refactory directory
(PrettyPrinter) Inplace file in the current directory
(PrettyPrinter) Multiline field and variable initializers formatted properly
(PrettyPrinter) Minor bug fixes
Version 2.6.30
(PrettyPrinter) Remove unnecessary {} around if and while and for
(PrettyPrinter) Add extra blank lines before the class declaration
Version 2.6.29
(PrettyPrinter) Remove spaces around imports
(PrettyPrinter) Require an extra blank line after the package statement
Version 2.6.28
(PrettyPrinter) Insert spaces before and after local variable declarations
Version 2.6.27
(PrettyPrinter) Fixed bugs in the parser
(PrettyPrinter) Fixed bugs in the initial setup of the pretty printer files
Version 2.6.26
(PrettyPrinter) Provided a user interface for the pretty printer configuration
Version 2.6.25
(PrettyPrinter) Broke the name of the variable into words. Use {4} to specify use words in the pretty.settings file.
(PrettyPrinter) Specify the amount to indent the case statement with case.indent=# value. The default is the same as the indent value in the pretty.settings file.
(PrettyPrinter) When the pretty printer is run from the command line, the user can have it create a backup of the file by adding an extension to the key pretty.printer.backup.ext in the pretty.settings file.
(PrettyPrinter) Order methods, fields, and nested classes by the final attribute. If it is marked as final it can be sorted to the top or the bottom of the file. This feature is not enabled by default. Find sort.6= and remove the #. Note that the sort.# that are not commented out must be consecutive, so you might have to number the sort items.
(PrettyPrinter) Alphabetize methods, fields, and classes. Note that if you have fields that are initialized and requiring the sort algorithm to keep those in order, this feature won't work. This feature is not enabled by default. Find sort.7= and remove the #. Note that the sort.# that are not commented out must be consecutive, so you might have to number the sort items.
Version 2.6.24
(Ant Task) Added an Ant task and a CVS util
(IDE) Reloaded the JBuilder project after refactoring
(IDE) Close files before performing a refactoring that removes, renames, or moves a class
(IDE) Added a filter mechanism to limit the names of packages displayed in the package selection list box. This is infrastructure only and does not change the current behavior.
(IDE) Save the files to disk in JBuilder before performing the refactoring.
(IDE) Restore the displaying of the accellerator keys to the menu
(Refactoring) Correctly identify thrown exception that is caught inside the extracted method as a variable that does not need to be a parameter
(PrettyPrinter) Fixed a bug with else.start.line that was introduced in 2.6.23
Version 2.6.23
(PrettyPrinter) Fixed an interaction between force.block=false and else.start.line=false
(PrettyPrinter) Fixed a infinite loop pretty printing files with /* */
(PrettyPrinter) Variable indented with the block0
Version 2.6.22
(PrettyPrinter) When the javadoc can fit on a single line, it is allowed to stay on a single line
To enable this function you need to edit the pretty.settings file and add allow.singleline.javadoc=true
(UML Diagrams) New UML Class Diagram should have OK/Cancel buttons and be resizeable
(PrettyPrinter) Default values in pretty.settings match Sun's Java Coding standards
Version 2.6.21
(Other) Centered the dialog boxes on the frame
(Refactoring) Improved the ExtractMethodDialog box so that it would not resize and dance
(Command Line) Allow the system to launch an editor when using JRefactory's UML diagrams in a command line mode
To enable this feature, edit the source.editor setting in the uml.settings file. $FILE specifies the file to edit and $LINE specifies the line number to jump to.
Version 2.6.20
(PrettyPrinter) Add a footer
To enable this feature, add a set of lines called footer.# to the pretty.settings file
(PrettyPrinter) Improved the emacs style
(Refactoring) Fixed a bug with extracting a method
Version 2.6.19
(PrettyPrinter) Allow the user to specify that fields with initializers maintain their current order
To enable this feature, find all the settings named "sort.#" in pretty.settings and change sort.1 to sort.2, sort.2 to sort.3, etc. Then add: sort.1=FieldInitializers()
(PrettyPrinter) Added an emacs block style which looks like pascal block style but has the { and } indented by 2 extra spaces
Version 2.6.18
(PrettyPrinter) Fields and local variables with arrays should be indented properly with DFS_ALWAYS (dynamic field spacing)
Version 2.6.17
(Refactorings) Make "rename parameter" work for the constructor
(Refactorings) Control the extract method dialog box size
(Refactorings) Fixed bug that made the parameters in the extract method dialog vanish suddenly
(Refactorings) "Extract interface" goes to a strange directory
Version 2.6.16
(PrettyPrinter) Local variables defined in the constructor should not be indented according to the field variables
Version 2.6.15
(PrettyPrinter) Sort the main method to the top of a class.
To enable this feature, you need to adjust the sort criteria based on type to include the code "Main". For instance, the default behaviour sorts the type first - so that the fields appear at the top of the file, the constructors come next, and then the methods. This is specified by:
To force the main method to appear in a certain position, insert "Main" in the correct location. For instance after the field but before the constructors, insert it like so:
(PrettyPrinter) Fixed bug in the sorting routine that didn't properly order setters, getters, and other methods.
Put JRefactory in SourceForge's CVS (with SSH)
Version 2.6.14
(PrettyPrinter) Don't comment anonymous classes.
This is now the default behavior.
(PrettyPrinter) Don't comment inner classes
Enable this feature by changing the setting in pretty.settings from:
document.nested.classes=true
to:
document.nested.classes=false
Version 2.6.13
(PrettyPrinter) Ability to add javadoc comments with "throws" instead of "exception".
Enable this feature by changing the setting in pretty.settings from:
exception.tag.name=@exception
to:
exception.tag.name=@throws
Version 2.6.12
Visual Cafe to work again
New function "Rename field"
Fixed Extract Method problem
If there was only used for a field access, the object was not included in the parameter list.
Load chinese characters
Pretty printer loads multiple files or directories from the command line
Fixed bug in JavadocTokenizer (out of bounds exception)
Added more space in the metrics table
Version 2.6.8
Extract Method Signature keeps up with typing
Change from circles to letters for protection
Change the size of the sticky points
Block summary load from entering CVS directories
Backup files named bk?
(PrettyPrinter) Net beans integration
(PrettyPrinter) Don't change the spacing on HTML tags
(PrettyPrinter) Inside Javadoc comments, you would like to maintain the spacing after the first *
(PrettyPrinter) Maintain the formatting of a PRE tag
(PrettyPrinter) Add a "else.start.line" option
(PrettyPrinter) No force block
(PrettyPrinter) Style for class blocks (either pascal or C)
(PrettyPrinter) Adding more space around < construtor name >
(PrettyPrinter) Lower case attribute in note
(PrettyPrinter) Brackets for the empty method appear on the same line
(PrettyPrinter) "final" in the initializer of the for loop incorrectly positioned
(PrettyPrinter) Update Windows 2000 Documentation (C:\Documents and Settings\<user name>\.Refactory)
Version 2.6.0
Fixed Comodification Error when repainting the UML diagrams
Hide undo stack file missing error
Added rename parameter refactoring
When performing the extract method refactoring, if there are zero or one parameters to the extracted method, don't provide the list and the up and down arrows.
Keep extract method in the inner class
Keep the method static when the method is extracted
Keep the method synchronized when the method is extracted
If the extracted method contained the local variable declaration, then add the local variable declaration into the place where the method was extracted.
Improvements to the extract method GUI.
(PrettyPrinter) Unicode characters in strings in JBuilder
(PrettyPrinter) Survive double ; after a field
(PrettyPrinter) Unicode characters in method names in JBuilder
(PrettyPrinter) Load named classes defined inside a method
(PrettyPrinter) when you initialize a field value, you would like the values ( = "stuff") to line up on the =.
(PrettyPrinter) Separate field components by extra spaces
(PrettyPrinter) Improve the stack trace dialog when there is an error in pretty printing the file
(PrettyPrinter) Single indent on unexpected end of line
(PrettyPrinter) @version@ are not javadoc tags, but input for Ant. Leave them on the same line as @version
Version 2.5.38
Added the Extract Interface refactoring
Provides a key and a navigation pane for the command line interface and the JBuilder interface
(PrettyPrinter) fixes a bug where a /* C style comment */ appears on the same line as source code, and the code before the comment is deleted (with appropriate settings in the pretty.settings file)
Version 2.5.33
Added "extract method" and "move method"
Version 2.5.23
(PrettyPrinter) Gives the user more control over the placement and formatting of comments
(PrettyPrinter) Allows the user to specify the directory containing the settings files
(PrettyPrinter) Indents the variable name in fields.
Version 2.5.0
Added "push up abstract method" and "push down method".
Fixed bugs related to renaming classes that are exceptions and renaming classes that are only referenced inside a anonymous class
Added zooming
Added moving multiple classes as a group
Version 2.4.42
Added push up method
Improved the movement of the scroll bars in the UML diagram
(JBuilder only) now only loads the information to draw the UML diagrams when the user first asks for this feature.
Therefore it will not slow down the speed at which JBuilder loads. However, if you had a UML diagram open when you exited JBuilder, the refactory will load the required information as JBuilder starts - and will make JBuilder seem to load much more slowly.
(PrettyPrinter) Adds better space control after keywords and in expressions.
(PrettyPrinter) Places the catch and else statements on the same line as the closing brackets
Version 2.4.34
(PrettyPrinter) Adds the ability to insert a space before the @ symbols in the javadoc tags
(PrettyPrinter) sorts the import statements
Version 2.4.31
Added JBuilder support
Fixed a bug with repackaging where the input to the method was a constructor for a type
Version 2.4.24
"push up field" and "push down field"
Fixed a parser error where the class has a dynamic initializer
Version 2.4.21
Added "remove class"
More unit tests for "add abstract parent class"
Version 2.4.18
Added the "add abstract parent class" and the "add child class"
Added additional functional tests for Rename class, because of bugs found with renaming a class that didn't include a factory method.
(PrettyPrinter) Add a standard header for the file, which replaces the current header if it is present
(PrettyPrinter) Fixes a problem for Linix/Unix users, that the directory containing the settings was sometimes referenced with capital letters, and other times referenced with lower case letters
Version 2.4.10
The system is now able to load classes with static initializers.
These show up as methods named ***Initializer*** in the class diagrams.
(PrettyPrinter) Adds more control of javadoc comments - like minimum and maximum number of characters to wordwrap and the number of *s at the beginning and end of the javadoc comment
(PrettyPrinter) Allows user to control whether there is a space after the cast command
Version 2.4.6
(PrettyPrinter) Fixes bug that would delete javadoc comment for @param and @exception tags
Version 2.4.5
(PrettyPrinter) Adds javadoc for JUnit methods
(PrettyPrinter) Adds class javadoc minimum levels
(PrettyPrinter) Fixes for the line number tool so that multiple files can be loaded
Version 2.4
The GUI has been improved.
Selection of the current class if it is not already been selected
Alphabetized list of packages to move the current class to
Anything related to renaming a class.
Adds intelligent javadoc for run and main methods
Adds more control as to when to insert the javadoc comments
Provides a plugin for JBuilder and Symantec's Visual Cafe.
Version 2.3
adds intelligent javadoc for getter and setter methods.
Version 2.2
Fixed some bugs with the repackage refactoring
These are associated with not noticing the class because it was only used in an allocation expression.
A second bug where the entire package path is used to specify a type has also been fixed.
Fixes a bug with allocating and initializing arrays of objects
Version 1.2
It also is much more robust using javacc's static parser rather than trying to create a separate parser for each file.
Indent with tabs or other characters
Specify the number of blank lines between methods.
Reformats the HTML in javadoc comments
Bug Fix: the parser failing with a null pointer exception on some files.
Bug Fix: it does not include the \r when the result is passed to Elixir.