JDE 2.2.9beta12

***************************************************************
*                         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.                  *
*                                                             *
***************************************************************

* 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 <laurent@bearteam.org>

* 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 <Ahyatt@intraspect.com>

* 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 <donohuej@synovation.com>.

* 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 <herve.bitteur@sun.com> 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 <cmatuszewski@itcampus.de> 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 <HChar@realm.com> 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 <mnl@mnl.de>.

* This release adds the File->JDE New->Interface command
  which generates a skeleton interface.

  Thanks to Michael N. Lipp <mnl@mnl.de>.

* 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 <mnl@mnl.de>.

* 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" <lipp@danet.de> 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 <tbabin@nortelnetworks.com>

* 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 <sandip.chitale@blazesoft.com>

* 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" <max@eos.dk>.

* 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" <max@eos.dk>.

* 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" <max@eos.dk>.

* 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. <target description="foo" name="compile">

* 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 <sebastien.vauclair@epfl.ch>.

* 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 <s.nicolas@videotron.ca>.

* Adds support for invoking Ant directly from java or via 
  the ant script. Thanks to Douglas WF Acheson <dwfa@yahoo.com>.

* 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 <mecklen@cimsoft.com>.

* 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 <max@eos.dk>.


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" <kevinj@develop.com>. 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 <klaus.berndl@sdm.de>. 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 <this> now includes private and protected 
    methods in the completion list. 

  Thanks to "Javier Lopez" <jlopez@cellexchange.com>.

* 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 <jlopez@cellexchange.com>

  -- 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" <evan@eeaston.com>.

* 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 
  <luish@germinus.com> 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" <jlopez@cellexchange.com>

* Adds a control flow template for a for iterator loop. 

  Thanks to Robert Mecklenburg <mecklen@cimsoft.com>.

* 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 <hud@zurich.ibm.com>.

* The JDEbug Run menu item becomes Continue when the debugger
  halts at a breakpoint.

  Thanks to Alan Hadsell <ahadsell@MtDiablo.com> 

* Added compatibility fixes for NT/XEmacs use of backslash as the
  default directory sep character.

  Thanks to William Griswold <wgg@cs.ucsd.edu>.

* 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" <jlopez@cellexchange.com>

* 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" <craig@rhe.com.au>.





