You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@avro.apache.org by Peter Cameron <pe...@2icworld.com> on 2012/06/06 15:51:54 UTC

Paranamer issue

I've only just discovered the dependancy of Avro upon the thoughtworks Paranamer classes. We use reflection at runtime with a schema and encountered the usual ClassNotFoundException for Paranamer after I'd been rationalising our codebase -- which included the removal of the avro-tools-1.6.3 JAR. The tools JAR contains the Paranamer classes which I was unaware of. We operate in a very lightweight environment so the 10Mb tools JAR is not suitable for us to deploy.

I went looking for the Paranamer JAR and eventually found version 2.5. However, this is BSD licensed. BSD is not suitable for us. Only Apache 2.0.

What are our options? I'm mystified that the avro license does not mention Paranamer at all. Can I take the classes from the tools JAR and construct my own Paranamer JAR and still satisfy licensing?

cheers,
Peter


Re: Paranamer issue

Posted by Tatu Saloranta <ts...@gmail.com>.
Can't speak for Avro project, but I think it is quite easy and useful
to use Maven Shade plug-in to embed private re-packaged copies. This
is often done with ASM, but seems like the thing for paranamer as
well?

-+ Tatu +-

On Wed, Jun 6, 2012 at 6:58 AM, Eric Pugh
<ep...@opensourceconnections.com> wrote:
> Just to chime in on Peter's email, I hit the same stumbling block as well, and had to go hunt it down.   Any chance the class could be rolled into Avro directly?
>
> On Jun 6, 2012, at 9:51 AM, Peter Cameron wrote:
>
>> I've only just discovered the dependancy of Avro upon the thoughtworks Paranamer classes. We use reflection at runtime with a schema and encountered the usual ClassNotFoundException for Paranamer after I'd been rationalising our codebase -- which included the removal of the avro-tools-1.6.3 JAR. The tools JAR contains the Paranamer classes which I was unaware of. We operate in a very lightweight environment so the 10Mb tools JAR is not suitable for us to deploy.
>>
>> I went looking for the Paranamer JAR and eventually found version 2.5. However, this is BSD licensed. BSD is not suitable for us. Only Apache 2.0.
>>
>> What are our options? I'm mystified that the avro license does not mention Paranamer at all. Can I take the classes from the tools JAR and construct my own Paranamer JAR and still satisfy licensing?
>>
>> cheers,
>> Peter
>>
>
> -----------------------------------------------------
> Eric Pugh | Principal | OpenSource Connections, LLC | 434.466.1467 | http://www.opensourceconnections.com
> Co-Author: Apache Solr 3 Enterprise Search Server available from http://www.packtpub.com/apache-solr-3-enterprise-search-server/book
> This e-mail and all contents, including attachments, is considered to be Company Confidential unless explicitly stated otherwise, regardless of whether attachments are marked as such.
>
>
>
>
>
>
>
>
>
>
>

Re: Paranamer issue

Posted by Eric Pugh <ep...@opensourceconnections.com>.
Just to chime in on Peter's email, I hit the same stumbling block as well, and had to go hunt it down.   Any chance the class could be rolled into Avro directly?

On Jun 6, 2012, at 9:51 AM, Peter Cameron wrote:

> I've only just discovered the dependancy of Avro upon the thoughtworks Paranamer classes. We use reflection at runtime with a schema and encountered the usual ClassNotFoundException for Paranamer after I'd been rationalising our codebase -- which included the removal of the avro-tools-1.6.3 JAR. The tools JAR contains the Paranamer classes which I was unaware of. We operate in a very lightweight environment so the 10Mb tools JAR is not suitable for us to deploy.
> 
> I went looking for the Paranamer JAR and eventually found version 2.5. However, this is BSD licensed. BSD is not suitable for us. Only Apache 2.0.
> 
> What are our options? I'm mystified that the avro license does not mention Paranamer at all. Can I take the classes from the tools JAR and construct my own Paranamer JAR and still satisfy licensing?
> 
> cheers,
> Peter
> 

-----------------------------------------------------
Eric Pugh | Principal | OpenSource Connections, LLC | 434.466.1467 | http://www.opensourceconnections.com
Co-Author: Apache Solr 3 Enterprise Search Server available from http://www.packtpub.com/apache-solr-3-enterprise-search-server/book	
This e-mail and all contents, including attachments, is considered to be Company Confidential unless explicitly stated otherwise, regardless of whether attachments are marked as such.












Re: Paranamer issue

Posted by Doug Cutting <cu...@apache.org>.
On 06/06/2012 10:33 AM, Peter Cameron wrote:
> The BSD license is a problem for our clients, whereas the Apache 2
> license is not. Go figure. That's the situation!

Your clients do not make sense to me.

> So what is the answer for us when we don't want to ship the avro tools
> JAR but need the Paranamer classes from it. What can we do to stay
> consistent with Apache 2 e.g. create my own Paranamer JAR containing
> just those classes from the tools JAR?

The Paranamer classes are under a BSD license.  Repackaging things won't 
change that.  Paranamer is required when using reflection-based Avro 
RPC.  Options I see:

- Switch from specifying your protocol with a Java interface to 
generating code from an Avro IDL or JSON protocol using Avro's specific 
compiler.  The generated code would not require paranamer.

- Implement a subclass of ReflectData that overrides getProtocol(Class) 
to get the Avro protocol in some other way, perhaps from an annotation 
on the interface class.  This would be fragile, as each time the Java 
interface is modified the protocol in the annotation would also need to 
be modified.

- Upgrade to Java 8, where paranamer will no longer be required.

- Convince your client that the BSD license is not to be feared.

Doug

Re: Paranamer issue

Posted by Scott Carey <sc...@apache.org>.

On 6/6/12 10:33 AM, "Peter Cameron" <pe...@2icworld.com> wrote:

>The BSD license is a problem for our clients, whereas the Apache 2
>license is not. Go figure. That's the situation!

ASL 2.0 is a derivative of the BSD license, after all...
Apache projects regularly depend on other items that are MIT or BSD
licensed since these are the least restrictive open source licenses around.


>
>So what is the answer for us when we don't want to ship the avro tools
>JAR but need the Paranamer classes from it. What can we do to stay
>consistent with Apache 2 e.g. create my own Paranamer JAR containing
>just those classes from the tools JAR?


As Doug said, packaging doesn't affect anything license-wise, but you can
repackage things fairly easily into a single jar that contains what you
need using maven-shade-plugin.
The avro-tools.jar uses this to repackage all dependencies inside of it.
You can do the same thing for the base avro.jar and explicitly include
only the few jars you need (or exclude those you do not) by adding a
maven-shade-plugin configuration to lang/java/avro/pom.xml
and rebuilding.



>
>Peter
>
>
>On 06/06/2012 18:30, Doug Cutting wrote:
>> On 06/06/2012 06:51 AM, Peter Cameron wrote:
>>> I've only just discovered the dependancy of Avro upon the thoughtworks
>>> Paranamer classes. We use reflection at runtime with a schema and
>>> encountered the usual ClassNotFoundException for Paranamer after I'd
>>> been rationalising our codebase -- which included the removal of the
>>> avro-tools-1.6.3 JAR. The tools JAR contains the Paranamer classes
>>>which
>>> I was unaware of. We operate in a very lightweight environment so the
>>> 10Mb tools JAR is not suitable for us to deploy.
>>>
>>> I went looking for the Paranamer JAR and eventually found version 2.5.
>>> However, this is BSD licensed. BSD is not suitable for us. Only
>>> Apache 2.0.
>>
>> How is BSD a problem?  BSD is less restrictive an Apache 2.0 and is
>> thus is generally not considered to alter the requirements of one
>> re-distributing software that includes BSD within an Apache-licensed
>> project.
>>
>> Doug
>



Re: Paranamer issue

Posted by Peter Cameron <pe...@2icworld.com>.
The BSD license is a problem for our clients, whereas the Apache 2 
license is not. Go figure. That's the situation!

So what is the answer for us when we don't want to ship the avro tools 
JAR but need the Paranamer classes from it. What can we do to stay 
consistent with Apache 2 e.g. create my own Paranamer JAR containing 
just those classes from the tools JAR?

Peter


On 06/06/2012 18:30, Doug Cutting wrote:
> On 06/06/2012 06:51 AM, Peter Cameron wrote:
>> I've only just discovered the dependancy of Avro upon the thoughtworks
>> Paranamer classes. We use reflection at runtime with a schema and
>> encountered the usual ClassNotFoundException for Paranamer after I'd
>> been rationalising our codebase -- which included the removal of the
>> avro-tools-1.6.3 JAR. The tools JAR contains the Paranamer classes which
>> I was unaware of. We operate in a very lightweight environment so the
>> 10Mb tools JAR is not suitable for us to deploy.
>>
>> I went looking for the Paranamer JAR and eventually found version 2.5.
>> However, this is BSD licensed. BSD is not suitable for us. Only 
>> Apache 2.0.
>
> How is BSD a problem?  BSD is less restrictive an Apache 2.0 and is 
> thus is generally not considered to alter the requirements of one 
> re-distributing software that includes BSD within an Apache-licensed 
> project.
>
> Doug


Re: Paranamer issue

Posted by Doug Cutting <cu...@apache.org>.
On 06/06/2012 06:51 AM, Peter Cameron wrote:
> I've only just discovered the dependancy of Avro upon the thoughtworks
> Paranamer classes. We use reflection at runtime with a schema and
> encountered the usual ClassNotFoundException for Paranamer after I'd
> been rationalising our codebase -- which included the removal of the
> avro-tools-1.6.3 JAR. The tools JAR contains the Paranamer classes which
> I was unaware of. We operate in a very lightweight environment so the
> 10Mb tools JAR is not suitable for us to deploy.
>
> I went looking for the Paranamer JAR and eventually found version 2.5.
> However, this is BSD licensed. BSD is not suitable for us. Only Apache 2.0.

How is BSD a problem?  BSD is less restrictive an Apache 2.0 and is thus 
is generally not considered to alter the requirements of one 
re-distributing software that includes BSD within an Apache-licensed 
project.

Doug