Author:  Mike Atkinson Software
Release Notes
Download
Contributors

Previous Page

Software::JRefactory - Release Notes

Next Page

  • Version 2.8.10 (Final respin)

    A serious bug was reported in the previous release makes the Coding Standards functionality unusable in some circumstances, this should fix it.


  • Version 2.8.09 (Final)

    This is the final release in the 2.8 series.


  • Version 2.8.08 (RC2)

  • Version 2.8.07 (RC1)

  • Version 2.8.06
    • Fix various problems with the release, it should now build from the "full" release.
    • Try and fix the NetBeans JRefactoryModeule.jar, still not working.
    • A few minor UI tweeks.
    • Remove dependences on jEdit from classes outside the ide/jedit heirarchy.
    • Added a few missing files to CVS.
    • Fixed regression where single line comment at end of file causes a crash.

  • Version 2.8.05
    • Added checkOnSave option to allow Coding Standards checking every time a buffer is saved.
    • Fixed lots of PMD regressions
    • Fixed JRefactory Pretty Printer bugs:
    • 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.
    • Fixed regression in RenameParentVisitor.
    • Fixed several more PMD regressions.

  • Version 2.8.03
    • bug fixes mainly to the Coding Standards part.

  • Version 2.8.02
    • Major additions:
    • (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.
    • Fixed JRefactory bugs:
      • 651793 Failure to parse sdk1.4.0 src.jar
      • 687798 Failed compile under JDK 1.4.1
      • 688026 @tags strange reformating
      • 688031 @tags strange reformating
      • 692550 Refactory failes parsing 1.3.1_03's src.jar
      • 692568 Refactory failes parsing 1.3.1_03's src.jar
      • 705820 Parser failure loading JDK 1.4.1 src.zip
      • 761890 C style comment on program line

  • Version 2.7.02
    • (JDK1.5) More work on parsing the JDK 1.5 new language features.
    • (PrettyPrinter) added these tags (with defaults) to pretty.settings; they control the Javadoc comment output for "enum" types.
      enum.descr=Description of Enumeration
      enum.tags=author
    • Fixed a JRefactory bug:
      • 758816 "-" sign after a cast fails to parse.

  • Version 2.7.01
    • JRefactory bugs fixed:
      • 574070 Error pretty print (EOF on comment)
      • 583264 else.start.line bug
      • 605626 Pretty break code by removing wrong {}
      • 616419 Selective word wrap for JavaDoc
      • 641473 PrettyPrinter adds @param in wrong place
      • 679496 PP removes spaces in HTML in JavaDoc.
      • 693745 Array initializer indent carries over to rest of code.
      • 703771 static public/private initializations create compiler error
      • 722293 surprise.return=param is broken (think this is fixed but have no test case)
    • JEdit bugs fixed:
      • 469005 JavaStyle does not work correctly
      • 549394 JavaStyle Neverending Work
      • 551481 JavaStyle javadoc comment error
      • 570143 JavaStyle wrong indentation
      • 692442 JavaStyle doesn't space out "switch" keyword properly
      • 728002 JavaStyle Doesn't handle // comments inside /* */
    • There is one JRefactory pretty printing bug left:
      • 693738 Header re-inserted when imports re-ordered, I've partly fixed it.
    /*
     * header
     */
    import java.util.*;
    import java.sql.*;
    becomes after pretty printing:
    import java.sql.*;
    /*
     * header
     */
    import java.util.*;

    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:
      sort.1=Type(Field, Constructor, Method, NestedClass, NestedInterface, Initializer)
      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:
      sort.1=Type(Field, Main, Constructor, Method, NestedClass, NestedInterface, Initializer)
    • (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.
    • Bug Fix: keeps comments in around {}
Previous Page

Last Modified: October 8, 2003

Previous Page