JDE-2.1.6beta13 Release Notes

* Include source for Completion class.

* Fixed bug in trace methods command where the inclusion filter overwrote the exclusion filter.

* Added jde-bug-vm-includes-jpda-p

  Set this variable on if you are using JDK 1.3.

* Added jde-bug-jdk-directory

  Set this variable if you are using JDK 1.3.

* Added JDEbug->Trace Exceptions command.

* Added JDEbug->Display->Loaded Classes command.

  This command lists the classes currently loaded by the target process.

* Added JDEbug->Display->Path Info command.

  This command displays the base directory, root classpath, and application classpath
  of the target process.

JDE-2.1.6beta12 Release Notes

* Added trace classes commands: JDEbug->Trace Class Prep and
  JDEBug->Trace Class Unload.

  These commands cause the debugger to display a message each time a class
  is prepared (loaded?) or unloaded. Options include whether to suspend execution
  of the process and filters for restricting the trace to a specified set of
  classes.

* Added trace methods commands: JDEbug->Trace Method Entry and 
  JDEBug->Trace Method Exit

  These commands cause the debugger to display a message each time a method is
  entered or exited. Options include restricting the trace request to a specified
  thread, specifying whether to suspend the process when a method is entered or
  exited, and restricting the trace request to methods of a specified class or
  set of classes or a specified set of methods.

* Added method completion command contributed by Rodrigo Reyes <reyes@chez.com>

  This package adds smart completion to the JDE. Here is how it works:
  put the cursor at the end of a statement "under
  construction", eg. "myVariable.rem<CURSOR HERE> and call the
  jde-complete-at-point emacs-lisp function (this is by default
  C-c C-v C-.). A completion is then inserted. If multiple completions are
  possible, calling the completion function again will cycle through
  all the possibilities (as dabbrev-mode does).

;; To retrieve all the possible completions, it uses the java code in
;; jde.util.Completion.getClassInfo(), called by beanshell. That
;; need the class to be compiled (but that's not worst than an etag
;; call).


* Added jde-submit-bug-report command contributed by Phillip Lord <plord@hgmp.mrc.ac.uk>

* Added jde-browse-class command contributed by Rohit Namjoshi <Rohit_Namjoshi@trilogy.com>

  This command displays the class at point in the BeanShell class browser. The class browser shows  the method signatures and fields of the specified class.

* Fixed bug in JDEbug->Display->String where strings with backslashes caused a Lisp 
  evaluation error.

* Amended jde-db-make-qualified-class-name-regexp to permit package names to begin
  with underscores. Contributed by  "Patrick J. McNerthney" <pat@mcnerthney.com>.

JDE-2.1.6beta11 Release Notes

* Adds Stop and Interrupt thread commands to JDEbug.

* Fixed a line in jde-wiz.el, where an int is concat'd with some
  strings.  This is not allowed by XEmacs 21.1. Fix provided by
  "Mike Woolley" <mike@bulsara.com>.

* Fixed bugs in JDEbug->Exit Debugger.

* Adds Resume Process and Resume Thread commands.

* Adds Suspend Process and Suspend Thread commands to JDEbug.

* Adds JDEBug->Show Threads command.

* Adds jde-help-class command to Help menu

* Adds command to update JDE class list. Contributed by Phillip Lord.
  
  See jde-wiz-update-class-list for usage. Wizards->Update Class List
  invokes this function.

* JDE now caches list of jde- symbols. This speeds switching among
  projects. Contributed by David Biesack.

* Fixed "c-find-expr undefined" bug.


JDE-2.1.6beta10 Release Notes

This release is a first. It consists entirely of contributions
of JDE users. Thanks to all who contributed.

This release adds two EJB templates contributed by 
Brendan Burns <Brendan.Burns@tfn.com>.

It fixes the following bugs:

* Beanshell does not work with JDK 1.1.x on Windows platforms.
  Fix contributed by "Mike Woolley" <mike@bulsara.com>

* -classic switch is not first on the command line of applications
  launched by JDEBug. Fix contributed by David Ponce
  <David_PONCE@mail.schneider.fr>.

* "Symbol's value as variable is void: list" error when jde-db-option-classpath
  or jde-run-option-classpath is defined. Fix contributed by
  Danny Siu <dsiu@Adobe.COM>.



JDE-2.1.6beta9 Release Notes

Note. This release requires and includes the latest development 
version of the eieio.el library. You should 
remove any earlier versions from your Emacs load-path.

This release comprises new JDEBug debugger features plus 
bug fixes.

New Debugger Features
=====================

(See release notes for beta 7 and 8 below for information on
installing and running JDEBug.)

This release implements the following new features and commands:

* JDEBug->Display->Variable

  This command displays the value of the variable at point.
  If the value is a primitive, this command displays
  the primitive's value. If the value is an object, the command
  displays 

    <TYPE:ID> 

  where TYPE is the type of object and ID is an ID assigned
  to the object by the debugger. Use the following commands
  to display the fields of instances of user-defined types
  and the elements of arrays.

  This command works only if the variable is defined in the
  target process. It displays the value in the debugger
  output buffer for the target process.

  Note: this command works by evaluating the expression at point.
  If the expression is not a variable, the command will still
  attempt to evaluate it.

* JDEBug->Display->Array

  Displays the elements of a specified array. The command prompts you
  to enter the array's ID. 

* JDEBug->Display->Object

  Displays the fields of a specified object. The command prompts
  you to enter the object's ID in the minibuffer.

* JDEBug->Display->String

  Displays the contents of a specified string, i.e., an object
  of type java.lang.String. This command allows you to display 
  the string's value without displaying its other fields.

* JDEBug->Display->Local Variables

  Displays the variables local to the point where the target
  process is currently stopped. Note: on Windows 95, this
  command sometimes crashes the application being debugged.
  I can't detect any pattern. If you experience similar 
  crashes, I'd appreciate hearing from you, especially if
  you can detect any pattern to the crashes.

* JDEBug->Evaluate Expression

  This command evaluates any Java expression. The expression may
  include variables. However, the variables must be defined
  in the current stack frame of the target process.

* JDEBug now remembers the initial 3-pane window configuration for a process
  and restores the configuration when you invoke the JDEBug->Set Target
  command.

* Fixed the jde-find-data-directory to return the JDE directory on XEmacs if
  it cannot find the JDE data in the XEmacs's data directory. This should allow
  you to use JDE versions later than that packaged with XEmacs.


Bug Fixes
=========

This release fixes the following bugs:

* JDEBug->Set Breakpoint command should set the breakpoint at the
  line containing point but instead sets the breakpoint at the
  next line.

* The Interface Wizard puts quotes around the code that it inserts
  into a buffer.

* Emacs queries the user whether to quit when the BeanShell is running.

* The JDE->Wizards->Import Class command invokes the old, less
  intelligent version of the import class command.

* The jde-show-help command now works with Internet Explorer on Windows/NT.

* Fixed bug in the JDEbug launch-process command where the command was failing
  to convert the application arguments from a list of arguments to a
  string of arguments. Thanks to "Matthew
  Weymar"<mweymar@hamilton-partners.com> for reporting the bug.

* The jde-help-class command now converts doc file paths to URLs. This should
  ensure compatibility with browsers on various platforms. Thanks to
  Satish Annapureddy <satish@mmsi.com> for reporting this problem.


JDE2.1.6beta8 Release Notes

This release continues implementation of the debugger.
New features include:

* Multiprocess debugging

  You can now launch and have multiple processes running
  concurrently in the same session. Processes are numbered
  sequentially to permit identification even when multiple
  instances of the same app are running. The Processes->Set Target
  command allows you to designate any one of the processes
  as the target process. Thenceforth all process-related 
  commands affect that target, until you select another
  target.

* Window configuration management

  When you launch a process, the JDE configures the frame
  into three windows from top to bottom: source window,
  app command-line interface window, and debugger message
  window. The JDE remembers this configuration. Whenever
  you select the process, the JDE restores the initial
  configuration. Depending on your feedback, the JDE
  may provide you with the option to save and restore
  configurations of your choosing.

There is a lot of work to be done. Some of the things
I plan to work on for beta 9 include:

* Updating the breakpoint highlights and breakpoint cursor
  when you switch processes.

* expression evaluator

* local variable window

My plan is to make releases at least once a week until the
debugger implementation is complete.
  

JDE2.1.6beta7 Release Notes

This release fixes two debugger bugs on Windows NT

* Debugger apparently fails to respond to debugger commands. (Actually,
  the problem is with standard I/O not flushing its buffer. The fix is
  to but two linefeeds instead of one after each command.)

* Continue command on the JDEBug Menu is greyed out when a process
  is suspended. This happens because the debugger on NT returns
  a process state of "unknown" instead of "waiting".

Please note that I have updated the JDEBug screen shot on the JDE web site.
It gives a good idea of what to expect when you run the debugger.


JDE2.1.6b6 Release Notes

This releases fixes the Interface Wizard, which was broken by a
regression error in a previous release.

It reimplements the JDEbug Lisp interface to use Eric Ludlam's
Lisp object system and provides a customization variable for
specifying the location of the JPDA package required to 
run JDEbug.

Finally, it reorganizes the JDE hierarchy, moving all Lisp files
into a separate subdirectory, among other changes.

REQUIREMENTS

* eieio Lisp object system for Emacs. 
  
  You can download the package from

    http://www.ultranet.com/~zappo/eieio.shtml

   Please be sure to include the eieio package in your Emacs
   load-path.

*  The JDE lisp files now reside in the lisp subdirectory of
   the JDE distribution. So you must update the load-path in your
    .emacs file, accordingly, e.g.,

   (setq load-path
      (nconc
        '("~/emacs/site/jde-2.1.6b6/lisp)
         load-path))

* Java Platform Debug Architecture distribution from Sun 
  MicroSystems to run JDEbug, the JDE's new debugger. You can 
  download the package from JavaSoft's website.

  Important: you must include the JPDA's bin directory in your
  path.



JDE2.1.6beta5 Release Notes

This beta contains an early release of JDEBug, the new
debugger being developed for the JDE by Paul Kinnucan and
Amit Kumar, with the support of Sun Microsystems. The new
debugger is based on Sun's Java Platform Debug Architecture 
and is designed specifically to work with Emacs, which
serves as its user interface. The new release requires
a JDK 1.2-compatible vm.

To debug a project with JDEbug, you must first select
it as the debugger for the project. You do this by customizing the
variable jde-db-debugger. To customize this variable,
select Options->Save Project from the JDE menu to display 
the project customization buffer. Then edit the jde-db-debugger
entry in the buffer to read as follows:

Jde Db Debugger: [Hide]
Name: jdebug
Debugger type is  
( ) Executable
(*) Class
   [State]: you have set this option, but not saved it for future sessions.
Specify debugger. [More]

Finally, save the setting. If you want to use the debugger 
only on the current project, select "Set for current session"
from the customization buffer's State menu and then select
Options->Save Project from the JDE menu to save the setting
in the project's project file. Otherwise, select
the "Save for future sessions" options to save the setting
in your .emacs file.

After you have saved the setting, open a Java source file
from the current project (or any source file if you save the
jde-db-debugger setting in your .emacs file). You should now
see the JDEbug menu in the Emacs menu bar. Note that most of
the menu items are grayed. Some items are grayed because they
are not yet implemented; others, because they require an 
application to be running.

Before proceeding further, first check that you have set
jde-db-source-directories to specify the directories containing
source files for the application you want to debug.

Now, to debug an application, first set a breakpoint somewhere
in your application. To set the breakpoint, open the source
file for the breakpoint selection, click the line at which
you want the debugger to halt execution of the application, and
the select Set Breakpoint from the JDEbug menu. The JDE highlights
the selected line in yellow (you can customize the highlight color).

Once you have set the breakpoint, close all Emacs windows except
the one containing the source file with the breakpoints. Then, select 
Debug App from the JDE menu. After a short pause, the Emacs frame
divides into three windows. The top window contains your source file.
You should see a debug arrow pointing at the breakpoint line,
indicating that the debugger has halted your application at the breakpoint.
The middle window contains a window for interacting with your 
application. Application standard output appears in this window.
You can enter application input in this window also (not tested). The bottom
window shows debug output from the JDE and the debugger. You can
now use the debugger's step and continue commands to step through
your program. To abort the application and exit the debugger, select
Exit from the JDEbug menu.

As you will quickly discover, the current release is limited to setting
breakpoints and stepping through an application. Subsequent releases
will add support for displaying variables, setting watchpoints, 
controlling threads, debugging multiple processes, browsing objects,
etc. Much of this functionality is already implemented in the debugger
and only needs to be exposed via the JDE interface. So new features
should come pretty quickly.

Your feedback regarding bugs and usability is welcome. We are particularly
interested in input on user interface issues, especially related to
the problem of managing multiple processes and debugger output window
configuration.

JDE2.1.6beta4 Release Notes

This release generalizes the jde-help-class command to work with
class API doc of any type, including the Java 1 and Java2 versions
of javadoc. To do this, it replaces the variable jde-help-javadoc-dirs
with the variable jde-help-docsets. The new variable allows you to
specify the format of the documentation (javadoc or "other") and
a search function for searching docsets that are not javadoc.

This release also fixes a long-standing bug with the Save Project
command. The command now kills the buffer containing the project
file after saving its contents. This should reduce the chance of
two project file buffers being open simultaneously, which can
lead to corruption of the files. Note that it is perfectly okay
to have multiple projects open.

JDE 2.1.6beta3 Release Notes

This releases adds context-sensitive help for class names. To
use this facility, first customize the variable jde-help-javadoc-dirs
to specify a list of the directories containing javadoc class
documentation on your system. Once you have done this, typing
C-c C-v C-h causes the JDE to display the javadoc for the class
at point in the current buffer. The command uses the browser that you 
have specifed with Emacs browse-url package to display the
class documentation. The default browse-url browser is Netscape.
See the browse-url documentation for information on specifying
another browser, such as w3. Thanks to Phillip Lord <plord@hgmp.mrc.ac.uk>
for reviewing and enhancing the code for this command.


This release includes enhancements to the jde-wiz-find-and-import
command, which imports the class whose name appears at point in the
current buffer. The command now has a customization variable
jde-wiz-insert-excluded-packages-regexp that allows you to prevent
specified classes from being considered for import into a buffer.
This variable is useful if the same class name is declared in
multiple packages and you only want some of the classes to be
considered for import. If the jde-wiz-find-and-import command finds
multiple import candidates in your classpath, it now prompts you
to choose a class instead of silently importing all the candidates.
Thanks to Phillip Lord <plord@hgmp.mrc.ac.uk> for providing these
enhancements.

This release also fixes a bug in the Java code used by the
jde-find-and-import command. As a result, you no longer need
to include the core JDK 1.2 classes, i.e., rt.jar, in your classpath.
Thanks to David_PONCE@mail.schneider.fr for providing this fix.


JDE 2.1.6beta2 Release Notes

This release fixes the following bugs:

* JDE does not require jde-parse.el.

* ImportWizard incorrectly replaces path separators with periods.


JDE 2.1.6beta1 Release Notes

This releases incorporates the following changes:

New Features
============

* Java parser

  The JDE now comes with its own Java parser implemented in Java. You can invoke
  the parser from the BeanShell or via the jde-parse command (see next). The 
  parser was generated by JavaCC and the Java Tree Builder. The source for 
  the parser and the grammar from which it was generated are in the JDE's
  java directory.

* jde-parse command

  Checks the current buffer for syntax errors, using the JDE's Java parser.

* jde-wiz-find-and-import command

  Generates an import statement for a class in the current buffer. Unlike 
  jde-wiz-import, which requires a fully qualified class name, this new 
  command does not require the class name to be qualified. Indeed, it 
  should not be qualified. The command searches the classpath for the
  name you enter (by default the name at point) and imports any classes
  by that name that it finds. (A future version will let you choose which
  class to import.) This command uses the BeanShell and a new JDE Java class,
  jde.wizards.ImportWizard. Thanks to Len Trigg <trigg@cs.waikato.ac.nz>
  for implementing this class.

* C-c C-v C-z is now bound to jde-wiz-find-and-import instead of jde-wiz-import

  If you prefer the old command, you can customize the keybinding in your .emacs
  or prj.el files.

* The make version of jde-build now allows interactive entry of make arguments. 
  Thanks to Yarek J. Kowalik <jgk@klg.com> for providing this enhancement.


Bug Fixes
=========

* Changed jde-run-parse-args to accept any substring enclosed in single or double
  quotes or that does not contain white space as an arg. Thanks
  to Changzhou Wang <cwang@osf1.gmu.edu>.

* Added missing java-font-lock-keywords-3 for XEmacs. Thanks to
  Stephane <informagician@lunatech.com> for spotting this bug.








