users@jaxb.java.net

Re: maven-jaxb2-plugin to renamed due to a trademark/naming convention issue with Apache

From: Timothy Astle <timothy.astle_at_gmail.com>
Date: Thu, 16 Oct 2014 19:14:02 -0300

I would recommend that you go with jaxb2-maven-plugin.

You need to specify the groupId regardless when specifying the plugin.
This is why I find the whole Apache Maven plugin artifactId enforcement
ridiculous. It's pretty much common sense when you see something coming
from org.apache that it's from Apache.

A *new user* would most likely:

1. Find your plugin information on your website.
2. Find your plugin information from central.
3. Find your plugin from some blog (or something)

So in those cases, they're new users and will copy and paste the dependency
snippet.

For *existing users*, they just want to update. So if you make a note on
your website of the change, we'll figure it out. We won't set about
switching plugins. It'd take some effort to get screwed up, I'd imagine.

GAV is a strong concept in Maven. And if you're a Java developer, you
should understand the importance of naming a package, where it plays an
important part of identifying the organization from which the code came
from (recommend reversing your company / organizations domain
http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html).

I understand that XJC is more inline with what the plugin already does, but
if you have plans on allowing more JAXB2 functionality, or if you don't
want to completely throw off your users, I'd stick with
jaxb2-maven-plugin. I think a lot more people know about the Maven guys
forcing plugins to drop "maven-", and can rationalize, and find threads
like this, to explain the change. Changing the artifactId to something
entirely new is worse than sharing the artifactId with another
organization. Just count how many libraries and plugins there are on
central that only differ by groupId.

On Thu, Oct 16, 2014 at 5:01 PM, Ioannis Mavroukakis <imavroukakis_at_gmail.com
> wrote:

> xjc-maven-plugin would get my vote. I don't think that Oracle would be so
> obtuse^H^H^H^H^H difficult as to oppose this, but I would get this in
> writing.
>
> On 16 October 2014 20:55, Aleksei Valikov <valikov_at_gmx.net> wrote:
>
>> Hi,
>>
>> mvn-jaxb2-plugin is an idea. Does not follow the proposed convention
>> strictly, though (
>> http://maven.apache.org/guides/plugin/guide-java-plugin-development.html
>> ).
>>
>> Another option would be xjc-maven-plugin. I hope I won't get a C&D from
>> Oracle for using the XJC name here. :)
>>
>> Best wishes,
>> Alexey
>>
>> On Thu, Oct 16, 2014 at 8:06 PM, Wolfgang Laun <wolfgang.laun_at_gmail.com>
>> wrote:
>>
>>> Aleksei:
>>>
>>> So if the Injuns stick to their exclusive-rights policy: what about
>>> renaming your plugin
>>>
>>> mvn-jaxb2-plugin
>>>
>>> -W
>>>
>>> On 16 October 2014 19:24, KARR, DAVID <dk068x_at_att.com> wrote:
>>>
>>>> That’s just weird. Anyone can see that it’s logical to name plugins
>>>> in ANY plugin architecture like
>>>> “<AppWithPluginArchitecture>-<PluginName>-plugin”. Forcing people to
>>>> reverse that is confusing. Consider “eclipse-maven-plugin” and
>>>> “maven-eclipse-plugin”. It’s obvious to anyone aware of that convention
>>>> that the first is a plugin for Eclipse that supports maven (even if the
>>>> main plugin that does this is named differently), and the second is a
>>>> plugin for Maven that supports Eclipse. They want you to name your plugin
>>>> “jaxb2-maven-plugin”, so I guess that’s a plugin for jaxb2 that supports
>>>> Maven, right? :)
>>>>
>>>>
>>>>
>>>> Whether a plugin is “officially supported” should be determined more by
>>>> its group id than the artifact id. When artifact ids conflict, that’s your
>>>> only choice.
>>>>
>>>>
>>>>
>>>> *From:* aleksei.valikov_at_gmail.com [mailto:aleksei.valikov_at_gmail.com] *On
>>>> Behalf Of *Aleksei Valikov
>>>> *Sent:* Thursday, October 16, 2014 4:13 AM
>>>> *To:* users_at_jaxb.java.net
>>>> *Subject:* maven-jaxb2-plugin to renamed due to a trademark/naming
>>>> convention issue with Apache
>>>>
>>>>
>>>>
>>>> Hi,
>>>>
>>>>
>>>>
>>>> As many of you probably know, I develop and maintain the
>>>> maven-jaxb2-plugin. I am facing a trademark/naming convention issue with
>>>> Apache and I'd appreciate an advice on that.
>>>>
>>>>
>>>>
>>>> I have started my project almost 8 years ago and took the name
>>>> maven-jaxb2-plugin as it seemed to be _the_ right convention back then.
>>>>
>>>>
>>>>
>>>> Few years later Apache estabinished the some-maven-plugin convention
>>>> for non-Apache plugins. This is how they define it here:
>>>> http://maven.apache.org/guides/plugin/guide-java-plugin-development.html
>>>>
>>>>
>>>>
>>>> *You will typically name your plugin **<yourplugin>-maven-plugin**.*
>>>>
>>>> *Calling it **maven-<yourplugin>-plugin** (note "Maven" is at the
>>>> beginning of the plugin name) is strongly discouraged since it's a reserved
>>>> naming pattern for official Apache Maven plugins maintained by the Apache
>>>> Maven team with groupId **org.apache.maven.plugins**. Using this
>>>> naming pattern is an infringement of the Apache Maven Trademark.*
>>>>
>>>> This became a warning during the build around three years ago. My
>>>> plugin was ~5 years old back then, with an already established user base
>>>> etc. I did not want to rename. This was a mistake, but it is a mistake
>>>> already made.
>>>>
>>>> I also think I haven't seen this warning for the long time as there was
>>>> no need to update the versions of Maven libraries I used
>>>>
>>>>
>>>>
>>>> Now an Apache committer, also a user of my plugin tried to clarified
>>>> the legal terms of this naming. Unfortunately, Apache seems to have a very
>>>> strict position on the issue. Please check this message:
>>>>
>>>>
>>>>
>>>> http://www.mail-archive.com/dev@maven.apache.org/msg102491.html
>>>>
>>>>
>>>>
>>>> And the further discussion.
>>>>
>>>>
>>>>
>>>> So in the current situation, using the maven-jaxb2-plugin further on, I
>>>> am
>>>>
>>>> * facing a threat of cease-and-desist letter and
>>>>
>>>> * a probability that my plugin will stop working/compiling any time
>>>> soon.
>>>>
>>>>
>>>>
>>>> I would not speculate on whether this trademark infringement thing is
>>>> legally sound or not. It does not matter. They're an organisation, I'm a
>>>> private person. I can't fight them. An even if the legal threat is unsound,
>>>> they can easily shut down my plugin technically in any next version of
>>>> Maven.
>>>>
>>>>
>>>>
>>>> So the thing is that I have no other choice as to rename my plugin.
>>>>
>>>>
>>>>
>>>> I have not yet desided on the name. The first choice would be
>>>> jaxb2-maven-plugin, but there is already another Maven plugin under that
>>>> name, from Codehaus. Yes, sure, groupId is different but people will mix
>>>> them up, definitely.
>>>>
>>>>
>>>>
>>>> Any other name will disconnect my plugin from its longstanding history
>>>> even more. This will hurt my user base. I don't want this.
>>>>
>>>>
>>>>
>>>> Merging the projects is probably not an option.
>>>>
>>>>
>>>>
>>>> So my options are:
>>>>
>>>>
>>>>
>>>> * rename to jaxb2-maven-plugin or
>>>>
>>>> * rename to something else
>>>>
>>>>
>>>>
>>>> I do not know what to do and would really appreciate opinions and
>>>> advice.
>>>>
>>>> (I'm not talking legal advice of any kind, more common sense community
>>>> advice.)
>>>>
>>>>
>>>>
>>>> Best wishes,
>>>>
>>>> Alexey
>>>>
>>>
>>>
>>
>