| 1 | ABCL-ASDF |
|---|
| 2 | ========= |
|---|
| 3 | |
|---|
| 4 | To use: |
|---|
| 5 | |
|---|
| 6 | CL-USER> (require 'abcl-contrib) |
|---|
| 7 | |
|---|
| 8 | CL-USER> (require 'abcl-asdf) |
|---|
| 9 | |
|---|
| 10 | |
|---|
| 11 | ABCL specific contributions to ASDF system definition mainly concerned |
|---|
| 12 | with finding JVM artifacts such as jar archives to be dynamically loaded. |
|---|
| 13 | |
|---|
| 14 | Examples |
|---|
| 15 | -------- |
|---|
| 16 | |
|---|
| 17 | ;;;; -*- Mode: LISP -*- |
|---|
| 18 | (in-package :asdf) |
|---|
| 19 | |
|---|
| 20 | (defsystem :log4j |
|---|
| 21 | :components ((:mvn "log4j/log4j" |
|---|
| 22 | :version "1.4.9"))) |
|---|
| 23 | |
|---|
| 24 | API |
|---|
| 25 | --- |
|---|
| 26 | |
|---|
| 27 | We define an API as consisting of the following ASDF classes: |
|---|
| 28 | |
|---|
| 29 | JAR-DIRECTORY, JAR-FILE, and CLASS-FILE-DIRECTORY for JVM artifacts |
|---|
| 30 | that have a currently valid pathname representation |
|---|
| 31 | |
|---|
| 32 | And the MVN and IRI classes descend from ASDF-COMPONENT, but do not |
|---|
| 33 | directly have a filesystem location. |
|---|
| 34 | |
|---|
| 35 | For use outside of ASDF, we currently define one method, |
|---|
| 36 | RESOLVE-DEPENDENCIES which locates, downloads, caches, and then loads |
|---|
| 37 | into the currently executing JVM process all recursive dependencies |
|---|
| 38 | annotated in the Maven pom.xml graph. |
|---|
| 39 | |
|---|
| 40 | Example 2 |
|---|
| 41 | --------- |
|---|
| 42 | |
|---|
| 43 | Bypassing ASDF, one can directly issue requests for the Maven |
|---|
| 44 | artifacts to be downloaded |
|---|
| 45 | |
|---|
| 46 | CL-USER> (abcl-asdf:resolve-dependencies "com.google.gwt" "gwt-user") |
|---|
| 47 | WARNING: Using LATEST for unspecified version. |
|---|
| 48 | "/Users/evenson/.m2/repository/com/google/gwt/gwt-user/2.4.0-rc1/gwt-user-2.4.0-rc1.jar:/Users/evenson/.m2/repository/javax/validation/validation-api/1.0.0.GA/validation-api-1.0.0.GA.jar:/Users/evenson/.m2/repository/javax/validation/validation-api/1.0.0.GA/validation-api-1.0.0.GA-sources.jar" |
|---|
| 49 | |
|---|
| 50 | Notice that all recursive dependencies have been located and installed |
|---|
| 51 | as well. |
|---|
| 52 | |
|---|
| 53 | |
|---|
| 54 | Example 3 |
|---|
| 55 | --------- |
|---|
| 56 | |
|---|
| 57 | For a filesystem of jar archives: |
|---|
| 58 | |
|---|
| 59 | ./lib/ext/flora2-reasoner/XSBFlora.jar |
|---|
| 60 | ./lib/ext/iris-reasoner/iris/iris-0.58.jar |
|---|
| 61 | ./lib/ext/iris-reasoner/jgrapht/jgrapht-jdk1.5-0.7.1.jar |
|---|
| 62 | ./lib/ext/log4j/log4j-1.2.14.jar |
|---|
| 63 | ./lib/ext/mandrax-reasoner/commons-collections-2.1.jar |
|---|
| 64 | ./lib/ext/mandrax-reasoner/jdom-b10.jar |
|---|
| 65 | ./lib/ext/mandrax-reasoner/log4j-1.2.8.jar |
|---|
| 66 | ./lib/ext/mandrax-reasoner/mandarax-3.4.jar |
|---|
| 67 | ./lib/ext/mins-reasoner/mins-v0_3.jar |
|---|
| 68 | ./lib/ext/pellet-reasoner/aterm/1.6/aterm-java-1.6.jar |
|---|
| 69 | ./lib/ext/pellet-reasoner/commons-logging/1.1/commons-logging-1.1.jar |
|---|
| 70 | ./lib/ext/pellet-reasoner/kaon/1.2.9/rdfapi.jar |
|---|
| 71 | ./lib/ext/pellet-reasoner/owl-api/1.4.3/abstractparser.jar |
|---|
| 72 | ./lib/ext/pellet-reasoner/owl-api/1.4.3/io.jar |
|---|
| 73 | ./lib/ext/pellet-reasoner/owl-api/1.4.3/rdfparser.jar |
|---|
| 74 | ./lib/ext/pellet-reasoner/owl-api/1.4.3/validation.jar |
|---|
| 75 | ./lib/ext/pellet-reasoner/owl-api/owl-api-econn/2006-04-27/api.jar |
|---|
| 76 | ./lib/ext/pellet-reasoner/owl-api/owl-api-econn/2006-04-27/impl.jar |
|---|
| 77 | ./lib/ext/pellet-reasoner/pellet/pellet.jar |
|---|
| 78 | ./lib/ext/pellet-reasoner/relaxng/1.0/relaxngDatatype.jar |
|---|
| 79 | ./lib/ext/pellet-reasoner/xsdlib/xsdlib.jar |
|---|
| 80 | ./lib/ext/wsmo/WSML-grammar-20081202.jar |
|---|
| 81 | ./lib/ext/wsmo/wsmo-api-0.6.2.jar |
|---|
| 82 | ./lib/ext/wsmo/wsmo4j-0.6.2.jar |
|---|
| 83 | ./lib/ext/xsb-system/interprolog.jar |
|---|
| 84 | |
|---|
| 85 | The following ASDF defintion loads enough JVM artifacts to use the |
|---|
| 86 | [IRIS reasoner][1]: |
|---|
| 87 | |
|---|
| 88 | (defsystem :wsml2reasoner-jars |
|---|
| 89 | :version "0.6.4" ;; last sync with SVN |
|---|
| 90 | :depends-on (:abcld) :components |
|---|
| 91 | ((:module wsml2reasoner |
|---|
| 92 | :pathname "lib/" :components |
|---|
| 93 | ((:jar-file "wsml2reasoner"))) |
|---|
| 94 | (:module iris-libs |
|---|
| 95 | :pathname "lib/ext/iris-reasoner/iris/" :components |
|---|
| 96 | ((:jar-file "iris-0.58"))) |
|---|
| 97 | (:module jgrapht-libs |
|---|
| 98 | :pathname "lib/ext/iris-reasoner/jgrapht/" :components |
|---|
| 99 | ((:jar-file "jgrapht-jdk1.5-0.7.1"))) |
|---|
| 100 | (:module wsmo-libs |
|---|
| 101 | :pathname "lib/ext/wsmo/" :components |
|---|
| 102 | ((:jar-file "WSML-grammar-20081202") |
|---|
| 103 | (:jar-file "wsmo-api-0.6.2") |
|---|
| 104 | (:jar-file "wsmo4j-0.6.2"))) |
|---|
| 105 | (:module log4j-libs |
|---|
| 106 | :pathname "lib/ext/log4j/" :components |
|---|
| 107 | ((:jar-file "log4j-1.2.14"))))) |
|---|
| 108 | |
|---|
| 109 | [1]: http://www.iris-reasoner.org/ |
|---|
| 110 | |
|---|
| 111 | |
|---|
| 112 | Problems |
|---|
| 113 | ------- |
|---|
| 114 | |
|---|
| 115 | 0.4.1 2011-09-06 |
|---|
| 116 | |
|---|
| 117 | o locating the proper Maven3 libraries could work in more places |
|---|
| 118 | |
|---|
| 119 | o untested under Windows |
|---|
| 120 | |
|---|
| 121 | o more information should be optionally available when downloading |
|---|
| 122 | as this process can potentially take a long time. |
|---|