JDE 2.2.9.1 *************************************************************** * PLEASE READ * *************************************************************** * * * This release requires semantic 1.4beta13 (or later), * * speedbar 0.14beta2 (or later), and * * eieio-0.17beta3 (or later). You can obtain all three * * packages at http://cedet.sourceforge.net * * * * This release requires version 1.2.2 (or later) of the * * JDK. * * * * This release also requires avltree.el, which is part of the * * elib 1.0 package. You can obtain elib at the JDE web site * * in compressed tar (http://jdee.sunsite.dk/elib.tar.gz) * * or zip (http://sunsite.dk/jde/elib.zip) format. * * * * JDEbug runs on Windows 2000 only if Service Pack 2 (or * * later) is installed. * * * * If syntax-coloring does not work, download and install * * overlay-fix.el from the semantic web site. * * * *************************************************************** * Fixed regression bug in bsh-exit command that caused a Lisp error if the ant package is not loaded. * Checkstyle bug fixes and enhancements: - Fixes bug in handling of to-do option. - Fixes bug in handling of the header file check option. - Adds customization variable jde-checkstyle-properties-file. - Now uses jde-checkstyle-classpath if nonnil. JDE 2.2.9 * Macintosh OS X compatibility fixes: * removed tools.jar from the beanshell classpath when running the OS X (= darwin) version of Emacs as the classes that it contains are found in classes.jar on the Macintosh * look for the JDK programs java, javac, appletviewer, etc., in /usr/bin/ when running the OS X (darwin) version of Emacs. Fixes thanks to Andrew Hyatt and Andi Vajda. * Fixed bug in definition for XEmacs of beginning/end-of-line functions that caused a Lisp error when both emacs-wicki and the JDEE are loaded in the same session. Thanks to Daniel Serodio and Eric Ludlum. * Use file-truename in jde-reload-project-file function to eliminate symbolic links and hence reloading of the same project file referenced by different symbolic paths. Thanks to Mark Foltz. * Run command now recognizes and colorize classes that have a an underscore in their name in the stack trace. Thanks to Laurent Martelli . * To minimize JDEE startup time, the JDEE now defers loading of the following Lisp packages until they are actually used: - Ant interface (jde-ant.el) - Make interface (jde-make.el) - Checkstyle interface (jde-checkstyle.el) - Javadoc generation and checking (jde-javadoc.el) - Source code statististics (jde-stat.el) - EJB code generation (jde-ejb) To permit deferred loading, the JDEE now includes a new Lisp package, autoload.el, that contains autoload forms for commands whose code is to be loaded on demand. * This release defers checking the speedbar's version until it is used. * Fixes regression where the JDEE was not honoring jde-project-context-switching-enabled-p when loading Java files. Thanks to Andy Piper. * Debug cursor now works in files that do not belong to a package. Thanks to Andy Piper. * Adds a menu entry to JDEbug to toggle the stack display. Thanks to Andy Piper. * Fixed JDEBug bug where the debuggee application launcher was downcasing the first vm command line argument. Thanks to Eric Brown for this fix. * Fixed bug in completion caused by having jde-complete-display-qualified-types set to nil. This was causing completion of complex expressions to break. i.e this.foo. * Fixed bug in jde-compile-finish-kill-buffer that will remove the compilation buffer even if there are compilation errors. * Added templates to the JDE New menu for creating EJB session and entity beans. Thanks to David T. Smith for contributing and maintaining the templates. * XEmacs compatibility fix: the JDEBUG get threads command now invokes frame-highest-window instead of frame-first-window on XEmacs. Thanks to Michael Duvigneau. * Fixed bug in jde-compile-finish-kill-buffer that removes the compilation buffer even if there are compilation errors. * Added missing -encoding switch for compiler encoding command line argument. Thanks to Toru Takahashi. * Fixed bug in jde-ant-build caused by a nil ant target. * Quote path of etags executable in jtags script to permit inclusion of spaces on Windows. Thanks to Jens Barnow. * Updated to support the cygwin version of Emacs. Thanks to Klaus Berndl. * Adds a jde-make-finish-hook variable that allows you to specify functions to run when make finishes. By default the variable is set to functions that update the speedbar and the completion cache. Thanks to Sandip Chitale. JDE 2.2.9beta12 * Recompiled the JDEE's Java classes, using the JDK 1.3.1 compiler instead of the 1.4.0 compiler as was done in beta 11. This seesm to fix a problem where completion would not work under JDK 1.3.1 * Added jde-devel-debug customization variable intended to enable features that facilitate development of the JDEE. * Fixed bug that buried error messages from the interface wizard. JDE 2.2.9beta11 * Adds a Check Style command (M-x jde-checkstyle) command to the JDE menu. This command by default checks the current buffer for conformity to the Java coding standard estabished by Sun Microsystems. Execute jde-checkstyle-customize to customize the command to support your own coding standard. This command is based on Oliver Burn's CheckStyle utility and Markus Mohnen's JDE interface to CheckStyle. * The JDEE now waits for the BeanShell startup message on Windows. Previously, it returned possibly creating subtle timing bugs. * Fixes strack trace highlighting of classes that contains underscores. Thanks to Laurent Martelli * Fixes bug in jde-import-find-and-import that failed to get the correct import for an inner class. * Fixes jde-ant to use the correct jvm. Thanks to Andrew Hyatt * Fixes a bug in jde-normalize-path whereby it was expanding a relative path even when jde-resolve-relative-paths-p was false. * Adds new method jde-gen-try-catch-wrapper and jde-gen-try-finally-wrapper. This is a modified implementation of the qflib-make-try-wrapper. * Fixes bug in jde-wiz-extend-abstract-class. Protected methods were not being added to the skeleton . * Modifies jde-ant-build-hook to take a buffer and a message as parameters. IMPORTANT: You will need to update any current hooks. Adds to the the jde-ant-build-hook the same hooks that jde-compile-finish-hook runs. * Fixes jde-ant-build to avoid displaying the java.lang.SecurityException stack trace at the end of a sucessful build when using ant 1.5. * Fixes jde-find-class-source-file to handle inner classes correctly. This method is used to step while debugging. * Fixes bug in jde-run-etrace commands to parse inner classes correctly. * Adds a jde-compile-finish-hook function that kills the compilation buffer if no compilation errors occured. Thanks to Jack Donohue . * Fixes bug in completion that was not appending all the thrown exceptions to the possible completions. * Fixes bug in jde-db-option-verbose when set to (t nil nil). It was appending -v to the arguments instead of -verbose:class. Thanks to Hervé Bitteur for diagnosing this problem * Fixes bug in jde-completion. Object obj; if (something) obj = new Ojbect(); else obj = new Object(2); obj. In this case, completion was seeing that obj belong to the "else" class!!! Thanks to Christian Matuszewski for reporting this bug. * This release improves highlighting of HTML tags that span multiple lines in javadoc comments. When fontifying inside comments, the JDEE checks that matching occurs within a single comment. Thanks to David Ponce. * There is a new option `jde-javadoc-check-undeclared-exception-flag'. When non-nil, jde-javadoc checks undeclared exceptions (extra @exception tags not found in the throws clause) to see if they are implicitly declared (that is inherit from java.lang.RuntimeException). If so corresponding exception tags are just kept without signaling an When jde-javadoc can't determine if an exception is implicitly declared it always keep the @exception tag! When `jde-javadoc-check-undeclared-exception-flag' is nil (the default) jde-javadoc works like in previous version. It doesn't check anything: all extra @exception tags are kept and errors (maybe) are reported. Thanks to David Ponce. * JDE->Find->Symbol Definition now works with relative paths in jde-sourcepath. Thanks to Phillip Lord for reporting this bug. * Fixed bug in interface implementation code for class templates. Thanks to Phillip Lord for reporting the bug. * Conditionalized the :set-after option out of jde-jdk for versions of Emacs earlier than Emacs 21. This is so users will not need Emacs 21 to run the JDEE. Thanks to Yuji Yamano. * XEmacs compatibility fix: set directory sep character to be a forward slash for project files. This fixes a project file save bug that corrupted project files under some circumstances. Thanks to Hanson Char for reporting and diagnosing this bug. JDE 2.2.9beta10 * XEmacs compatibility fix: allow user to set bsh-startup-timeout and bsh-eval-timeout to floating point values and to nil (no timeout) to accommodate an apparent bug in the way accept-process-output works on the Windows version of XEmacs. * XEmacs compatibility fix: removed unsupported :set-after clause from the definition of jde-jdk. The result may be that JDK registry settings may not persist in some cases on XEmacs. I will restore this clause as soon as XEmacs supports it. * A new group-of-rules option for jde-import-sorted-group allows you to specify that the import wizard sort groups of imports in the order that the groups are defined by jde-import-group-of-rules. Thanks to Michael N. Lipp . * This release adds the File->JDE New->Interface command which generates a skeleton interface. Thanks to Michael N. Lipp . * On Windows, the JDEE now supports spaces in paths passed as arguments to compilers, virtual machines, and other processes started by the JDEE. * Wizards that generate skeleton methods now generate meaningful parameter names based on the parameter type or the name of the method in the case of get/set methods. Thanks to Ole Arndt. * Adds constructor information to completion. * The package wizard now considers the directories from jde-sourcepath when trying to derive a package name. Thanks to Michael N. Lipp . * The JDEE's code generation wizards for implementing interfaces, abstract classes, etc., now use customizable templates to generate skeleton methods instead of hard-wired skeletons. The templates used by the wizards are jde-gen-section-comment-template, jde-gen-method-template, jde-gen-listener-registry and jde-gen-event-source-fire-method-template. These templates generate code that is similar in format to the hard-wired skeletons previously generated by the wizards. You can now change the format of the generated code by customizing the templates (use the customize-variable command to do this). Thanks to "Dr. Michael Lipp" for proposing and implementing this improvement. * Adds JDE->Find->Symbol Definition command. (jde-open-class-at-point). This method uses the same functionality that jde-complete to open the source file for the symbol at point. Thanks to Berndl Klaus and Javier Lopez. * The JDEE now imports the superclasses of classes that it creates. Thanks to Timothy Babin * Adds a new completion command, jde-complete, that delegates completion to the command specified by the new customization variable, jde-complete-function. The default value of this variable is jde-complete-menu, which displays completions in a popup menu. You can also set the variable to jde-complete-minibuf, which displays completions in the minibuffer, to jde-complete-in-line, which allows you to cycle through possible completions in place, or to a custom completion function that you supply. This release also rebinds C-c C-v C-. to jde-complete. * Renames jde-db-source-directories as jde-sourcepath. This reflects the fact that this variable has grown beyond its original usage to find source files for the program being debugged. * Added jde-show-superclass-source and jde-show-interface-source, which find the source files for the super class and any one of the interfaces of the current class. Thanks to Sandip Chitale * Fixed regression error in jde-run command that prevented use of the prefix argument to cause the command to prompt the user for the main class. * Patched jde-save-close-buffer and jde-save-variable to use find-buffer-visiting to find the buffer containing the prj.elf file instead of looping through the buffer list. JDE 2.2.9beta9 * Replaces the customization variable jde-lib-directory-name with the variable jde-lib-directory-names. The new variable allows you to specify a list of regular expressions that match names of directories containing jar or zipped class files. If jde-expand-classpath-p is nonnil and the JDEE finds directories in jde-global-classpath that match these names, it replaces the directories with the paths to the jar/zip files they contain. This eliminates the need for you to include jar/zip file paths explicitly in jde-global-classpath. * Adds two new options to the Jdb menu: - External Process->Attach to Attaches jdb to an external process that is already running. - External Process->Listen for Starts jdb and waits for an application to connect to jdb. * Adds the variable jde-run-option-connect-to-debugger. This option causes the JDEE to start an application with the command-line options needed to permit connecting the application to jdb or JDEbug, using the Attach to or Listen for commands. * Adds the variable jde-db-option-connect-address. This option specifies the address that the JDEE uses to connect jdb (and ultimately JDEbug) to an external process. * Fixes completion bug. Completion was ignoring project changes. i.e. classpath. * Adds the following enhancements to the JDEE's expression search functionality. - A new customization variable, jde-find-granularity, that allows you to specify the granularity of the search (character, word, or line). - A new command, JDE->Find->Expression... (jde-find-dlg), that allows you to set all search options interactively in a popup dialog buffer. * jde-submit-problem-report command now includes versions of required packages. * Adds jde-ant-build-hook, this hook gets run after the build is done. Thanks to Kevin Burton. * jde-run-executable command now normalizes the path of the executable. This allows the use of relative addressing and environment variables in the path. * Fixes spacing bug in jde-gen-class-buffer-template. Thanks to Petter Mahlen. * Stops buffering the output of the ant and compiler server. * Adds the option jde-import-insert-group-names. If this variable is nonnil, the jde-import-organize command inserts a group name comment before each group of' imports. Thanks to Brian Paulsmeyer and David Ponce. * Fixed reference in JDEbug's stack up and down commands to obsolete function jde-dbo-show-line. * Updated jde-file-to-url to insert `localhost' into URL. Thanks to "Max Rydahl Andersen" . * Adds jde-import-auto-collapse-imports variable. Customizing this variable to a nonnil value causes the JDE to run jde-import-collapse-imports after importing a class. Thanks to "Max Rydahl Andersen" . * Refactors jde-ant.el so that jde-ant-build can use true interactive arguments. Thanks to Kevin Burton. * Adds support for interfaces to the completion framework. Thanks to Petter MÃ¥hlén * Fix bug that caused the JDE to insert multiple import statements in the buffer when the same class occurs in one more place in the classpath. Thanks to Stephen Molitar. * Changed docstring for jde-import-find-and-import to note that the classpath does not need to include jars implicitly included by the jvm. * Added jde-open-source-for-symbol functon. This function displays source for a symbol. The symbol may reference an object, a class, or a method or field. If the symbol references a class, this function displays the source code for the class. If the symbol references an object, this method displays the source code for the class of the object. If the symbol references a field or a method, this function displays the source code for the class of the object of which the field or method is a member. Eventually this function will be enhanced to position the source code at the point where the method or field is located. Thanks to "Max Rydahl Andersen" . * Modified jde-build function to use call-interactively to call the build function. JDE 2.2.9beta8 * Adds a hook variable, jde-project-hooks. Use this variable to specify functions to be run when the JDEE switches to a new project. The JDEE runs the functions after loading the project file. Therefore, the project itself can define the functions to be run. * Adds a Clear Breakpoints command to the JDE's jdb interface. This command clears all breakpoints set in the current jdb session. * Now defines three breakpoint marker colors: green for a specified breakpoint, yellow for a requested breakpoint, and red for an enabled breakpoint. The JDEE colors a breakpoint line green when you execute the Toggle Breakpoint command and the debugger is not running. The JDEE changes the color to yellow when it sends a request to jdb to set a breakpoint at the specified line. The JDEE changes the line's color to red when it receives a notification that from jdb that the breakpoint has actually been set. * The debug application command now requests jdb to set all specified breakpoints at the beginning of a debug session. * The debug application command now changes the color of all breakpoints to green (specified) at the end of a debug session. * Use overlays/extents to record location of breakpoints in a buffer. * Changed the name of the println and toString templates to println and to-string-method, respectively, thereby eliminating the spaces that were in the previous names. * Fixed XEmacs compatibility bug that caused the toggle breakpoint command to signal an error that it could not find the source file in jde-db-source-directories. * jde-javadoc-nonterminal-at-line preserves current tokens when the lexer fails (when there is an unclosed block or an unterminated string for example). This enhancement works only with semantic 1.4 beta 13 (and above). With older versions jde-javadoc-nonterminal-at-line continues to work as previously. Thanks to David Ponce. * Fixes bug in the method jde-compile-classpath-arg (jikes) that will cause an error when appending the path for rt.jar to a nil classpath. * Fixes bug in jde-bug-display-loaded-classes that would dump all the class information into the *Messages* buffer. * Now jde-run-etrace-prev and jde-run-etrace-next allow you to move through the whole stack trace. It behaves as compilation-next-error. * A Jdb menu now always appears in source buffers when jde-debugger is set to jdb or old jdb. * Fixed two JDEbug menu related bugs. The menu now always appears when jde-debugger is set to JDEbug. Also, keybindings now work on XEmacs. * Fixes bug that caused JDEBug not to set saved breakpoints when attaching to an external process. * Fixes bug in jde-ant, caused by choosing Script as the jde-ant-invocation-method. The jde-ant-program was not being used. * Removes obsolete method jde-run-set-vm and jde-run-set-vm-w from jde-run.el. Fixes references to the variables jde-run-java-vm and jde-run-java-vm-w. JDE 2.2.9beta7 * Option dialogs now open with cursor positioned over OK button. * Fixed many references to undefined variables that were generating compiler warning messages and possibly bugs in jde-dbs.el. * Removed obsolete function jde-dbs-listen-for-debugger-socket from jde-dbs.el. * Fixes bug where the JDE was inserting a null string in the javac argument list when the user did not specify arguments interactively, which is normally the case. This bug caused compiling with the javac executable to fail on XEmacs. * Compile server now runs jde-normalize-path on the path of the path of the source file. This ensures that the path will be converted to a Windows path on the Cygwin version of XEmacs. * Updates jde-cygwin-path-converter-cygpath to minimize time- consuming calls to the external cygpath command. This function now invokes cygpath only if the cygwin path does not begin with /cygdrive and has a root that has not previously been converted. * The state of the local variable tree in JDEBug persists when stepping. * Adds jde-ant-buildfile-arg-history variable. XEmacs compatibility fix. Thanks to Dirk Husemann. * Fixes jde-ant-target-regexp to match the name attribute when it is in a different line than the target. i.e. * Removed the customization variables, jde-bug-jdk-directory and jde-bug-vm-includes-jpda-p. These variables are no longer needed as the JDE can get the required information from the jde-java-version and jde-get-jdk-dir functions introduced in previous releases. * Renamed JDEbug buffers to conform to Emacs convention for special buffers (buffers that do not correspond to files). Thanks to Kevin Burton. * Toggle breakpoint command signals an error if you attempt to set a breakpoint in a buffer that is not a Java source buffer or that is not in jde-db-source-directories. Thanks to Kevin Burton. * Fixed typo in debug options error message for Jikes. * Added a JDK API option to jde-help-docsets and made it the default. This option specifies the API doc for the currently selected JDK (specified by jde-jdk, $JAVA_VERSION, or $PATH). * For Emacs 21.1, option dialogs no longer delete the option window after the user selects OK or Cancel. This is to avoid a bug in the Emacs 21.1 version of exit-recursive-edit. JDE 2.2.9beta6 * Modifies lisp makefile to check to ensure that the package directories exist and to load all required JDE files before compiling. I hope that the latter change will prevent compile errors caused by compiling files that depend on macros that are not defined because their files are not loaded. * Fixed typo (jde-gen-signature-padding-3 should be jde-gen-method-signature-padding-3) in jde-gen.el. Thanks to David A. Ventimiglia. * Modifies `jde-ant-build' to get the ant home from the environment variable ANT_HOME if jde-ant-home is not set. * Modifies `jde-dbs-proc-display-debug-message' to bring up a buffer when a non-nill value is passed to the method. The idea is to show the message in the minibuffer whenever the Process buffer is not showing up, and for methods like display variables be able to bring the buffer up. * Fixes bug in JDEBug caused when trying to display empty arrays. * Fixes `jde-bug-show-locals-buf' and `jde-bug-show-cli-buf' to keep the current source window. * Modifies `jde-bug-show-locals-buf' to display the local variables without doing a M-x `jde-bug-toggle-local-variables' * Modifies `jde-bug-show-threads-buf' to display the stack info without doing M-x `jde-bug-toggle-stack-info' * Adds a new option `jde-help-use-frames' to customize the behavior of the functions `jde-help-symbol', `jde-help-class', and `jde-help-class-member'. A non nil value causes this functions to display the javadocs using frames. * jde-java-version now returns the version of Java on the system command path when the user does not specify the version and the Beanshell is not running. This eliminates the infinite recursion caused by starting the Beanshell to find the version, which is needed to start the Beanshell. * Adds a new option `jde-check-version-flag' to customize the behavior of the new `jde-check-versions' feature. When `jde-check-version-flag' is non-nil `jde-check-versions' will check for correct versions of the CEDET libraries required by the JDE. If nil it only checks if these libraries are available. * Adds version checking to jde for speedbar, semantic, and eieio. If the wrong version of one of the packages is installed, it shows an error to the user and stops loading jde. * Moves all the `jde-mode' code depending on Semantic into `jde-parse-semantic-default-setup' which is now run as a `semantic-init-hooks' ensuring that at this point the buffer is ready for parsing. This solves a nasty problem of synchronization between `jde-mode' and Semantic initialization. This problem was particularly annoying in XEmacs where `jde-mode' buffers were not parsed the first time. In some rare conditions the problem occurred with Emacs too. Thanks to David Ponce. JDE 2.2.9beta5 * Fixes bug caused by doing case insensitive searches in the method jde-parse-valid-declaration-at. i.e. String level = argConfig.getProperty(OPTION_LOG_LEVEL); Level temp = Level.parse(level.toUpperCase()); ^ Looking for the type of Level returned String erroneously. * Enhanced jde-help-symbol to handle static calls. i.e. ResourceBundle.getBundle * This release supports but does not require semantic 1.4 beta 12. Semantic 1.4 beta 12 Semantic provides the following new features: - `global-senator-minor-mode' to automatically turn on senator minor mode for all semantic enabled buffers. - `semantic-auto-parse-mode': new minor mode to automatically re-parse modified semantic enabled buffers. Also `global-semantic-auto-parse-mode' can be used to automatically turn on this minor mode for all semantic enabled buffers. Semantic auto parse mode is based on an idle timer instead of buffer changes tracking to avoid the excessive overhead of using the `after-change-functions' hook. The following options wcontrol the semantic auto-parse behavior: - `semantic-auto-parse-idle-time': time in seconds of idle time before auto-reparse. It defaults to 4 seconds. - `semantic-auto-parse-max-buffer-size': maximum size in bytes of buffers automatically reparsed. It defaults to 0 so all buffers are reparsed regardless of their size. Thanks to David Ponce. * Fixes bug using Ant target completion caused when jde-ant-enable-find is not enabled. * Adds completion of the possible methods to overwrite jde-wiz-override-method. * Fixed typo in classic mode vm command line switch. * Restored jde-db-classic-mode-vm option. * Fixed bug in jde-java-version. Thanks to SEBASTIEN VAUCLAIR . * Revamps code generation templates to make them more consistent among themselves and with Java coding conventions. Specific changes include: - Generates consistent formats for method signatures. - Strips prefix and suffix of variable names (if configured) - Adds jde-gen-conditional-padding-1 to -3 to allow for configurability of the jde-gen-cflow-* templates - Changes many default templates to conform to Java code conventions - Fixes many subtle inconsistencies in templates when used with different values for jde-gen-comments and jde-gen-k&r - All templates now have consistent coding structure and indentation, as well as reduced insertion of white-space. - Modifies Javadoc comments to be less descriptive of implementation (e.g. instead of "Get the value of _flag", now is "Get the Flag value") Thanks to Greg Fenton. * Corrected typo in name of cflow tempo fori in JDE User's Guide. Thanks to Greg Fenton. * Fixes off-by-one bug in jde-wiz-update-implements-clause. Thanks to Greg Fenton. * fixed description mistake in jde-wiz-get-name. Thanks to Greg Fento. * Emacs 21 compatibility fix: added support for browse-url-new-window-flag variable (replaces browse-url-new-window-p in Emacs 21). * Adds a JDE->Code Generation->Wizards->Implement Event Source command. This command generates code to register and notify listeners for an event. Thanks to Stephane . * Adds support for invoking Ant directly from java or via the ant script. Thanks to Douglas WF Acheson . * Modifies jde-help-symbol to position the javadoc at the point where the method or field is documented. * Modifies jde-help-class-member to use customization variable jde-complete-use-menu. To use the mini-buffer for completion when this variable is nil. * Fixes bug in jde-help-class-member caused when jde-complete-insert-method-signature is nil. * Changed jde-option-dialog to use recursive-edit mode to emulate a modal dialog. Now the show dialog method enters recursive edit mode thereby suspending the currently executing command until the user selects the OK or Cancel button on the dialog. Selecting the OK button on the dialog causes the dialog to update its :selection field to the option chosen by the user. Selecting the Cancel button sets the :selection field to nil. * The new modal behavior fixes a bug caused when jde-option-dialog is invoked by jde-wiz-implement-interface to permit the user to select among interfaces of the same base name. * Adds JUnit supports Adds templates jde-gen-junit-test-class and jde-gen-junit-add-test-to-suite * Adds the customization variable jde-compile-option-hide-classpath. A non-nil variable causes the classpath value in the compilation output to be shown as ... . i.e java -classpath ... -g Test. * Replaces the customization variables jde-run-java-vm and jde-run-java-vm-w with the variable jde-vm-path. If this variable is a valid path, the JDE uses this path to find the vm used to run Java applications. If this path is the empty string, the JDE runs the vm included with the version of the JDK specified by jde-jdk, or if jde-jdk is nil, the first vm on the system command path. This change is part of an ongoing enhancement of the JDE to permit easy switching of JDK's. Now jde-jdk specifies both the compiler and the vm used by the JDE. * Fixes bug that did not complete methods for variables names that start with the '$' character. * Adds support auto completion of Ant targets in mini-buffer. See jde-ant-complete-target and jde-ant-target-regexp. Thanks to Stephen Molitor. * Ant bug fix: now inserts space between target and rest of the command. * Extends the effectivity of the jde-gen-comments flag to all JDE control flow templates. Thanks to Robert Mecklenburg . * Adds customization variable jde-complete-use-menu. A nil value causes `jde-complete-at-point-menu' to use the mini-buffer for completion. Thanks to Max Rydahl Andersen . JDE 2.2.9beta4 * Compile command fix: Removed space in front of -g option that made it unrecognizable to compiler. Thanks to bert van vreckem. * Cygwin/XEmacs compatibility fix: Now uses mswindows-cygwin-to-win32-path function if defined. Thanks to Andy Piper. * XEmacs compatibility fix: Beanshell buffer now correctly converts new lines (eliminates ^M) on Windows. Thanks to Andy Piper. * Adds the customization variable jde-import-auto-sort-function. This variable allows you to specify the function used by the JDE to sort imports. Thanks to Hugh Emberson. * Bug fix: compile command once again supports the jde-read-compile-args option. Thanks to Luis Novais for reporting this bug. * Fixed bug in jde-java-version command. Thanks to Jim Davidson. * Fixed Lisp error that occurred when the default setting for jde-compile-option-debug is in effect. * XEmacs compatibility fix. Fixed undefined variable and function Lisp errors that occur when trying to compile a Java source file. * XEmacs compatibility fix. Fixed bug that produced a Beanshell error when trying to run the compile server in XEmacs. * XEmacs compatibility fix. Fixed bug that caused the JDE to append "(jde-save-variable " to every line of a prj.el file. This bug was due to a conditional expression that depended on the file sep char being a forward slash when by default it is a backslash on the native Windows version of XEmacs. * XEmacs cygwin compatibility fix. Fixed bug in the code that builds classpaths that garbled the resulting classpath. * Fixed all warning produced by compiling jde.el in both Emacs and XEmacs. Thanks to Jeff Grief and Mike Wooley for showing me how to do this. * Fixes make's error. * Adds support for jdk1.4. * Fixes logic error when using jde-gen-k&r, it was backwards in the following methods: jde-wiz-generate-interface, jde-wiz-override-method-internal, jde-wiz-delegate, jde-wiz-generate-abstract-class, jde-wiz-generate-interface, and jde-wiz-generate-abstract-class. * Fixes bug the caused the jde-ant-build and jde-ant-projecthel commands to fail when there is not a project file defined. JDE 2.2.9beta3 * Now uses the version of javac shipped with the JDK specified by jde-jdk. * Now generates the correct command-line arguments for the various versions of javac. * Now includes the +E option if jikes is the selected compiler. * Fixes bug in jde-get-jdk-dir that caused it to return an incorrect path when looking for the directory on the PATH environment variable. * Fixed compile error that occurs when jde-compile-option-debug is set. This was due to the -g option being wrapped in an extra list. Thanks to David Ponce. * Now includes rt.jar in the classpath when jikes is the compiler. Thanks to David Ponce. * Fixed bug in jde-help-browse-jdk-doc, which was calling jde-normalize-path with no arguments, when jde-jdk-doc-url did not start with http://, file://, or is equal to "". Thanks to Javier Lopez. * Fixed bugs in jde-java-version command. * Fixed bug that caused the in-buffer verion of completion to throw an error for the first completion. Thanks to Jason Rumney. JDE 2.2.9beta2 * The jde-build-ant-command now quotes all path arguments to accommodate Windows. This change was submitted by "Kevin Jones" . I don't use Ant so I've not tested this change. * Replaced the customization variable jde-db-debugger with jde-debugger to be consistent with jde-compiler. JDE 2.2.9beta1 * The completion methods now takes into account default accesss level. Completion now includes protected and package methods from super classes. * The JDE's Java code has been enhanced to speed lookup of qualified class names and project switching. These changes require version 1.2.2 or later of the JDK. Thanks to Eric Friedman. * Automatic parsing of Java buffers now reparses only that portion of a buffer that has changed whenever possible. This should speed up reparsing of buffers after most changes. Note that this change requires semantic 1.4beta10 (or later). Thanks to David Ponce. * This release uses a new algorithm for determining when to reparse a buffer. When the buffer is modified `jde-parse-buffer-changed-hook' check the auto-parse timer to see if the auto-parse task is about to be triggered (< 2 secs). If so it delay the triggering of auto-parse (+ 10 secs) to let you finish typing before doing a re-parse. And so on. Thanks to David Ponce. * This release fixes the `font-lock-add-keywords' problem reported by Klaus Berndl . Thanks to David Ponce. * Completion methods now places the cursor in between parenthesis when the method contains parameters. * JDEBug does not split the frame in 3 windows anymore. * JDEBug does not retrieve the local variables and the stack information by default. * Adds the commands jde-bug-toggle-local-variables and jde-bug-toggle-stack-info. The first command enables retrieving the local variables while stepping using JDEbug, and the latter enables retrieving stack information. * This release adds a set of customization variables intended to facilitate switching from one version of the JDK to another. - jde-jdk-registry Specifies the versions and locations of the JDKs installed on your system. This variable determines the set of legal values for the jde-jdk variable (see next release note). - jde-jdk Specifies the location and version of the JDK currently being used by the JDE. The customization buffer for this variable displays a set of radio buttons that reflect all the registered JDKs on your system. You can thus switch from one registered JDK to another simply by selecting the button of the desired JDK. - jde-java-environment-variables Specifies the environment variables that specify the default location of the current JDK. The default names of the variables are JAVA_HOME and JAVA_VERSION. * Adds the command jde-get-jdk-dir. This command returns the root directory of the JDK currently targeted by the JDE. The target JDK is the JDK specified by jde-jdk variable, of if this variable is null, by the jde-java-environment variables, or if these are not defined, by the PATH environment variable. * Adds a new command, jde-java-version, that returns the version of Java being used by the JDE. This command returns the version specified by the jde-jdk variable, or if this is not defined by the JAVA_VERSION environment variable, or if neither of these are defined by the "java.version" property of the vm used to run the BeanShell. Note that in the latter case, executing this command causes the BeanShell to be launched if it is not already running. Future versions of the JDE will use this command to adapt to differences among JDK versions, for example, to set JDK-version-specific command line options required to launch a process in debug attach mode. * Completion methods now shows the exceptions that the method could throw. Thanks to Petter MÃ¥hlén [petter.mahlen@chello.se] * Adds a Beanshell-based "compile server" for compiling Java programs. The compile server uses the same Java compiler as javac but it uses the Beanshell to invoke the compiler instead of starting a new vm just to do the compilation. This avoids the vm startup time that accounts for most of the time spent by javac on compiling a class. The result is lightening fast compilation of your classes. To use the compile server instead of javac to compile your classes, set jde-jdk-directory to the root of the JDK that you are using to develop your project and set the variable jde-compile-server on. Thanks to Javier Lopez. * The JDE->Help->JDK command command now looks for the JDK doc at jde-jdk-directory/docs/index.html if it cannot find the doc at jde-jdk-doc-url. The command now also checks for the existence of the doc locally or on the web and errors out if it cannot find it. * Added customization variable jde-complete-signature-display-time, allows users to choose for how long to display the signature of the last completion. * Adds customization variable jde-complete-signature-display, allows to choose what display to use to show the signature of the last completion. * Adds jde-complete-display-current-signature command. This command displays the signature of the last completion. * Fixed compile buffer fontification problem caused by copying global post-command-hook into local post-command-hook in jde-mode-internal. Thanks to David Ponce. * Adds jde-stat-loc-report-directory and jde-stat-loc-report-project. These commands generate a report showing the number of code, comment, javadoc, and blank lines in all the java files in the current directory and subdirectories respectively. Note: These methods will kill any buffer containing a java file contained in the current directory or subdirectories. * Redefined jde-db-debugger to permit selection of three debuggers: JDEbug, new jdb, and old jdb. Note: you need to update all project files that use this variable. * Redefined jde-compiler to allow selection of the following options: javac executable, javac server, and jikes executable. This paves the way for providing explicit support for jikes and various versions of javac. Note: you must update any project files that customize this variable. JDE 2.2.8 New Features ============ * The JDE's code generation wizards now observe the jde-gen-k&r indentation style preference. * Adds JDE->Wizards->Generate Get/Set Methods (M-x jde-wiz-get-set-methods) command. This command generates get and set methods for all private fields in the outer class and inner classes in the current buffer. Thanks to Javier Lopez and Sandip Chitale. * Adds jde-import-collapse-imports command. Thanks to Max Rydahl Andersen. * Adds JDE->Wizards->Extend Abstract Class (jde-wiz-extend-abstract-class) command. Thanks to Javier Lopez. * New font-lock setup policy. - If `jde-use-font-lock' is non-nil the JDE completely handles font lock setup. It turns on font locking in `java-mode' if needed and installs the extra level of fontification in `java-font-lock-keywords-4'. - If `jde-use-font-lock' is nil the JDE delegates syntax coloring setup to standard `java-mode'. * Adds the JDE->Help->Class Member... (jde-help-class-member) command. This command displays help for a specified field or method of a class. Specifically, the command pops up a menu of the members of a specified class. It then searches jde-help-docsets for javadoc for the class. If found, it points the browser to the point in the javadoc file where doc for the selected class member should be located. Note that this command does not attempt to verify whether doc for the member actually exists in the file. * Completion enhancements: - Supports completion of all constructors. - Adds a customization variable, jde-complete-add-space-after-method, to allow you to choose among these types of completions: v.get() and v.get () - Adds a customization variable, jde-complete-unique-method-names, to allow the removal of methods with the same name from the completion list. - Adds a customization variable, jde-complete-insert-method-signature, to allow you to choose between the completions: v.get(int, int) or v.get() - After completions method signatures and returns types are shown in the minibuffer for 60 seconds or until the next completion, whichever occurs first. - Modifies jde-complete-at-point and jde-complete-at-point-menu to insert the methods the same way. - Dynamically loads classes, eliminating the need to update the class list after recompiles. - Minor changes to improve performance: - The classinfo is sorted and processed before being added to the cache. - Reduced the number of loops to process the completions list before being added to the cache. - Modifieds jde-complete-find-all-completion to take advantage of the fact that the completion list is in alphabetical order. - The method find-completion-for-pair does not call jde-complete-find-all- completions if the user did not enter part of the completion. - Completion for now includes private and protected methods in the completion list. Thanks to "Javier Lopez" . * More completion enhancements: -- Completion list now includes private methods of the current class and protected methods of the super class. -- Now sorts the possible completions in alphabetical order. -- Handles completion on instances returned by constructors, e.g., new Vector(). and of arguments passed to constructors, e.g., v.add(get. ^ -- Fixes bug that prevented completion of super class methods, i.e. super.ge... Thanks to Javier Lopez -- Completion now works for instances of inner classes in many cases. The inner class must be declared before it is referenced for completion to work. Future releases will fix this and other deficiencies in inner class handling. Thanks to "Evan Easton" . * Defines the new function jde-ant-projecthelp, which invokes Ant with the "-projecthelp" switch to list all available targets for the current buildfile. Thanks to Jason Stell" jason.stell@globalone.net. * Adds the customization variable, jde-build-function, which allows selection of one a standard set of functions (jde-java-build, jde-ant-build or jde-make) or specification of a custom function. Removes the customization variable, jde-build-use-make. Thanks to Jason Stell jason.stell@globalone.net. * Adds jde-gen-define-abbrev-template function. This function allows you to define abbreviations whose expansions are tempo templates. You can use this function, for example, to define your own control flow abbreviations. See the control flow section of the JDE User's Guide for information on how to use this function. * Adds the customization variable, jde-launch-beanshell-on-demand. If this variable is non-nil (the default), the JDE launches the Beanshell only when it is needed. Otherwise, it launches the Beanshell whenever you open a Java source file and the Beanshell is not already running. * Adds jde-enable-senator variable. If non-nil (the default), this variable causes the JDE to enable senator-minor-mode in Java buffers. senator-minor-mode provides syntax-based searching and buffer navigation commands. * User can now force the JDE to use either wget or url-file-exists to verify existence of a remote file. Thanks to Luis Miguel Hernanz Iglesias for suggesting this enhancement. * Added jde-ant.el to distribution. * Changes name of jde-show-class-source to jde-open-class-source and created jde-show-class-source as an alias. * Adds jde-open-base-class-source command. This command was borrowed from the java-open library. * Added else-if control flow template. Thanks to "Javier Lopez" * Adds a control flow template for a for iterator loop. Thanks to Robert Mecklenburg . * Now replaces the colon in the DOS drive prefix with a vertical bar when forming URL's. This is done to accommodate Netscape. * Enhanced jde-help-symbol so that it prompts you to enter the symbol. Also, if more than once class of the same name exists, prompts you to select the appropriate class. Bug Fixes ========= * XEmacs compatibility fix. Now accommodates the way XEmacs specifies the temp directory. Thanks to Dr. Volker Zell. * Fixes bug that cause completion to return the wrong name when the class does not have a package, e.g., .Test for Test.java. Thanks to Javier Lopez. * Fixes JDE->Help->JDE User Guide JDEbug->Help commands so that they work on XEmacs. Thanks to Dr. Volker Zell. * Fixes jde-ant-build so that it does not invoke last-nonmenu-event on XEmacs. * Fixes bug that prevented completion of variables referenced in inner classes. Thanks to Javier Lopez. * Fixed the JDE's project file loader to avoid an infinite recursion on Windows when the project file is on a virtual drive created with the DOS subst command. Thanks to Nat Goodspeed. * Fixes javadoc checker error that occurs when the checker tries to match an array name in javadoc comments and in argument lists. Thanks to David Ponce. * XEmacs compatibility fix for error that occurs when the JDE attempts to clear the completion cache after compiling a file. Thanks to Javier Lopez. * NT/XEmacs compatibility fix: jde-find-project-file now returns paths with forward slashes as directory sep characters on NT/XEmacs. * Fixed jde-wiz-update-classes so that it updates the classes list to the CLASSPATH environment variable if jde-global-classpath is not defined. * Defines jde-ant-interactive-target-arg-history and jde-ant-interactive-target-arg-history. Thanks to Dirk Husemann . * The JDEbug Run menu item becomes Continue when the debugger halts at a breakpoint. Thanks to Alan Hadsell * Added compatibility fixes for NT/XEmacs use of backslash as the default directory sep character. Thanks to William Griswold . * Fixes bug in jde-save-needs-saving-p that caused the JDE not to save variables whose customized value is nil. * Fixes import insertion point bug. Thanks to "Javier Lopez" * Fixed NT/XEmacs incompatibility in jde-package.el caused by XEmacs' use of back slash as the directory path separator. Thanks to David Ponce. * The interface wizard now includes a valid return statement in methods that return a value. Thanks to "Craig McGeachie" .