Changeset 13836
- Timestamp:
- 01/31/12 17:24:52 (12 years ago)
- Location:
- trunk/abcl/contrib/abcl-asdf
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/contrib/abcl-asdf/maven-embedder.lisp
r13807 r13836 35 35 (unless mvn 36 36 (warn "Failed to find Maven3 libraries.") 37 (return-from find-mvn-libs ))37 (return-from find-mvn-libs nil)) 38 38 (truename (make-pathname 39 39 :defaults (merge-pathnames "../lib/" mvn) … … 146 146 (#"newLocalRepositoryManager" repository-system local-repository)))) 147 147 148 (defparameter *session* nil 149 "Reference to the Maven RepositorySystemSession") 150 151 (defparameter *maven-http-proxy* nil 152 "A string containing the URI of an http proxy for Maven to use.") 153 154 (defparameter *repository-system* nil) 155 156 (defun ensure-repository-system () 157 (unless *repository-system* 158 (setf *repository-system* (repository-system))) 159 *repository-system*) 160 161 (defun make-proxy () 162 "Return an org.sonatype.aether.repository.Proxy instance initialized form *MAVEN-HTTP-PROXY*." 163 (unless *maven-http-proxy* 164 (warn "No proxy specified in *MAVEN-HTTP-PROXY*") 165 (return-from make-proxy nil)) 166 (let* ((p (pathname *maven-http-proxy*)) 167 (scheme (sys::url-pathname-scheme p)) 168 (authority (sys::url-pathname-authority p)) 169 (host (if (search ":" authority) 170 (subseq authority 0 (search ":" authority)) 171 authority)) 172 (port (when (search ":" authority) 173 (parse-integer (subseq authority (1+ (search ":" authority)))))) 174 ;; TODO allow specification of authentication 175 (authentication java:+null+)) 176 (jss:new 'org.sonatype.aether.repository.Proxy 177 scheme host port authentication))) 178 179 (defun ensure-session () 180 "Ensure that the RepositorySystemSession has been created. 181 182 If *MAVEN-HTTP-PROXY* is non-nil, parse its value as the http proxy." 183 (unless *session* 184 (ensure-repository-system) 185 (setf *session* (new-session *repository-system*)) 186 (#"setRepositoryListener" *session* (make-repository-listener)) 187 (when *maven-http-proxy* 188 (let ((proxy (make-proxy))) 189 (#"add" (#"getProxySelector" *session*) 190 proxy 191 ;; A string specifying non proxy hosts, or null 192 java:+null+)))) 193 *session*) 194 195 148 196 (defun resolve-artifact (group-id artifact-id &optional (version "LATEST" versionp)) 149 197 "Directly resolve Maven dependencies for item with GROUP-ID and ARTIFACT-ID at VERSION, ignoring dependencies. … … 175 223 (#"resolveArtifact" system session artifact-request))) 176 224 225 (defparameter *aether-remote-repository* nil) ;;; TODO 226 177 227 (defun resolve-dependencies (group-id artifact-id &optional (version "LATEST" versionp)) 178 228 "Dynamically resolve Maven dependencies for item with GROUP-ID and ARTIFACT-ID at VERSION. … … 187 237 (unless versionp 188 238 (warn "Using LATEST for unspecified version.")) 189 (let* ((system190 191 (session192 (new-session system))193 ( artifact239 (let* ;;((system 240 ;; (repository-system)) 241 ;; (session 242 ;; (new-session system)) 243 ((artifact 194 244 (java:jnew (jss:find-java-class "aether.util.artifact.DefaultArtifact") 195 245 (format nil "~A:~A:~A" … … 203 253 (collect-request (java:jnew (jss:find-java-class "CollectRequest")))) 204 254 (#"setRoot" collect-request dependency) 255 (when *maven-http-proxy* 256 (#"setProxy" central (make-proxy))) 205 257 (#"addRepository" collect-request central) 206 258 (let* ((node 207 (#"getRoot" (#"collectDependencies" system sessioncollect-request)))259 (#"getRoot" (#"collectDependencies" (ensure-repository-system) (ensure-session) collect-request))) 208 260 (dependency-request 209 261 (java:jnew (jss:find-java-class "DependencyRequest") … … 211 263 (nlg 212 264 (java:jnew (jss:find-java-class "PreorderNodeListGenerator")))) 213 (#"resolveDependencies" system sessiondependency-request)265 (#"resolveDependencies" (ensure-repository-system) (ensure-session) dependency-request) 214 266 (#"accept" node nlg) 215 267 (#"getClassPath" nlg)))) 216 268 217 218 269 (defparameter *maven-verbose* t 270 "Stream to send output from the Maven Aether subsystem to, or NIL to muffle output") 271 272 (defun make-repository-listener () 273 ;;; XXX why does the (flet ((log (e) ...)) (java:jinterface-implementation ...) version not work? 274 (java:jinterface-implementation 275 "org.sonatype.aether.RepositoryListener" 276 "artifactDeployed" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 277 "artifactDeploying" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 278 "artifactDescriptorInvalid" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 279 "artifactDescriptorMissing" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 280 "artifactDownloaded" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 281 "artifactDownloading" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 282 "artifactInstalled" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 283 "artifactInstalling" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 284 "artifactResolved" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 285 "artifactResolving" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 286 "metadataDeployed" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 287 "metadataDeploying" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 288 "metadataDownloaded" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 289 "metadataDownloading" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 290 "metadataInstalled" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 291 "metadataInstalling" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 292 "metadataInvalid" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 293 "metadataResolved" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))) 294 "metadataResolving" (lambda (e) (format *maven-verbose* "~&transfer-listener: ~A~%" (#"toString" e))))) 219 295 220 296 -
trunk/abcl/contrib/abcl-asdf/packages.lisp
r13808 r13836 15 15 ;;;; Maven 16 16 #:*mvn-libs-directory* 17 #:*maven-http-proxy* 18 #:*maven-verbose* 17 19 18 20 #:satisfy
Note: See TracChangeset
for help on using the changeset viewer.