Make paths of directories and jar files configurable. Part of this patch was taken from Debian and heavily modified, see: http://patch-tracking.debian.net/patch/series/view/jde/2.3.5.1-5/0005-Set-the-location-of-needed-files-for-beanshell.el-an.patch --- jde-orig/lisp/beanshell.el 2007-12-29 04:21:28.000000000 +0100 +++ jde/lisp/beanshell.el 2009-03-20 22:00:01.000000000 +0100 @@ -890,14 +890,18 @@ (add-to-list 'auto-mode-alist '("\\.bsh\\'" . bsh-script-mode)) +(defcustom bsh-html-directory (bsh-find-bsh-data-directory) + "Directory of the beanshell HTML documentation." + :group 'bsh + :type 'directory) + ;;;###autoload (defun bsh-script-help () "Display BeanShell User's Guide." (interactive) - (let* ((bsh-dir (bsh-find-bsh-data-directory)) - (bsh-help - (if bsh-dir - (expand-file-name "bsh-ug.html" bsh-dir)))) + (let ((bsh-help + (if bsh-html-directory + (expand-file-name "bsh-ug.html" bsh-html-directory)))) (if (and bsh-help (file-exists-p bsh-help)) --- jde-orig/lisp/jde-bug.el 2007-12-29 04:21:28.000000000 +0100 +++ jde/lisp/jde-bug.el 2009-03-20 19:32:17.000000000 +0100 @@ -2437,10 +2437,10 @@ (defun jde-bug-help () "Displays the JDEbug User's Guide." (interactive) - (let* ((jde-dir (jde-find-jde-doc-directory)) - (jdebug-help - (if jde-dir - (expand-file-name "doc/html/jdebug-ug/jdebug-ug.html" jde-dir)))) + (let ((jdebug-help + (if jde-html-directory + (expand-file-name "jdebug-ug/jdebug-ug.html" + jde-html-directory)))) (if (and jdebug-help (file-exists-p jdebug-help)) --- jde-orig/lisp/jde-checkstyle.el 2007-12-29 04:21:28.000000000 +0100 +++ jde/lisp/jde-checkstyle.el 2009-03-20 21:56:44.000000000 +0100 @@ -316,10 +316,6 @@ (vm-path (oref (jde-run-get-vm) :path)) (source-file (concat (file-name-nondirectory buffer-file-name))) - (jde-java-directory - (concat - (jde-find-jde-data-directory) - "java/")) (args (append (unless jde-checkstyle-expanded-properties-file (jde-checkstyle-get-property-args this)) @@ -327,13 +323,13 @@ (list "-classpath" (if jde-checkstyle-classpath (jde-build-classpath jde-checkstyle-classpath) - (jde-normalize-path - (expand-file-name "lib/checkstyle-all.jar" jde-java-directory)))) + (jde-normalize-path jde-checkstyle-jar-file))) (list jde-checkstyle-class) (list "-c" (if jde-checkstyle-style (jde-normalize-path jde-checkstyle-style) - (concat (jde-find-jde-data-directory) "java/lib/sun_checks.xml"))) + (expand-file-name "lib/sun_checks.xml" + jde-java-directory))) (if jde-checkstyle-expanded-properties-file (list "-p" (jde-normalize-path jde-checkstyle-expanded-properties-file))) (if jde-checkstyle-module-package-names-file --- jde-orig/lisp/jde-dbs.el 2007-12-29 04:21:28.000000000 +0100 +++ jde/lisp/jde-dbs.el 2009-03-20 21:57:58.000000000 +0100 @@ -899,9 +899,6 @@ (jde-normalize-path 'jde-run-working-directory) source-directory)) (vm (oref (jde-run-get-vm) :path)) - (jde-java-directory - (expand-file-name "java" - (jde-find-jde-data-directory))) (vm-args (let (args) (setq args --- jde-orig/lisp/jde.el 2008-12-08 01:51:15.000000000 +0100 +++ jde/lisp/jde.el 2009-03-20 21:40:13.000000000 +0100 @@ -1731,14 +1731,19 @@ jde.el." (jde-find-jde-data-directory)) +(defcustom jde-html-directory + (expand-file-name "doc/html" (jde-find-jde-doc-directory)) + "Directory of the JDE HTML documentation." + :group 'jde-project + :type 'directory) + ;;;###autoload (defun jde-show-help () "Displays the JDE User's Guide in a browser." (interactive) - (let* ((jde-dir (jde-find-jde-doc-directory)) - (jde-help - (if jde-dir - (expand-file-name "doc/html/jde-ug/jde-ug.html" jde-dir)))) + (let ((jde-help + (if jde-html-directory + (expand-file-name "jde-ug/jde-ug.html" jde-html-directory)))) (if (and jde-help (file-exists-p jde-help)) @@ -2445,21 +2450,58 @@ "The single instance of the JDEE's BeanShell.")) "Class of JDEE BeanShells. There is only one per Emacs session.") +(defcustom jde-java-directory + (expand-file-name "java" (jde-find-jde-data-directory)) + "Top-level directory of JDE Java files." + :group 'jde-project + :type 'directory) + +(defcustom jde-bsh-commands-directory + (expand-file-name "bsh-commands" jde-java-directory) + "Directory of beanshell commands." + :group 'bsh + :type 'directory) + +(defcustom jde-classes-directory + (expand-file-name "classes" jde-java-directory) + "Directory of JDE classes." + :group 'jde-project + :type 'directory) + +(defcustom jde-checkstyle-jar-file + (expand-file-name "lib/checkstyle-all.jar" jde-java-directory) + "Path of the checkstyle-jar file." + :group 'jde-project + :type 'file) + +(defcustom jde-regexp-jar-file + (expand-file-name "lib/jakarta-regexp.jar" jde-java-directory) + "Path of the regexp-jar file." + :group 'jde-project + :type 'file) + +(defcustom jde-jde-jar-file + (expand-file-name "lib/jde.jar" jde-java-directory) + "Path of the jde-jar file." + :group 'jde-project + :type 'file) + +(defcustom jde-bsh-jar-file + (expand-file-name "lib/bsh.jar" jde-java-directory) + "Path of the bsh-jar file." + :group 'jde-project + :type 'file) + (defmethod initialize-instance ((this jde-bsh) &rest fields) "Constructor for the JDEE BeanShell instance." (call-next-method) - (let* ((jde-java-directory - (concat - (jde-find-jde-data-directory) - "java/"))) - - (oset this bsh-cmd-dir (expand-file-name "bsh-commands" jde-java-directory)) - (oset this checkstyle-jar (expand-file-name "lib/checkstyle-all.jar" jde-java-directory)) - (oset this regexp-jar (expand-file-name "lib/jakarta-regexp.jar" jde-java-directory)) - (oset this jde-classes-dir (expand-file-name "classes" jde-java-directory)) - (oset this jde-jar (expand-file-name "lib/jde.jar" jde-java-directory)) - (oset this jar (expand-file-name "lib/bsh.jar" jde-java-directory)) - (oset-default 'jde-bsh the-bsh this))) + (oset this bsh-cmd-dir jde-bsh-commands-directory) + (oset this checkstyle-jar jde-checkstyle-jar-file) + (oset this regexp-jar jde-regexp-jar-file) + (oset this jde-classes-dir jde-classes-directory) + (oset this jde-jar jde-jde-jar-file) + (oset this jar jde-bsh-jar-file) + (oset-default 'jde-bsh the-bsh this)) (defmethod bsh-create-buffer ((this jde-bsh)) "Creates the JDEE's beanshell buffer." @@ -2503,6 +2545,7 @@ (jde-get-tools-jar) (if ant-home (expand-file-name "lib" ant-home))) (jde-pi-get-bsh-classpath) + bsh-classpath (jde-expand-classpath (jde-get-global-classpath))))))) ;; Create the BeanShell wrapper object. --- jde-orig/lisp/jde-jdb.el 2007-12-29 04:21:28.000000000 +0100 +++ jde/lisp/jde-jdb.el 2009-03-20 19:33:33.000000000 +0100 @@ -1463,10 +1463,10 @@ (defun jde-jdb-help () (interactive) - (let* ((jde-dir (jde-find-jde-doc-directory)) - (jdb-ug-path - (if jde-dir - (expand-file-name "doc/html/jdb-ug/jdb-ug-frame.html" jde-dir)))) + (let ((jdb-ug-path + (if jde-html-directory + (expand-file-name "jdb-ug/jdb-ug-frame.html" + jde-html-directory)))) (if (and jdb-ug-path (file-exists-p jdb-ug-path))