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 . It fixes the following bugs: * Beanshell does not work with JDK 1.1.x on Windows platforms. Fix contributed by "Mike Woolley" * -classic switch is not first on the command line of applications launched by JDEBug. Fix contributed by David Ponce . * "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 . 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 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" 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 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 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 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 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 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 . * Added missing java-font-lock-keywords-3 for XEmacs. Thanks to Stephane for spotting this bug.