ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jerome Lacoste <>
Subject RE: Re[2]: Problems with licenses (GPL, LGPL) and task writing - use of an adaptor
Date Wed, 20 Jun 2001 10:03:44 GMT
I've been following the thread with great interest.

Consider that you want to write a task for a library licensed under the GPL
(or any other license that causes that cancer Balmer likes to talk about)
and want to integrate it in a tool with a non-GPL license (the ASF License
or whatever you want to call it, I am not here to restart that thread).

Let's the say if we use an adapter pattern. We write a generic interface for
the operations under the non-GPL license.

Then you write an implementation of that class that adapts the interface to
the library you want to use. You write it under your GPL license and this is
packaged with the library. It is a simple class and does almost delegation.

Your client (i.e. the task) is written under the non-GPL license

The only problem I see is that it then adds a dependency in the to adapted
libray to client, as the adaptor needs to be packaged with the library,
making the library depending on the adaptor interface.
Nevertheless, considering the Ant case, the parameter handling of the task
can be packaged within Ant, as well with the Business logic and the
delegation goes into the library. Considering the way things are packaged,
the bridge between Ant and the library to map seems to be better defined.
One can even change the library with a different implementation that
provides similar functionality, i.e. similar parameters in the XML file.

If I understood what Tim wrote, this seems to be same idea and still is the
legal problem of circumventing it.

But as soon as they accept to package within their library the
implementation of the adaptor interface, they create a license-bridge
between their GPL work and the non-GPL.

Am I wrong?


> -----Original Message-----
> From: Yannick Menager []
> Sent: Wednesday, June 20, 2001 11:09 AM
> To: Tim Vernum
> Subject: Re[2]: Problems with licenses (GPL, LGPL) and task writing
> Hello Tim,
> what if we had a defined API for say.. CVS Tasks.. and a series of
> adaptors for multiple implementations.... would that be legal ?
> maybe as an optional task, if the jcvs classes are there, it uses
> them, if not.... Why hasn't that be done ? any legal reasons against ?
> --
> Best regards,
>  Yannick                  
> Wednesday, June 20, 2001, 10:58:30 AM, you wrote:
> TV> From: Yannick Menager []
> >> I'm not a lawyer, but I have the strong impression that if we called a
> >> GLPed binary (jarfile) using reflection, that would solve the problem,
> TV> Not necessarily.
> TV> If you wrote code that did something like:
> TV> SUB use-gnu-stuff
> TV>         jar = load-jar( "gnu.jar" )
> TV>         on-error:
> TV>                 throw( "Cannot find gnu.jar" )
> TV>         class = jar->load-class( "GNUclass" )
> TV>         on-error:
> TV>                 throw( "Cannot find 'GNUclass' in jar" )
> TV>         method = class->lookup-method( "myMethod" )
> TV>         on-error:
> TV>                 throw( "Cannot find method 'myMethod'" )
> TV>         return method->call()
> TV> Then there would be no direct dependency on the GNU code, and no
> TV> linking, since it is all done with reflection and if you handled
> TV> the exceptions, then the code would still work if the GNU jar
> TV> wasn't there.
> TV> However, it is clear for all to see, that you are just trying to
> TV> circumvent the licensing requirements of gnu.jar, and a court
> TV> would probably declare it illegal.
> TV> However, it is was using a standard interface then you would
> TV> probably be OK.
> TV> eg: You can probably use a GPL'd bean in your code, if you just treat
> TV> it as a bean.
> TV> And Ant can load GPL'd task, since it uses Ant's published API.
> TV> But just putting a reflection wrapper doesn't necessarily work.
>  _________________________________________________________ Do You
> Yahoo!? Get your free address at

View raw message