[armedbear-devel] installing java dependencies with :mvn ASDF component

Mark Evenson evenson at panix.com
Sat Aug 10 08:23:16 UTC 2013

On 8/10/13 5:03 AM, Anton Vodonosov wrote:
> The diff from the previous message had several problems.

Thanks so much for the patch:  I remember that the last time I tracked 
the problems resulting from a Aether version change as being really not 
a fun experience.

> After fixing the problems one by one I now have working version -
> see svn.diff attached (can't submit it as a ticket, because don't know
> how to login into the new ABCL Trac).

One should be able to login to the [ABCL Trac][1] with any 
[OpenID][openid] or a common-lisp.net http digest password valid in 
April 2013.  I'd be happy to help you "track" down why this isn't 
working for you…

[1]:  http://lisp.not.org/trac/armedbear
[openid]: https://en.wikipedia.org/wiki/Openid

> I must say I now feel how convenient :mvn ASDEF componets are.
> I just do (ql:quickload :my-system) and it automatically installs
> and loads all the Lisp and Java dependencies (ApachePOI takes 8 .jar files to install).

I've always thought :MVN ASDF components as an especially useful feature 
as well for Java interop.  Even though using Maven from straight "Java 
the language" development has its pain points, the distributed POM graph 
is quite useful.  Now that Aether has apparently moved to being an 
Apache project, using it should be more stable (after this initial pain 

> As for keeping compatibility with old maven. Various approaches possible here.
> I would suggest to commit my patch and be compatible with the latest maven
> version. If necessary, record a separate ticket to generalize/conditionalize
> the :mvn components implementation to make it compatible with both old and new maven.

Unfortunately, I disagree with dropping support for pre maven-3.1.0 by 
committing your patch as this would be disruptive to those following 
trunk who haven't updated their Maven installations yet.  Of course, our 
survey size for determining this course of inaction was rather small. 
Well, ok, the survey only included me, but since maven-3.1.0 has not 
shown up upstream in any of the OS package systems that I actively use 
(FreeBSD, MacPorts, Debian, OpenIndiana), I am pretty sure that I am not 
the only one that would be disrupted (if there are more users of 
ABCL-ASDF than you and I, of course…)

That being said, I will endeavor to incorporate your patch in a way 
which maintains compatibility into trunk in the next few days.

Other than a hack 'n slash (IF old-maven new-maven) job, I wonder if 
there is a more elegant way to deal with the package change.  My gut 
feeling is that I would need to re-organize the code so substantially, 
that I would then have to chase down bugs from that reorg.   If it were 
just a simple renaming of package, I think I could whip up an appropiate 
macro, but from looking at your patch, it seems that there are a couple 
behavioral API changes as well.

Anyone have any elegant ideas on how to maintain compatibility with both 
versions of Aether or point to an example of something clever that I can 
study for inspiration?

"A screaming comes across the sky.  It has happened before, but there
is nothing to compare to it now."

More information about the armedbear-devel mailing list