Commits

Anonymous committed 037ff1a

Upgrade to JDE 2.1.9, package version 1.18.

  • Participants
  • Parent commits 48431c0

Comments (0)

Files changed (13)

+2000-07-16  Mike Sperber <mike@xemacs.org>
+
+	* lisp/jde.el (jde-xemacsp): Added `eval-and-compile'.
+
 1999-12-05  Andreas Jaeger  <aj@suse.de>
 
 	* Makefile (REQUIRES): Add eterm.
 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
-VERSION = 1.17
-AUTHOR_VERSION = 2.16beta4
-MAINTAINER = Andy Piper <andy@xemacs.org>
-#MAINTAINER = Paul Kinnucan <paulk@mathworks.com>
+VERSION = 1.18
+AUTHOR_VERSION = 2.1.9
+MAINTAINER = Paul Kinnucan <paulk@mathworks.com>
 PACKAGE = jde
 PKG_TYPE = regular
-REQUIRES = cc-mode debug speedbar edit-utils eterm mail-lib xemacs-base
+REQUIRES = jde cc-mode semantic debug speedbar \
+	edit-utils eterm mail-lib xemacs-base
 CATEGORY = prog
 
-ELCS = jde-db.elc jde-gen.elc jde-make.elc jde-run.elc jde.elc jde-wiz.elc \
-	jde-compile.elc beanshell.elc
-PRELOADS = -l jde-run.el
+ELCS = lisp/eieio-comp.elc lisp/eieio-custom.elc \
+	lisp/jde-bug.elc lisp/jde-compile.elc lisp/jde-complete.elc \
+	lisp/jde-db.elc lisp/jde-dbo.elc lisp/jde-dbs.elc \
+	lisp/jde-gen.elc lisp/jde-help.elc lisp/jde-help.elc \
+	lisp/jde-javadoc.elc lisp/jde-make.elc lisp/jde-parse.elc \
+	lisp/jde-run.elc lisp/jde-widgets.elc lisp/jde-wiz.elc \
+	lisp/jde.elc \
+	lisp/beanshell.elc
+EXTRA_SOURCES = lisp/eieio.el
+
 #INFO_FILES = $(PACKAGE).htm *.gif
-DATA_FILES = $(wildcard etc/*.gif) $(wildcard etc/*.htm) \
-	$(wildcard etc/*.html)
-DATA_DEST = jde
-DATA_1_FILES = $(wildcard etc/java/lib/*.jar)
-DATA_1_DEST = jde/java/lib
-DATA_2_FILES = $(wildcard etc/java/src/jde/wizards/*.java)
-DATA_2_DEST = jde/java/src/jde/wizards
-DATA_3_FILES = $(wildcard etc/java/src/jde/util/*.java)
-DATA_3_DEST = jde/java/src/jde/util
+DATA_1_FILES = $(wildcard java/classes/jde/wizards/*)
+DATA_1_DEST = jde/java/classes/jde/wizards
+DATA_2_FILES = $(wildcard java/classes/jde/parser/*)
+DATA_2_DEST = jde/java/classes/jde/parser
+DATA_3_FILES = $(wildcard java/classes/jde/util/*)
+DATA_3_DEST = jde/java/classes/jde/util
+DATA_4_FILES = $(wildcard java/lib/*)
+DATA_4_DEST = jde/java/lib
+DATA_5_FILES = $(wildcard java/doc/jde/debugger/*.html)
+DATA_5_DEST = jde/java/doc/jde/debugger
+DATA_6_FILES = $(wildcard java/doc/jde/debugger/expr/*)
+DATA_6_DEST = jde/java/doc/jde/debugger/expr
+DATA_7_FILES = $(wildcard java/doc/jde/debugger/spec/*)
+DATA_7_DEST = jde/java/doc/jde/debugger/spec
+DATA_8_FILES = $(wildcard java/src/jde/wizards/*)
+DATA_8_DEST = jde/java/src/jde/wizards
+DATA_9_FILES = $(wildcard java/src/jde/debugger/*.java) \
+	$(wildcard java/src/jde/debugger/Makefile*)
+DATA_9_DEST = jde/java/src/jde/debugger
+DATA_10_FILES = $(wildcard java/src/jde/debugger/interpret/*.java) \
+	$(wildcard java/src/jde/debugger/interpret/*.el) \
+	$(wildcard java/src/jde/debugger/interpret/*.jj*) \
+	$(wildcard java/src/jde/debugger/interpret/make_parser*)
+DATA_10_DEST = jde/java/src/jde/debugger/interpret
+DATA_11_FILES = $(wildcard java/src/jde/debugger/interpret/syntaxtree/*)
+DATA_11_DEST = jde/java/src/jde/debugger/interpret/syntaxtree
+DATA_12_FILES = $(wildcard java/src/jde/debugger/interpret/visitor/*)
+DATA_12_DEST = jde/java/src/jde/debugger/interpret/visitor
+DATA_13_FILES = $(wildcard java/src/jde/debugger/spec/*)
+DATA_13_DEST = jde/java/src/jde/debugger/spec
+DATA_14_FILES = $(wildcard java/src/jde/debugger/expr/*)
+DATA_14_DEST = jde/java/src/jde/debugger/expr
+DATA_15_FILES = $(wildcard java/src/jde/debugger/command/*)
+DATA_15_DEST = jde/java/src/jde/debugger/command
+DATA_16_FILES = $(wildcard java/src/jde/parser/*.java) \
+	$(wildcard java/src/jde/parser/*.jj)
+DATA_16_DEST = jde/java/src/jde/parser
+DATA_17_FILES = $(wildcard java/src/jde/parser/syntaxtree/*)
+DATA_17_DEST = jde/java/src/jde/parser/syntaxtree
+DATA_18_FILES = $(wildcard java/src/jde/parser/visitor/*)
+DATA_18_DEST = jde/java/src/jde/parser/visitor
+DATA_19_FILES = $(wildcard java/src/jde/util/*)
+DATA_19_DEST = jde/java/src/jde/util
+DATA_20_FILES = $(wildcard doc/jdebug/ug/images/*.gif)
+DATA_20_DEST = jde/doc/jdebug/ug/images
+DATA_21_FILES = $(wildcard doc/jdebug/ug/*.html)
+DATA_21_DEST = jde/doc/jdebug/ug
+DATA_22_FILES = $(wildcard doc/tli_rbl/au/*.au)
+DATA_22_DEST = jde/doc/tli_rbl/au
+DATA_23_FILES = $(wildcard doc/tli_rbl/img/*.gif)
+DATA_23_DEST = jde/doc/tli_rbl/img
+DATA_24_FILES = $(wildcard doc/tli_rbl/txt/*.txt)
+DATA_24_DEST = jde/doc/tli_rbl/txt
+DATA_25_FILES = $(wildcard doc/ug/images/*.gif)
+DATA_25_DEST = jde/doc/ug/images
+DATA_26_FILES = $(wildcard doc/ug/*.html)
+DATA_26_DEST = jde/doc/ug
+
+
+AUTOLOAD_PATH = lisp
 
 include ../../XEmacs.rules
 
-GENERATED += custom-load.elc
+GENERATED += lisp/custom-load.elc
 
-all:: $(ELCS) auto-autoloads.elc custom-load.elc 
+all:: $(AUTOLOAD_PATH)/auto-autoloads.elc $(ELCS) \
+	$(AUTOLOAD_PATH)/custom-load.elc
+
+clean::
+	rm -f $(AUTOLOAD_PATH)/auto-autoloads.el*
 
 srckit: srckit-std
 

File ReleaseNotes.txt

-JDE 2.1.1 Release Notes
-
-This release includes the following new features:
-
-* Customize startup directory for Java applications
-
-  The JDE now allows you to specify a startup directory
-  for running and debugging JDE programs. The default
-  startup directory remains the directory of the current
-  source code buffer. Type C-h v jde-run-working-directory
-  or see "Customizing the Startup Directory" in the "Running
-  Java Applications" section of the "JDE User's Guide."
-
-* Customization panel for jde-mode key bindings
-
-  The JDE now allows you to use a customization panel to
-  define key bindings for jde-mode. This enables you to
-  define key bindings even if you don't know Lisp.
-  See "Customizing Key Bindings" in the "Customizing jde-mode" 
-  section of the "JDE User's Guide" for more information.
-
-* System.out.println(...); template
-
-  Select Generate->Println from the JDE menu to create a 
-  System.out.println statement at the current point in a
-  source buffer. The JDE prompts you to enter the content
-  of the println statement.
-
-
-
-
-
-
-
-
+JDE-2.1.9 Release Notes
+
+***************************************************************
+*                         PLEASE READ                         *
+***************************************************************
+*                                                             *
+* This release requires semantic 1.2 (or later) and           *
+* speedbar 0.11.1 or later. You can obtain both at            *
+*  http://www.ultranet.com/~zappo/semantic.shtml              *
+*                                                             *
+***************************************************************
+
+* Simplified and rationalized the way JDEbug connects Emacs to 
+  the debuggee app's standard I/O.
+
+  The new implementation eliminates the spurious "input error"
+  message when an application ends.
+
+* jde-sort-imports now works on XEmacs.
+
+  Thanks to "Dr. Volker Zell" <Dr.Volker.Zell@oracle.com> for
+  this fix.
+
+* Replaced current semantic bovinator Java parser with a more rigorous parser modeled
+  on that included in the Java CUP package.
+
+  Thanks to David Ponce <david@dponce.com>  for contributing the new grammar.
+
+* Get/set pair template now generates correct method name for getting 
+  the value of boolean variables. 
+
+  Thanks to Stephane <s.nicolas@videotron.ca> for contributing this fix.
+
+* Added sort option to Classes index menu. 
+
+  Thanks to David Ponce for this contribution.
+
+* The JDE now sets the variable abbrevs-changed to nil after initializing
+  the abbrev-mode table for a Java source buffer. This is intended to
+  prevent Emacs from thinking that the abbreviations need to be save
+  the next time you save the source file.
+
+* Added a section on the Classes menu to the JDE User's Guide.
+
+
+JDE-2.1.8 Release Notes
+
+* The javadoc command now works for class fields as well as methods
+  and classes. Thanks to David Ponce for <david@dponce.com>
+  for this enhancement.
+
+* The JDE's Lisp-based Java grammar has been extended to cover many
+  more Java constructs. 
+
+  This results in more complete indexing of Java buffers, especially fields. 
+  Thanks to David Ponce for contributing many of the grammar improvements.
+
+* The JDE's import and other wizards now work for Java extension classes.
+
+  Thanks to Mark Gibson <mark@markg.co.uk> for this improvement.
+
+* The import wizard dialog now uses radio buttons rather than check boxes
+  to select the class to import.
+
+  Thanks to Mark Gibson for this enhancement.
+
+* The Classes index menu now can include (default) or omit
+  the types of fields as well as method signatures of all 
+  classes in the current buffer. 
+
+  USe the variable jde-imenu-include-signature to enable/disable this
+  feature.
+
+  Thanks to David Ponce for this enhancement.
+
+* The Classes index menu now includes (the default) or omits an index
+  for each class declaration in the current buffer.
+
+  Use the variable jde-imenu-include-classdef to include/omit class def
+  entries.
+
+  Thanks to David Ponce for this enhancement.
+
+* Changed the name of jde-enable-index-menu to jde-imenu-enable and 
+  jde-enable-full-method-signatures-index-menu to 
+  jde-imenu-include signature.
+
+
+
+JDE-2.1.7 Release Notes
+
+* Added an entry to the JDEbug user guide about the need to set 
+  jde-run-classic-mode-vm on when using JDK 1.3
+
+* Added transient to the list of variable modifiers in the 
+  java.bnf grammar.
+
+  Thanks to Mike Bowler for reporting this problem and thanks to
+  David Ponce for providing a fix.
+
+* Classes index menu now shows full signatures of methods. 
+  
+  Thanks to Ittay Freiman <ittay@vigiltech.com> for suggesting this
+  enhancement and to David Ponce <david@dponce.com> for implementing it.
+
+* Added automatic generation of javadoc comment skeletons.
+
+  To generate a skeleton for the method or class at point, 
+  select JDE->Document or type C-C C-v j. To customize the
+  skeletons, select JDE->Project->Options->Javadoc.
+
+  Thanks to David Ponce <david@dponce.com> for providing this
+  feature.
+
+* The import wizard now checks whether an import statement already
+  exists for the class at point and if so does not generate an
+  unnecessary duplicate.
+
+  Thanks to Jim LoVerde<loverde@str.com> for contributing this
+  enhancement.
+
+* Parser now handles arrays in field declarations.
+
+  Thanks to Ittay Freiman <ittay@vigiltech.com> for reporting this bug.
+
+
+JDE-2.1.6 Release Notes
+
+=====================================================================
+NOTE: This releases requires version 0.10 (or later) of Eric Ludlam's 
+speedbar and version 1.1beta (or later) of Eric's semantic bovinator.
+You can download both packages from
+
+http://www.ultranet.com/~zappo/semantic.shtml
+=====================================================================
+
+* The *Rescan* item on the Classes menu now works.
+
+* Updated grammar to handle argument variables with modifiers 
+  and array arguments.
+
+* Updated grammar to handle final methods.
+
+* Fixed user guide's table of contents to work in browsers that
+  do not support Java.
+
+* Added variable jde-bug-raise-frame-p to allow a user to 
+  specify whether the Emacs window should pop up when a
+  breakpoint is hit.
+
+* Fixed compatiblity bug that prevented JDEbug menu from appearing 
+  in the XEmacs menubar.
+
+* Fixed stepping bug cause by missing jde-bug-install-jdebug-menu.
+
+* Completion menu now works on XEmacs.
+
+* Adds jde-sort-imports command contributed by 
+  David Ponce <david_ponce@mail.schneider.fr>.
+
+  This command sorts the import statements in the current buffer
+  in ascending or descending order by package name.
+
+* Abbreviations now disabled in comments and strings.
+
+  Thanks to Eric D. Friedman <friedman@lmi.net> for this fix.
+
+* Adds control flow templates contributed by Eric D. Friedman <friedman@lmi.net>.
+
+  The templates provide completion for the following control flow statements:
+
+  Statement                  Abbreviation
+  ----------------------------------------
+  if-then                    if
+  else                       else
+  if-then-else               ife
+  while                      while
+  for                        for
+  for (int I=0;I<UL;I++)     fori
+  main method                main
+  switch                     switch
+  case                       case
+
+  NOTE: you must enable the JDE's abbreviation mode to use the templates.
+  See jde-enable-abbrev-mode.
+  
+  To use a template, enter the abbreviation followed by a space. Some
+  templates optionally prompt you to fill in the skeleton. To enable 
+  prompting, set the variable tempo-interactive to a non-nil value in
+  your .emacs file.
+
+  You can customize the templates to suit your indentation style. To 
+  customize the templates, select Project->Options->Autocode from the
+  JDE menu.
+
+* Added customization variable jde-bug-debugger-host-address.
+
+  The value of this variable defaults to the Emacs variable system-name.
+  JDEbug uses this variable to setup a socket connection with the debugger
+  for transporting the standard I/O of the debuggee process. You can set
+  this variable to an IP address if necessary. (This variable was added
+  at the request of a user whose network does not have a DNS for host name
+  resolution.)
+
+
+JDE-2.1.6beta24 Release Notes
+
+=====================================================================
+NOTE: This releases requires version 0.10 (or later) of Eric Ludlam's 
+speedbar and version 1.1beta (or later) of Eric's semantic bovinator.
+You can download both packages from
+
+http://choochoo.ultranet.com/~zappo/fsf.shtml
+=====================================================================
+
+* Adds a Classes index menu to the Emacs menubar.
+
+  The index lists all methods, fields, and inner classes for all
+  classes in the current Java source buffer. Click any entry to
+  scroll the buffer to the corresponding class member.
+
+  Set jde-enable-classes-menu-index off to disable the Classes menu.
+
+* Fixed lisp regression error in listen and attach commands for JDEbug.
+
+* The JDEbug process launch command now uses the value of system-name 
+  to specify the local host  when connecting to the debuggee process
+  SIO socket. This cures the launch failures some users are experiencing 
+  on NT and Linux.
+
+* Added a jde-complete-at-point-menu command that displays a popup menu of
+  completions for the method or field at point. The command is bound
+  to  the C-c C-v C-. keystroke combination. The old minibuffer functionality
+  continues to be available as jde-complete-at-point. It is bound to the
+  C-c C-v . combination.
+
+  Thanks to Howard Spector <howard@howardsp.com> for this very useful
+  enhancement.
+
+* JDE now displays or hide the JDEbug menu when you select or deselect JDEbug as 
+  the current debugger.
+
+* The JDE now uses a grammar-based (instead of regular-expression-based) parser
+  to generate the index used by the speedbar.
+
+JDE-2.1.6beta23 Release Notes
+
+* Define jde-mode abbreviations only when jde-enable-abbrev-mode is on.
+
+* Fixed listp bug in thread stack display.
+
+* Fixed display of NaN, Infinity, and -Infinity FP values on local variables buffer.
+
+* The currently selected Emacs frame now pops to the top when JDEBug hits a breakpoint.
+
+* Compile command now accepts Cygwin-style classpaths.
+
+* Local variables buffer now includes the "this" object for the corresponding stack frame.
+
+* Fixed Lisp eval error when a local string variable includes unbalanced parentheses.
+
+* Menus no longer freeze when you use JDEbug's Launch Process command.
+
+* Adds jde-imenu-recognize-tag-comments-p option. 
+  
+  When on, this option causes the imenu symbol declaration indexer to 
+  recognize variables and method declarations witn prefixed tag comments.
+
+
+JDE-2.1.6beta22 Release Notes
+
+* JDEbug now correctly represents byte values and int and long values greater
+  than 24 bits in length. Thanks to Charles Hart <cfhart@Z-TEL.com> for this fix.
+
+* History now works for interactively entered vm, jdb, and application arguments.
+  Thanks to Andy Wilson <drew@media.mit.edu> for reporting this bug.
+
+* Exception tracing now works correctly. Thanks to Matthew Conway <matt_conway@i2.com>
+  for reporting this bug.
+
+* Fixes Lisp error caused by unescaped quotes within strings.
+
+  Thanks to Mark Gibson, Doug Beal, and Martin Dickau for reporting this bug. Thanks to
+  David Hay, Mark Gibson, Steve Haflich, David Dagon, and Charles Hart for creating 
+  an efficient Java method for escaping strings.
+
+* Fixes several bugs with setting key bindings.
+
+* Added a JDEbug option to the jde-db-debugger customization variable.
+
+  This obsoletes the old method of selecting the debugger by
+  selecting the debugger class type and setting the Name option to jdebug.
+
+* You can now specify vm and app command-line arguments interactively when launching an 
+  application from JDEbug.
+
+  Thanks to Steve Haflich for providing this enhancement.
+
+* Display threads now includes the stack for each thread. 
+
+  Thanks to Paul Michael Reilly <pmr@pajato.com> for implementing this. Note that a 
+  future release will allow you to click on a frame and see the source and local
+  variables for the frame.
+
+* JDE now sets the working directory to jde-run-working-directory before starting JDEbug.
+
+  Note. The debugger launches all processes from this directory. You can not set the working
+  directory on a per-process basis.
+
+* The JDE documentation now includes the beginnings of a JDEbug User's Guide.
+
+JDE-2.1.6beta21 Release Notes
+
+* Added key bindings for JDEbug.
+
+  Note. You can customize the key bindings to suit your own preferences.
+  See JDEbug->Preferences.
+
+* Fixes an infinite recursion bug that can occur when stepping through code.
+
+* Fixes scrolling in process debug message window. 
+
+  Thanks to "Martin Dickau" <mdickau@byallaccounts.com> for this fix.
+
+* Fixed bug in process launch error message.
+
+* Fixed bug in JDE->Debug App where Debug App tries to set breakpoints
+  even though it has failed to launch the app.
+
+* Do not try to set persistent breakpoints in Java buffers not associated
+  with a file.
+
+* Moved "Browse JDK doc" menu item to Help menu.
+
+
+JDE-2.1.6beta20 Release Notes
+
+* Implemented color customization of the JDEbug breakpoint marker.
+
+  To customize the color, select JDEbug->Preferences or type
+  M-x customize-variable jde-bug-breakpoint-marker-colors. Enter
+  the desired foreground and background colors and set the variable.
+
+* Implemented persistent breakpoints.
+
+  To save a breakpoint, select JDEbug->Preferences or enter
+  M-x customize-variable jde-bug-saved-breakpoints. Select
+  the INS button in the variable's customization area to
+  add a breakpoint. Enter the name of the source file and
+  line number where you want the breakpoint to occur. Then
+  set the variable.
+
+  Note that setting breakpoints by file name can lead to
+  ambiguities when the same file name occurs in different
+  packages. A future release will allow you to specify a
+  qualified class name to resolve such ambiguities.
+
+* Fixed a number of Cygwin/XEmacs incompatibilities.
+
+  Thanks to Fred Hart <cfhart@Z-TEL.com> for providing the
+  fixes.
+
+* Fixed "search-end-post" error when setting jdb breakpoints.
+
+
+JDE-2.1.6beta19 Release Notes
+
+* When displaying local variables, the debugger was incorrectly 
+  quoting characters, causing Lisp errors. Thanks to 
+  Adam_Ambrose@geoworks.com for reporting this bug.
+
+* Implemented workaround for JPDA bug that was preventing breakpoints
+  from being set in inner classes. 
+
+  Note: I have tested this workaround only on JDK 1.3rc1.
+
+* Implemented stack up and down commands.
+
+  These commands work only for the thread on which a breakpoint or
+  step point has occurred. A future release will provide a
+  stack navigator that will allow you to navigate the stack of
+  any thread.
+
+
+JDE-2.1.6beta18 Release Notes
+
+
+* Fixed bug that caused completion on private methods and fields.
+
+  Thanks to Jean-Baptiste Nizet" <jean-baptiste.nizet@s1.com> for
+  reporting this and thd following bug.
+
+* Now completes on inherited as well as declared fields and methods.
+
+* Fixed "Wrong type argument: sequencep, 0" bug that occurs when 
+  using completion with XEmacs. Thanks to Dr. Volker Zell for 
+  reporting this bug.
+
+* Now supports completion of fields declared at the end of a class 
+  as well as those declared at the beginning of a class.
+
+* Replaced jde-help-class with jde-help-symbol method. The new method
+  gets help for the symbol at point. 
+
+  The symbol may refer to a class, an object, or a method or field. 
+  This method has some limitations. It works only for symbols declared
+  in the current buffer. For example, it works for
+
+     String msg = new String();
+     msg.length()
+
+  but not for
+
+    Status status = new Status();
+    status.msg.length()
+
+  Also, this method does not scroll the class file to the place where the
+  method or field is documented. These capabilities will come later.
+
+  Thanks to Geoff Borgggaard, borggaard@syncrasystems.com, for suggesting
+  this enhancement.
+
+* Fixed bug where Display->Threads command was not enabled when debugger
+  was attached to a process.
+
+Note: for instructions on installing and using JDEbug, read this
+entire file from back to front, starting at beta5.
+
+
+JDE-2.1.6beta17 Release Notes
+
+* Added Processes->Listen commands to the JDEBug menu.
+
+  These commands cause the debugger to listen on a socket or in shared
+  memory (the latter option available only on Windows) for applications
+  requesting debug services. To use these commands, you
+  must specify the following vm options when starting the debuggee
+  application:
+
+  -Xdebug
+  -Xnoagent
+
+  -Xrunjdwp:transport=TRANSPORT,address=ADDRESS,server=n,suspend=y
+
+   where TRANSPORT is either dt_shmem (shared memory connection) or
+   dt_socket (socket) connection and ADDRESS is an arbitrary string
+   for shared memory connections or a port number for socket 
+   connections. 
+
+   JDEBug prompts you to enter ADDRESS when you execute
+   the JDEbug->Processes->Listen command.
+
+   In addition, if you are using JDK1.3 to launch the debuggee client,
+   you must use the -Xbootclasspath to include the JPDA tools in the
+   debuggee vm's classpath.
+
+   -Xbootclasspath:e:/jdk1.3/jre/lib/rt.jar;e:/jdk1.3/lib/tools.jar
+
+   Here is an example of a typical command line to launch a debuggee
+   client, using JDK1.3:
+
+   java -classpath d:/myapp/myapp.jar -Xdebug -Xnoagent
+     -Xrunjdwp:transport=dt_shmem,address=myapp,server=y,suspend=n
+     -Xbootclasspath:e:/jdk1.3/jre/lib/rt.jar;e:/jdk1.3/lib/tools.jar
+     com.myorg.myapp.Main
+  
+  When you launch a Java application with these options, the vm
+  halts before running the app's main method and attempts to connect
+  with a debugger. Once the connection is made, the debugger is in
+  complete control of the app. For example, the app won't run until
+  the debugger issues a continue command. This means you can set
+  breakpoints in the debuggee apps startup code. 
+
+  This debugger server mode option is particularly useful if you
+  are developing a non-Java application that embeds a Java vm.
+  For example, you can put a command line switch on your app that
+  causes it to start its internal vm in debuggee client mode. The
+  internal vm will then immediately connect to the debugger allowing
+  you to debug the app's Java startup code.  
+
+* Moved Bootstrap.virtualMachineManager().getConnectors() off command thread
+  as this is suspected of causing launch problems on some Windows/NT systems.
+
+* Provide choice of coding styles for code generated by templates.
+
+  The styles are Modern (new line before opening brace) and
+  Kernighan & Ritchie (no new line).
+
+  Type C-h v jde-gen-k&r for more information.
+
+  Note that if you are using project files, you must set jde-gen-k&r on
+  or off, restart Emacs, and reset each of the template variables to
+  there default settings and then resave your project file.
+
+  Thanks to Jari Aalto for this enhancement.
+
+* Modified the Jdb->Set Breakpoint command to set breakpoints correctly in
+  inner classes.
+
+  This command generates the correct jdb command
+
+    stop at A.$B:L#
+
+  where A is the name of the outer class and B is the name of the inner class.
+
+  NOTE: this applies to JDE's support for jdb, the debugger that comes with the
+  JDK. It does not apply to JDEbug, the JDE's own built-in debugger.
+
+  Thanks to Francois Cogne <cogne@col.bsf.alcatel.fr> for providing this 
+  enhancement.
+
+* Fixed beanshell startup bug on Unix platforms.
+
+* You can now use the notation [f1], [f2], etc.,  to specify function keys
+  when customizing jde-key-bindings.
+
+* Fixed several incompatibilities between JDEbug and XEmacs.
+
+
+JDE-2.1.6beta16 Release Notes
+
+* Added a local variables buffer to JDEbug. 
+
+  This buffer displays the values of local variables whenever the program halts
+  at a breakpoint or is stepped. Trees are used to display objects and arrays.
+  Expanding an object shows its fields. If any of its fields are objects, you
+  can expand those too. Expanding an array shows the values of its elements.
+  If the elements are arrays (i.e., the array is multidimensional), you can
+  expand each of them until you get to the actual values. The local variables
+  buffer shows java.lang.String objects as strings rather than as objects.
+
+
+* Added a Show Buffers command to JDEbug.
+
+  This command shows the selected buffer, e.g., the local variables buffer
+  or the threads buffer,  in the middle window of the debugger frame.
+
+* Added a jde-show-class-source (C-c C-v C-y) command. This command finds
+  and displays the source for the (unqualified) class name at point. 
+  This command finds only classes whose source is in the paths specified by 
+  jde-db-source-directories. Thanks to Phil Lord for providing the 
+  initial implementation of this command.
+
+* Fixed numerous small problems found by Michael Ernst. Thanks Michael.
+
+
+
+JDE-2.1.6beta15 Release Notes
+
+* Added Attach Process on Local Host and Remote Host commands.
+
+* Added an Attach Process Via Shared Memory command for Windows apps.
+
+* Enhanced the JDE->Run App command to run the executable specified by jde-run-executable
+  with the arguments specified by jde-run-executable-args.
+
+  This is useful when you are developing an application consisting of an executable program
+  that launches a Java virtual machine.
+
+* Fixed jde-bug-debug-app command so that it gives a meaningful error message 
+  if JPDA is not properly installed.
+
+* Added JDEbug commands for setting and clearing watchpoints.
+
+* Fixed JDEbug stepping logic so that each source buffer is always loaded into 
+  the same window.
+
+* The JDE now suspends project context-switching while JDEbug is running a debugee
+  process. This avoids the debugger losing track of its current position in the source
+  code due to a change in the setting of jde-db-source-directories when switching
+  among projects that define this variable differently.
+
+* The submit bug report command now includes environment variables.
+
+* Added a Project menu to the JDE menu.
+
+* Moved the Options menu to the Project Menu.
+
+* Added a Project Files submenu to the new Project menu.
+
+* Moved the Save Project item to the Project Files menu.
+
+* Added Load and Load All commands to the Project Files menu. The first command 
+  loads the project file for the current Java source buffer. The Load All 
+  command loads the project file for each open source buffer.
+
+* Added a jde-project-context-switching-enabled-p customization variable. You can use
+  this variable to turn off automatic loading of project files. This allows you to 
+  manage project file loading manually.
+
+
+
+
+JDE-2.1.6beta14 Release Notes
+
+* JDE->Run Applet now looks in the current Java source directory for an html file having the
+  same root name as the current Java source buffer. If it finds such a file, it runs it. 
+  Otherwise, it runs the first html file that it encounters in the directory. Thanks to
+  Richard Y. Kim <ryk@coho.net> for providing a patch implementing this change.
+
+* Changed key binding for jde-help-class from C-c C-v C-h to C-c C-v C-w because C-h
+  is a reserve binding. Thanks to Richard Y. Kim <ryk@coho.net> for suggesing this change.
+
+  Don't forget to reset the value of jde-key-bindings to the standard setting if you
+  are using project files.
+  
+* Added command, JDEbug->Processes->Remove Dead Processes, that removes all objects 
+  associated with dead processes, including their buffers.
+
+* Fixed the debugger's launch process command so that it fails gracefully, 
+  without producing a Lisp backtrace.
+
+* Recompiled the debugger, using javac. Previous versions were compiled with jikes. The jikes 
+  version results in a mysterious null pointer exception when stepping through source code.
+
+* Added the variable jde-bug-jre-home. This variable specifies the home directory of the Java 
+  runtime environment containing the executable, e.g., java,  to be used to launch processes 
+  (see next note). If you do not specify a home directory, the home directory is the same as 
+  that of the executable used to run the debugger itself.
+
+* Added the variable jde-bug-vm-executable. This variable specifies the name of the executable to 
+  use to launch debuggee processes. This defaults to java on Unix platforms and javaw on Windows
+  platforms.
+
+
+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 Project->Options->General 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.
+
+
+
+
+
+
+
+

File beanshell.el

-;;; beanshell.el
-;; $Revision$ 
-
-;; Author: Paul Kinnucan <paulk@mathworks.com>
-;; Maintainer: Paul Kinnucan
-;; Keywords: java, tools
-
-;; Copyright (C) 1997, 1998 Paul Kinnucan.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-(defun bsh()
-"*Starts BeanShell, a Java interpreter developed by Pat Niemeyer."
-  (interactive)
-  (bsh-internal t))
-
-(defun bsh-internal (&optional display-buffer) 
-  (let ((bsh-buffer-name "*bsh*"))
-    (if (not (comint-check-proc bsh-buffer-name))
-	(let* ((bsh-buffer (get-buffer-create bsh-buffer-name))
-	       (jde-java-directory
-		(concat
-		 (jde-find-jde-data-directory)
-		 "java/"))
-	       (vm (if (eq system-type 'windows-nt)
-		       jde-run-java-vm-w
-		     jde-run-java-vm))
-	       (vm-args
-		(list
-		 "-classpath"
-		 (concat
-		  jde-java-directory "lib/jde.jar" jde-classpath-separator
-		  jde-java-directory "lib/bsh.jar" jde-classpath-separator
-		  (if jde-global-classpath
-		      (jde-run-build-classpath-arg jde-global-classpath)
-		    (getenv "CLASSPATH")))
-		 "bsh.Interpreter")))
-	  (save-excursion
-	    (set-buffer bsh-buffer)
-	    (erase-buffer)
-	    (comint-mode))
-	  (save-w32-show-window
-	   ;; (message "%s" (nth 1 vm-args))
-	   (message "%s" "Starting the BeanShell. Please wait...")
-	   (comint-exec bsh-buffer "bsh" vm nil vm-args))
-	  (if display-buffer
-	      (pop-to-buffer bsh-buffer-name)))
-      (when display-buffer
-	  (message "The Java interpreter is already running.")
-	  (pop-to-buffer bsh-buffer-name)))))
-
-(setq bsh-tq-reply nil)
-
-(defun bsh-eval-filter (process result)
-  (let ((end-of-result (string-match ".*bsh % " result)))
-    (if end-of-result
-	(setq bsh-tq-reply (concat bsh-tq-reply (substring result 0 end-of-result)))
-      (setq bsh-tq-reply (concat bsh-tq-reply result))
-      (accept-process-output process 5 5))))
-
-(defun bsh-eval (expr &optional eval-return)
-  "Uses the BeanShell Java interpreter to evaluate a Java statement.
-If the interpreter is not already running, this function starts
-the interpreter. This function returns any text output by the
-Java interpreter's standard out or standard error pipes.
-If the optional argument eval-return is non-nil, this function
-returns the result of evaluating the Java output as a Lisp
-expression."
-  (let* ((bsh-process
-	  (if (get-process "bsh")
-	      (get-process "bsh")
-	    (progn
-	      (bsh-internal)
-	      (accept-process-output (get-process "bsh"))
-	      (get-process "bsh")))) 
-	 (comint-filter (process-filter bsh-process)))
-    (setq bsh-tq-reply nil)
-    (set-process-filter bsh-process 'bsh-eval-filter)
-    (process-send-string bsh-process (concat expr "\n"))
-    (if (not (accept-process-output bsh-process 100 100))
-	(message "No reply from BeanShell"))
-    (set-process-filter bsh-process comint-filter)
-    (if eval-return
-	(eval (read bsh-tq-reply))
-      bsh-tq-reply)))
-
-(defun bsh-eval-r(java-statement) 
-  "Convenience function for evaluating Java statements
-that return Lisp expressions as output. This function 
-invokes bsh-eval with the evaluate-return option set to
-t."
-  (bsh-eval java-statement t))
-
-(provide 'beanshell);
-
-;; $Log$
-;; Revision 1.3  1999/01/13 17:36:58  andyp
-;; Nail the beanshell interpreter bug.
-;;
-;; Revision 1.2  1999/01/12 23:49:38  andyp
-;; Fix classpath separator problems.
-;;
-;; Revision 1.1  1999/01/06 06:04:03  andyp
-;; update to 2.1.4
-;;
-;; Revision 1.6  1998/12/13 22:10:04  paulk
-;; Add check for chunked traffic between Emacs and the BeanShell.
-;;
-;; Revision 1.5  1998/12/09 00:59:43  paulk
-;; Added a startup message for beanshell.
-;;
-;; Revision 1.4  1998/11/27 10:07:57  paulk
-;; Use CLASSPATH environment variable if jde-global-classpath is nil.
-;;
-;; Revision 1.3  1998/11/22 23:14:28  paulk
-;; Fixed path separator bug.
-;;
-;; Revision 1.2  1998/11/22 18:11:56  paulk
-;; Changed path to use jde.jar.
-;;
-;; Revision 1.1  1998/10/22 00:07:56  paulk
-;; Initial revision
-;;
-
-
-;; End of bsh.el

File jde-compile.el

-;;; jde-compile.el -- Integrated Development Environment for Java.
-;; $Revision$ $Date$ 
-
-;; Author: Paul Kinnucan <paulk@mathworks.com>
-;; Maintainer: Paul Kinnucan
-;; Keywords: java, tools
-
-;; Copyright (C) 1997, 1998 Paul Kinnucan.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-
-;; This is one of a set of packages that make up the 
-;; Java Development Environment (JDE) for Emacs. See the
-;; JDE User's Guide for more information.
-
-;; The latest version of the JDE is available at
-;; <URL:http://sunsite.auc.dk/jde/>.
-
-;; Please send any comments, bugs, or upgrade requests to
-;; Paul Kinnucan at paulk@mathworks.com.
-
-;;; Code:
-
-
-(defgroup jde-compile-options nil
-  "JDE Compiler Options"
-  :group 'jde
-  :prefix "jde-compile-option-")
-
-(defcustom jde-compile-option-command-line-args ""
-  "*Specify options as a string of command-line arguments.
-The value of this variable should be a string of switches understood
-by the compiler, for example, -depend -g. This variable is intended to
-be used to set compile options not otherwise defined by the JDE, in
-particular, options not defined by javac but used by another compiler
-that you might want to use with the JDE."
-  :group 'jde-compile-options
-  :type 'string)
-
-(defcustom jde-compile-option-classpath nil
-"*Specify paths of classes required to compile this project.
-The JDE uses the specified paths to construct a -classpath
-argument to pass to the compiler. This option overrides the
-`jde-global-classpath' option."
-  :group 'jde-compile-options
-  :type '(repeat (string :tag "Path")))
-
-(defcustom jde-compile-option-sourcepath nil
-"*Specify the source code path to search for class or interface definitions.
-
-As with the user class path, source path entries  can be directories, JAR 
-archives, or ZIP archives. If packages are used, the local path name within 
-the directory or archive must reflect the package name. 
-
-Note that classes found through the classpath are subject to automatic 
-recompilation if their sources are found."
-  :group 'jde-compile-options
-  :type '(repeat (string :tag "Path")))
-
-(defcustom jde-compile-option-directory ""
-  "*Specifies the root directory of the class file hierarchy.
-The compiler places compiled classes in the specified
-directory. For example, specifying the class
-directory as: 
-  
-  C:\\users\\dac\\classes
-
-causes the class files for the classes in the MyProgram.java source
-file to be saved in the directory C:\\users\\dac\\classes. If your class 
-is in the package demos\\awt, the class files would be placed in directory
-C:\\users\\dac\\classes\\demos\\awt."
-  :group 'jde-compile-options
-  :type 'string)
-
-(defcustom jde-compile-option-deprecation nil
-  "*Warn use or override of a deprecated member or class. 
-A member or class is deprecated if its documentation comment contains
-the @deprecated tag. The compiler will emit a warning at the end of
-compilation whether or not the deprecation option is on; this option
-causes the location of each individual use or override to be noted.
-
-Deprecated members or classes are deliberately not mentioned if the
-source file containing the deprecation is being recompiled.  This can
-happen because the file is on the command line or because the depend
-option is on and the source file is out of date.
-"
-  :group 'jde-compile-options
-  :type 'boolean)
-
-
-(defcustom jde-compile-option-debug 
-  (list "selected" (list t nil nil))
-  "*Include debug information in classes.
-The compiler includes line number information by default.
-
-Before JDK 1.2, the the debug and optimize options were
-mutually exclusive. In JDK 1.2, it is possible to combine debug and
-optimize, but the shortcuts taken by optimized code may occasionally
-produce surprising debugging results. For example, declared variables
-may not exist and code may appear to move or not be executed at all."
-  :group 'jde-compile-options
-  :type '(list 
-	  (radio-button-choice 
-	   :format "%t \n%v"
-	   :tag "Debug info to include in class:"
-	   (const "all")
-	   (const "none")
-	   (const "selected"))
-	  (list
-	   :tag "    info"
-	   :indent 4
-	   (checkbox :format "%[%v%] %t \n"
-		     :tag "Line Numbers")
-	   (checkbox :format "%[%v%] %t \n"
-		     :tag "Variables")
-	   (checkbox :format "%[%v%] %t \n"
-		     :tag "Source")))
-	   
-)
-
-
-(defcustom jde-compile-option-optimize nil
-"*Directs the compiler to try to generate faster code. 
-This may slow down compilation, make larger class files, and/or make
-it difficult to debug.
-
-Prior to 1.2, the optimize option tried to inline methods across
-classes. This created compatibility problems and sometimes generated
-illegal bytecode. The optimize option also implicitly turned on the
-depend option and implicitly turned off the debug option.
-
-In JDK 1.2, the optimize option no longer inlines across classes and
-so may safely be used for any java compilation. Optimize no longer
-implicitly turns on depend or implicitly turns off debug."
-  :group 'jde-compile-options
-  :type 'boolean)
-
-
-(defcustom jde-compile-option-depend nil
-"*Analyze dependencies.
-Causes recompilation of class files on which the source files given as
-command line arguments recursively depend. Without this option, only
-files that are directly depended on and missing or out-of-date will be
-recompiled. Recompilation does not extend to missing or out-of-date
-files only depended on by already up-to-date class files.
-
-Note: if you are using a compiler other than post JDK 1.1.6 versions
-of javac, you may need to specify the command-line switch used by
-the compiler to specify dependency checking. See 
-`jde-compile-option-depend-switch' for more information."
-  :group 'jde-compile-options
-  :type 'boolean)
-
-(defcustom jde-compile-option-depend-switch (list "-Xdepend")
-"*Specify command line switch for depend option.
-This option is necessary because the command-line switch for
-dependency checking differs among Java compilers. Choose
-from the following options:
-
-  -Xdepend  Full dependency checking (post JDK 1.1.6)
-  -depend   Full dependency checking (jikes and pre-JDK 1.1.6)
-  +F        Check everything except jar and zip files (jikes only)
-  +U        Check everything including jar and zip files (jikes only)"
-  :group 'jde-compile-options
-  :type '(list 
-	  (radio-button-choice 
-	   :format "%t \n%v"
-	   :tag "Select -Xdepend (javac) or -depend (jikes):"
-	   (const "-Xdepend")
-	   (const "-depend")
-	   (const "+F")
-	   (const "+U"))))
-
-(defcustom jde-compile-option-vm-args nil
-"*Specify command-line arguments for Java interpreter.
-Passes the specified arguments to the Java interpreter that runs the
-compiler. The argument should not contain spaces. This is useful for
-adjusting the compiler's execution environment or memory usage."
-  :group 'jde-compile-options
-  :type '(repeat (string :tag "Option")))
-
-(defcustom jde-compile-option-verbose nil
-"*Print verbose messages.
-Causes the compiler and linker to print out messages about what source
-files are being compiled and what class files are being loaded."
-  :group 'jde-compile-options
-  :type 'boolean)
-
-(defcustom jde-compile-option-nowarn nil
-"*Turn off warnings.
-If this option is specified, the compiler does not print out any
-warnings."
-  :group 'jde-compile-options
-  :type 'boolean)
-
-(defcustom jde-compile-option-encoding nil
-"*Specify the source file encoding name, such as EUCJIS\\SJIS.
-If this option is not specified, then the platform default converter
-is used."
-  :group 'jde-compile-options
-  :type 'boolean)
-
-(defcustom jde-compile-option-target (list "1.1")
-"*Generate class files that will work on VMs with the specified version.
- 
-The default is to generate class files to be compatible with both
-1.1 and 1.2 VMs. The versions supported by javac in JDK1.2 are: 
-
-  1.1  Ensure that generated class files will be compatible 
-       with 1.1 and 1.2 VMs. This is the default. 
-  
-  1.2  Generate class files that will run on 1.2 VMs, but 
-       not on 1.1 VMs.
-
-By default, classes are compiled against the bootstrap and extension classes
-of the JDK that javac shipped with. But javac also supports cross-compiling, 
-where classes are compiled against a bootstrap and extension classes of a 
-different Java platform implementation. It is important to use 
-`jde-compile-option-bootclasspath' and `jde-compile-option-extdirs' when 
-cross-compiling."
-  :group 'jde-compile-options
-  :type '(list
-	  (radio-button-choice 
-	   :format "%t \n%v"
-	   :tag "Target VM:"
-	   (const "1.1")
-	   (const "1.2"))))
-
-(defcustom jde-compile-option-bootclasspath nil
-"*Cross-compile against the specified set of boot classes.
-As with the user class path, boot class path entries can be 
-directories, JAR archives, or ZIP archives."
-  :group 'jde-compile-options
-  :type '(repeat (string :tag "Path")))
-
-(defcustom jde-compile-option-extdirs nil
-"*Cross-compile against the specified extension directories. 
-Each JAR archive in the specified directories is searched for class files."
-  :group 'jde-compile-options
-  :type '(repeat (string :tag "Path")))
-
-(defcustom jde-compile-option-verbose-path nil
-"*Describe how paths and standard extensions were searched to find
-source and class files."
-  :group 'jde-compile-options
-  :type 'boolean)
-
-
-(defun jde-build-path-arg (path-type path-list quote)
-"Build a path argument from a list of paths."
-  (let ((path "")
-	(len (length path-list))
-	(n 0))
-    (while (< n len)
-      (setq path (concat path
-			      (if (> n 0)
-				  jde-classpath-separator)
-			      (elt path-list n)))
-      (setq n (1+ n)))
-    (if quote
-	(setq path (concat "\"" path "\"")))
-    (setq path (concat path-type " " path))))
-
-(defun jde-build-classpath-arg (path-list quote)
-"Build a classpath from a list of paths."
- (jde-build-path-arg "-classpath" path-list quote))
-
-; (defun jde-build-classpath-arg (path-list quote)
-; "Build a classpath from a list of paths."
-;   (let ((classpath "")
-; 	(len (length path-list))
-; 	(n 0))
-;     (while (< n len)
-;       (setq classpath (concat classpath
-; 			      (if (> n 0)
-; 				  jde-classpath-separator)
-; 			      (elt path-list n)))
-;       (setq n (1+ n)))
-;     (if quote
-; 	(setq classpath (concat "\"" classpath "\"")))
-;     (setq classpath (concat "-classpath " classpath))))
-
-(defun jde-get-compile-options ()
-"Constructs a command-line argument string for compiler.
-The string consists of the contents of the jde-compile-options
-variable concatenated with the various jde-compile-option
-settings.
-"
-  (let (options)
-
-    (if jde-compile-option-classpath
-	(setq options 
-	      (jde-build-classpath-arg
-	       jde-compile-option-classpath jde-quote-classpath))
-      (if jde-global-classpath
-	  (setq options
-		(jde-build-classpath-arg
-		 jde-global-classpath jde-quote-classpath))))
-
-    (if jde-compile-option-sourcepath
-	(setq options 
-	      (concat options " "
-	      (jde-build-path-arg
-	       "-sourcepath"
-	       jde-compile-option-sourcepath 
-	       jde-quote-classpath))))
-
-    (if jde-compile-option-bootclasspath
-	(setq options 
-	      (concat options " "
-	      (jde-build-path-arg
-	       "-bootclasspath"
-	       jde-compile-option-bootclasspath 
-	       jde-quote-classpath))))
-
-    (if jde-compile-option-extdirs
-	(setq options 
-	      (concat options " "
-	      (jde-build-path-arg
-	       "-extdirs"
-	       jde-compile-option-extdirs
-	       jde-quote-classpath))))
-
-    ;; Debug option.
-    (let* ((include-option (nth 0 jde-compile-option-debug))
-	   (selected (nth 1 jde-compile-option-debug))
-	   (lines (nth 0 selected))
-	   (vars (nth 1 selected))
-	   (src (nth 2 selected)))
-      (cond
-       ((and
-	 (string= include-option "selected")
-	 lines
-	 (not vars)
-	 (not src)))
-       ((string= include-option "all")
-	(setq options (concat options " -g")))
-       ((string= include-option "none")
-	(setq options (concat options " -g:none")))
-       ((and
-	 (string= include-option "selected")
-	 (or lines vars src))
-	(setq options 
-	      (concat options 
-		      " -g:"
-		      (if lines
-			  (if (or vars src) "lines,"
-			    "lines"))
-		      (if vars
-			  (if vars
-			      (if src "vars," "vars")))
-		      (if src "source"))))))      
-
-    (if (not (string= jde-compile-option-directory ""))
-	(setq options
-	      (concat options 
-		" -d "
-		jde-compile-option-directory)))
-
-    (if jde-compile-option-deprecation
-	(setq options (concat options " -deprecation")))
-
-    (if jde-compile-option-optimize
-	(setq options (concat options " -O")))
-
-    (if jde-compile-option-depend
-	(setq options 
-	      (concat options " " (car jde-compile-option-depend-switch))))
-
-    (if jde-compile-option-vm-args
-	(setq options 
-	      (concat options (jde-build-compile-vm-args))))
-
-    (if jde-compile-option-verbose
-	(setq options (concat options " -verbose")))
-
-    (if jde-compile-option-verbose-path
-	(setq options (concat options " -Xverbosepath")))
-
-    (if jde-compile-option-nowarn
-	(setq options (concat options " -nowarn")))
-
-    (if (not (string= jde-compile-option-command-line-args ""))
-	(setq options (concat options " " 
-			      jde-compile-option-command-line-args)))
-
-    (let ((target (car jde-compile-option-target)))
-      (if (not (string= target "1.1"))
-	  (setq options (concat options " -target " target))))
-	
-
-    options))
-
-;;;###autoload
-(defun jde-set-compile-options (options)
-  "Sets the compile options.
-Enter the options as you would on the command line, e.g.,
--depend -verbose."
-  (interactive
-   "sEnter options: ")
-  (setq jde-compile-option-command-line-args options))
-
-
-;;;###autoload
-(defun jde-compile ()
-  "Compile the Java program in the current buffer.
-This command invokes the compiler specified by `jde-compiler'
-with the options specified by the JDE customization variables
-that begin with `jde-compile'. If the variable
-`jde-read-compile-args' is non-nil, this command reads
-additional compilation options from the minibuffer, with
-history enabled."
-  (interactive)
-
-  (if jde-read-compile-args
-      (setq jde-interactive-compile-args
-	      (read-from-minibuffer 
-	       "Compile args: "
-	       jde-interactive-compile-args
-	       nil nil
-	       '(jde-interactive-compile-arg-history . 1))))
-
-  (let ((compile-command
-	 (jde-make-compile-command 
-	  jde-interactive-compile-args)))
-	  
-
-  
-
-    ;; Force save-some-buffers to use the minibuffer
-    ;; to query user about whether to save modified buffers.
-    ;; Otherwise, when user invokes jde-compile from
-    ;; menu, save-some-buffers tries to popup a menu
-    ;; which seems not to be supported--at least on
-    ;; the PC.
-    (if (and (eq system-type 'windows-nt)
-	     (not jde-xemacsp))
-	(let ((temp last-nonmenu-event))
-	  ;; The next line makes emacs think that jde-compile
-	  ;; was invoked from the minibuffer, even when it
-	  ;; is actually invoked from the menu-bar.
-	  (setq last-nonmenu-event t)
-	  (save-some-buffers (not compilation-ask-about-save) nil)
-	  (setq last-nonmenu-event temp))
-      (save-some-buffers (not compilation-ask-about-save) nil))
-    (compile-internal compile-command "No more errors")))
-
-(provide 'jde-compile)
-
-;; Change History
-;; $Log$
-;; Revision 1.2  1999/01/12 00:14:04  andyp
-;; kb binary files and fix menu bug.
-;;
-;; Revision 1.1  1999/01/06 06:04:03  andyp
-;; update to 2.1.4
-;;
-;; Revision 1.2  1998/12/07 01:35:28  paulk
-;; Updated compile options to reflect changes in command-line options
-;; accepted by javac.
-;;
-;; Revision 1.1  1998/12/06 02:37:54  paulk
-;; Initial revision
-;;
-
-;; End of jde-compile.el

File jde-db.el

-;;; jde-db.el -- Debugger mode for jdb.
-;; $Revision$ $Date$ 
-
-;; Author: Paul Kinnucan <paulk@mathworks.com>
-;; Maintainer: Paul Kinnucan
-;; Keywords: java, tools
-
-;; Copyright (C) 1997 Paul Kinnucan.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, US
-;;; Commentary:
-
-;; This package interfaces emacs to jdb, the debugger
-;; distributed as part of JavaSoft's Java
-;; Development Kit (JDK).
-
-;; Please send bug reports and enhancement suggestions
-;; to Paul Kinnucan at <paulk@mathworks.com>
-
-;; See end of this file for change history.
-
-;;; Code:
-
-(require 'gud)
-
-;; ======================================================================
-;; jde-db variables
-
-(defcustom jde-db-debugger (cons "jdb" "Executable")
-"*Specify debugger.
-Enter the path name of debugger, if debugger ia an executable; otherwise,
-the fully qualified package name of the debugger class."
-  :group 'jde-project
-  :type '(cons
-	  (string :tag "Name")
-	  (radio-button-choice :format "%t \n%v"
-			       :tag "Debugger type is "
-		 (const "Executable")
-		 (const "Class"))))
-
-(defcustom jde-db-source-directories (list "d:/jdk1.2/src/")
-  "*List of source directory paths.
-jde-db uses this list to locate source files visited by the debugger
-while stepping through an application."
-  :group 'jde-project
-  :type '(repeat (string :tag "Path")))
-
-
-(defcustom jde-db-mode-hook nil
-  "*Customization hook for jde-db inferior mode."
-  :group 'jde-project
-  :type 'hook
-)
-
-(defcustom jde-db-set-initial-breakpoint t
-  "*Set breakpoint in main and run application.
-If this variable is non-nil, the JDE issues the following 
-debugger commands at startup:
-
-  stop in app-class.main
-  run
-
-where app-class is the qualified name of your application's
-main class. This variable is non-nil by default. Set it to
-nil, if you want to set an initial breakpoint yourself."
-  :group 'jde-project
-  :type 'boolean)
-
-(defcustom jde-db-startup-commands nil
-  "*Commands to run at debugger startup."
-  :group 'jde-project
-  :type '(repeat (string :tag "Command"))
-)
-
-(defcustom jde-db-read-vm-args nil
-"*Read vm arguments from the minibuffer.
-If this variable is non-nil, the jde-db command reads vm arguments
-from the minibuffer and appends them to those specified by
-the `jde-db-option' variable group."
-  :group 'jde-project
-  :type 'boolean)
-
-(defvar jde-db-interactive-vm-args ""
-"Vm arguments read from the minibuffer.")
-
-(defvar jde-db-interactive-vm-arg-history nil
-"History of vm arguments read from the minibuffer")
-
-(defcustom jde-db-read-app-args nil
-"*Read arguments to be passed to application from the minibuffer."
-  :group 'jde-project
-  :type 'boolean)
-
-(defvar jde-db-interactive-app-args ""
-"Application arguments read from the minibuffer.")
-
-(defvar jde-db-interactive-app-arg-history nil
-"History of application arguments read from the minibuffer")
-
-
-(defgroup jde-db-options nil
-  "JDE Debugger Options"
-  :group 'jde
-  :prefix "jde-run-option-")
-
-(defcustom jde-db-option-classpath nil
-"*Specify paths of classes required to run this application.
-The JDE uses the specified paths to construct a -classpath
-argument to pass to the Java interpreter. This option overrides the
-`jde-global-classpath' option."
-  :group 'jde-db-options
-  :type '(repeat (file :tag "Path")))
- 
-(defcustom jde-db-option-verbose (list nil nil nil)
-  "*Print messages about the running process.
-The messages are printed in the run buffer."
-  :group 'jde-db-options
-  :type '(list :indent 2
-	       (checkbox :format "\n  %[%v%] %h \n"
-			 :doc "Print classes loaded.
-Prints a message in the run buffer each time a class is loaded.")
-	       (checkbox :format "%[%v%] %h \n"
-			 :doc "Print memory freed.
-Prints a message in the run buffer each time the garbage collector
-frees memory.")
-	       (checkbox :format "%[%v%] %h \n"
-			 :doc "Print JNI info.
-Prints JNI-related messages including information about which native
-methods have been linked and warnings about excessive creation of
-local references.")))
-
-(defcustom jde-db-option-properties nil
-  "*Specify property values.
-Enter the name of the property, for example, awt.button.color, in the
-Property Name field; enter its value, for example, green, in the
-Property Value field. You can specify as many properties as you like."
-  :group 'jde-db-options
-  :type '(repeat (cons 
-		  (string :tag "Property Name") 
-		  (string :tag "Property Value"))))
-
-(defcustom jde-db-option-heap-size (list
-				    (cons 1 "megabytes")
-				    (cons 16 "megabytes"))
-"*Specify the initial and maximum size of the interpreter heap."
-:group 'jde-db-options
-:type '(list
-	(cons (integer :tag "Start")
-	     (radio-button-choice (const "bytes")
-				  (const "kilobytes")
-				  (const "megabytes")))
-	(cons (integer :tag "Max")
-	       (radio-button-choice (const "bytes")
-				    (const "kilobytes")
-				    (const "megabytes")))))
-
-
-(defcustom jde-db-option-stack-size (list
-				     (cons 128 "kilobytes")
-				     (cons 400 "kilobytes"))
-  "*Specify size of the C and Java stacks."
-  :group 'jde-db-options
-  :type '(list
-	  (cons (integer :tag "C Stack")
-	       (radio-button-choice (const "bytes")
-				    (const "kilobytes")
-				    (const "megabytes")))
-	  (cons (integer :tag "Java Stack")
-	       (radio-button-choice (const "bytes")
-				    (const "kilobytes")
-				    (const "megabytes")))))
-
-(defcustom jde-db-option-garbage-collection (list t t)
-  "*Specify garbage collection options."
-  :group 'jde-db-options
-  :type '(list :indent 2
-	       (checkbox :format "%[%v%] %t \n"
-			 :tag "Collect garbage asynchronously.")
-	       (checkbox :format "%[%v%] %t \n"
-			 :tag "Collect unused classes.")))
-
-(defcustom jde-db-option-java-profile (cons nil "./java.prof")
-  "*Enable Java profiling."
-  :group 'jde-db-options
-  :type '(cons boolean
-	       (file :tag "File"
-		     :help-echo 
-"Specify where to put profile results here.")))
-
-(defcustom jde-db-option-heap-profile (cons nil
-					    (list "./java.hprof"
-						  5
-						  20
-						  "Allocation objects"))
-"*Output heap profiling data."
-  :group 'jde-db-options
-  :type '(cons boolean
-	       (list
-		(string :tag "Ouput File Path")
-		(integer :tag "Stack Trace Depth")
-		(integer :tag "Allocation Sites")
-		(radio-button-choice :format "%t \n%v"
-				     :tag "Sort output based on:"
-		 (const "Allocation objects")
-		 (const "Live objects")))))
-		 
-(defcustom jde-db-option-verify (list nil t)
-  "*Verify classes."
-  :group 'jde-db-options
-  :type '(list :indent 2
-	       (checkbox :format "%[%v%] %t \n"
-			 :tag "Executed code in all classes.")
-	       (checkbox :format "%[%v%] %t \n"
-			 :tag "Classes loaded by a classloader.")))
-
-(defcustom jde-db-option-vm-args nil
-  "*Specify arguments to be passed to the Java vm.
-This option allows you to specify one or more arguments to be passed
-to the Java interpreter. It is an alternative to using JDE Run Option
-variables, such as `jde-run-option-stack-size', to specify Java
-interpreter options. Also, it makes it possible to use the JDE with
-interpreters that accept command line arguments not supported by 
-the JDE Run Option variable set."
-  :group 'jde-db-options
-  :type '(repeat (string :tag "Argument")))
-
-
-(defcustom jde-db-option-application-args nil
-  "*Specify command-line arguments to pass to the application.
-The JDE passes the specified arguments to the application on
-the command line."
-  :group 'jde-db-options
-  :type '(repeat (string :tag "Argument")))
-
-
-;;;###autoload
-(defun jde-db-set-debugger (debugger is-executable)
-  "Specify the pathname of the debugger, if an executable, or the
-debugger's fully qualified class name, if a class."
-  (interactive
-   "sEnter name of Java interpreter: \nsIs %s executable? (yes): ")
-  (let ((db debugger)
-	(type
-	 (if (stringp is-executable)
-	     (if (or
-		  (string= is-executable "")