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
