source: trunk/abcl/contrib/abcl-asdf/abcl-asdf.lisp @ 13340

Last change on this file since 13340 was 13340, checked in by Mark Evenson, 10 years ago

Rough cut of what declaring Maven dependencies in ASDF would be like.

File size: 940 bytes
Line 
1(defpackage #:abcl-asdf
2  (:use :cl)
3  (:export #:package))
4
5(in-package :asdf-jar)
6
7(in-package :asdf)
8(defclass iri (static-class) ())
9
10(defclass mvn (iri) ())
11
12;;; We interpret compilation to ensure that load-op will succeed
13(defmethod perform ((operation compile-op) (component mvn))
14    (let ((version (component-version mvn)))
15      (mvn:satisfy (component-name mvn) 
16                   :version (if version version :latest))))
17
18(defmethod perform ((operation load-op) (component mvn))
19    (let ((version (component-version mvn)))
20      (java:add-to-classpath 
21       (as-classpath (mvn:satisfy (component-name mvn)
22                                  :version (if version version :latest))))))
23
24(defun decompose (iri) 
25  ;;; XXX test
26  `((:scheme :jvm)
27    (:authority :mvn)
28    (:host "log4j")
29    (:version "1.4.10")))
30
31(defun mvn:satisfy (name &key (version :latest))
32  ;;; XXX either invoke mvn in the same jvm or fork a process)
Note: See TracBrowser for help on using the repository browser.