[Armedbear-ticket] [armedbear] #367: Add easy way to load ASDF systems (and other software?) from classpath jars

armedbear armedbear-devel at common-lisp.net
Mon Aug 18 14:13:35 UTC 2014


#367: Add easy way to load ASDF systems (and other software?) from classpath jars
----------------------------+-----------------
 Reporter:  robert goldman  |      Owner:
     Type:  enhancement     |     Status:  new
 Priority:  major           |  Milestone:
Component:  other           |    Version:
 Keywords:                  |
----------------------------+-----------------
 I have been writing a Java program that uses some code implemented in
 ABCL. I packaged everything up with `ASDF-JAR` and put the Jar file in the
 command line.

 The original idea was to provide an easy way for the program to find my
 code. But it hasn't panned out that well for me.

 Here's a bit of extremely ugly code that I wrote to find and load the jar
 file out of the class path. I don't know if this code can be improved
 using the existing API (in which case, this is my bad, not an enhancement
 request). Alternatively, perhaps it would be good to find a way to add
 jars from the classpath to the ASDF registry.  Or even preload the systems
 in the jar files.

 {{{
 interpreter = Interpreter.createInstance();
 interpreter.eval("(require :abcl-contrib)");
 interpreter.eval("(require :asdf)");
 interpreter.eval("(require :asdf-jar)");
 interpreter.eval("(defparameter *my-jar-name* \"abcl-prism-all\")");
 interpreter.eval("(defparameter *jar* (find *my-jar-name* (loop for x in
 (dump-classpath) appending (remove-if-not \'pathnamep (rest x))) :test
 \'equalp :key \'pathname-name))");
 interpreter.eval("(if *jar* (if (probe-file *jar*) (format t \"Adding ~a
 to ASDF searchpath.\" *jar*) (error \"Found ~A in classpath, but jar file
 doesn't exist.\" *my-jar-name*)) (error \"Can\'t find ~a in ~s\" *my-jar-
 name* (dump-classpath)))");
 interpreter.eval("(asdf-jar:add-to-asdf *jar*)");
 interpreter.eval("(asdf:load-system :abcl-prism)");
 }}}

 Mark has also expressed a desire to better support adding jars to the ASDF
 configuration.

--
Ticket URL: <http://abcl.org/trac/ticket/367>
armedbear <http://abcl.org>
armedbear


More information about the armedbear-ticket mailing list