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

Anton Vodonosov avodonosov at yandex.ru
Sat Aug 10 09:06:39 UTC 2013

10.08.2013, 12:25, "Mark Evenson" <evenson at panix.com>:
> 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?

What if we then keep contrib/abcl-asdf/maven-embedder.lisp (mostly) unchanged,
and just put new code into maven-3.1-embedder.lisp, giving it a separate package.

Then we have

 (defmethod abcl-asdf::resolve ((string string))
    (if (version> (mvn-version) "3.1")
        (maven-3.1-embedder:resolve string)
        (maven-embedder:resolve string))

So, the only thing to factor-out is maven version testing.

After doing so, we can keep old versoin of maven-embedder immutable forever, 
thug avoiding testing and bugs in it.

If someday (some years later) we decide the old maven support is not relevant
anymore, we can just delete the maven-embedder.lisp

More information about the armedbear-devel mailing list