我无法分发JAXB封闭代码?

时间:2010-03-05 17:49:43

标签: java xml licensing jaxb

http://jaxb.java.net/,它表示JAXB的双重许可证包含CDDL v1.0和GPL v2;

CDDL说:

  1. 分配义务 3.1。源代码的可用性。 您以可执行形式分发或以其他方式提供的任何涵盖软件也必须以源代码形式提供,并且源代码表单必须仅根据本许可证的条款分发。
  2. 所以,我不能在不打开代码的情况下使用JAXB吗?

    - 更新

    “您分发的任何涵盖软件......”;

    1.3。 “涵盖软件”是指(a)原始软件,或(b)修改,或(c)包含原始软件的文件与包含修改的文件的组合,在每种情况下包括其部分。 https://glassfish.dev.java.net/public/CDDL+GPL.html

    我开发的软件不被视为“包含原始软件的文件与包含修改的文件的组合”

2 个答案:

答案 0 :(得分:4)

您可以使用 JAXB而无需开源代码(如果您遵循CDDL的其他条款)。但是,您无法在没有源的情况下分发JAXB 本身


更新以响应问题编辑:假设您的代码不是对JAXB的修改,也不包含JAXB的任何部分,那么它不会被覆盖。 (不过,我不是律师。请耐心等待。)

答案 1 :(得分:2)

CDDL是基于文件的许可证。

简单地说,任何已获得CDDL许可的文件,您已经更改,您有义务将更改的文件分发给该文件。

假设网络上有CDDL项目。

它有X.java和Y.java文件。

您的项目包括X.java,Y.java(您已更改)和Z.java(您的代码)。

您有义务提供Y.java,并确保X.java可用。

由于其他人已经在分发​​X.java(原始项目),你没有做,源已经可用(只是不是你)。

您更改了Y.java,它是根据CDDL许可的,并且原始项目未分发,因此您需要将其提供。

最后,Z.java是您自己的,未受阻碍的代码,您没有义务提供这些代码。

如果由于某种原因原始项目破产并且不再分发X.java,您需要确保它仍然可供您的用户使用。

最后,通过“发布”,您只需要为拥有代码二进制文件的人(即您可以使用的人员)提供源代码。

如果你公开发布你的二进制文件,那就意味着“每个人”。如果你只把它卖给10个客户,那么就只卖给他们,而不是整个世界。

关于评论的编辑:

原始软件是您正在使用的软件,由CDDL承保。

修改是对ORIGINAL软件的更改。这是他们在该子句中有三个类别的方式:原始软件,修改或两者的组合。

您的义务只是更改原始软件中的文件。正如我所说,CDDL是基于文件的,CDDL没有“病毒”方面。简而言之,如果您更改了代码,则有义务发布这些更改。但是没有义务编写仅仅是您自己的工作而不是基于原始文件的代码。