[armedbear-cvs] r13862 - trunk/abcl/contrib/abcl-asdf
    mevenson at common-lisp.net 
    mevenson at common-lisp.net
       
    Mon Feb  6 18:20:26 UTC 2012
    
    
  
Author: mevenson
Date: Mon Feb  6 10:20:25 2012
New Revision: 13862
Log:
Make ABCL-ASDF:SATISFY a generic function, override it to interpret mvn artifact streams.
Now something like
    (satisfy "logj:log4j")
will return the necessary classpath entries to add these dependencies
specified by the Maven pom.xml graph in the hosting JVM process.
Modified:
   trunk/abcl/contrib/abcl-asdf/abcl-asdf.lisp
   trunk/abcl/contrib/abcl-asdf/maven-embedder.lisp
Modified: trunk/abcl/contrib/abcl-asdf/abcl-asdf.lisp
==============================================================================
--- trunk/abcl/contrib/abcl-asdf/abcl-asdf.lisp	Mon Feb  6 10:20:23 2012	(r13861)
+++ trunk/abcl/contrib/abcl-asdf/abcl-asdf.lisp	Mon Feb  6 10:20:25 2012	(r13862)
@@ -14,7 +14,7 @@
 (defmethod find-component ((component iri) path)
   component)
 
-;;; We interpret compilation to ensure that load-op will succeed
+;;; We intercept compilation to ensure that load-op will succeed
 (defmethod perform ((op compile-op) (c mvn))
   (maybe-parse-mvn c)
   (abcl-asdf:satisfy c))
@@ -54,7 +54,10 @@
 
 (in-package #:abcl-asdf)
 
-(defun satisfy (mvn-component)
+(defgeneric satisfy (something)
+ :documentation "Returns a string in JVM CLASSPATH format as entries delimited by classpath separator string."
+
+(defmethod satisfy ((mvn-component asdf::mvn))
   "Resolve all runtime dependencies of MVN-COMPONENT.
 
 Returns a string in JVM CLASSPATH format as entries delimited by classpath separator string."
Modified: trunk/abcl/contrib/abcl-asdf/maven-embedder.lisp
==============================================================================
--- trunk/abcl/contrib/abcl-asdf/maven-embedder.lisp	Mon Feb  6 10:20:23 2012	(r13861)
+++ trunk/abcl/contrib/abcl-asdf/maven-embedder.lisp	Mon Feb  6 10:20:25 2012	(r13862)
@@ -368,3 +368,10 @@
      #'log)))
 
          
+;;; "log4j:log4j:1.9.2" or "log4j:log4j"
+(defmethod satisfy ((string t))
+  (let ((result (split-string string ":")))
+    (cond 
+      ((<= 2 (length result) 3)
+       (apply #'resolve-dependencies result)))))
+  
    
    
More information about the armedbear-cvs
mailing list