LINUX.ORG.RU

Java: вопрос по лицензированию


0

0

У меня возникла необходимость добавить функциональности в один из классов пакета javax.Swing. Просто унаследоваться от этого класса и переопределить методы не комильфо: нужно обращаться к private членам, добавлять ощутимые куски кода в разные места функция и проч. Я скачал исходники и тупо поправил нужные места в классе. Т.к. я полный нуб в джаве, мои изменения вряд ли примут в Sun, поэтому я решил не париться, а переименовать этот класс и пользоваться им в своей программе. Свои изменения я готов выложить в любой момент, однако код программы открыть никак не могу.

Вопрос: правомерны мои действия с точки зрения лицензии? Если нет, то что нужно сделать чтобы не открывать код?

> Свои изменения я готов выложить в любой момент, однако код программы открыть никак не могу.

Вроде как java открыта под GPL, отсюда все вытекающие.

Ian ★★
()
Ответ на: комментарий от Ian

Видимо, не вся, раз факт использования Swing и других классов, не обязывает открывать исходники

BreadFan ★★
() автор топика
Ответ на: комментарий от Ian

Открыта под GPL будет 1.7, пока же исходники открыты только для "ознакомления". Фактически ты сделал собственный вариант JRE. Для частного применения - думаю, никаких проблем не будет. А распространять это дело все равно не получится.

shumer
()

А, сорри, сначала подумал, что ты изменил стандартный класс в jre. Если ты просто скопировал сановский код в свою программу, это по-любому незаконно. Не говори об этом никому :)

shumer
()

Вот цитата с их сайта:

JDK 6 source code is available for those interested in exploring the details of the JDK. This includes schools, universities, companies, and individuals who want to examine the source code for personal interest or research & development. The licensing does not impose restrictions upon those who wish to work on independent open-source projects.

У тебя open-source проект?

shumer
()
Ответ на: комментарий от shumer

ну и пишу я не для себя, нужно будет этот код распространять :(

BreadFan ★★
() автор топика
Ответ на: комментарий от BreadFan

В лицензии, которая идет с JDK написано:

Unless enforcement is prohibited by applicable law, you may not modify, decompile, or reverse engineer Software.

Т.е. модфицировать их код самовольно нельзя.

shumer
()
Ответ на: комментарий от shumer

сволочи! :)
интересно, если 1.7 будет GPL, то classpath под какой лицензией будет распространяться? если LGPL, то придется ждать 1.7 прежде, чем распространять свой софт :)

BreadFan ★★
() автор топика
Ответ на: комментарий от BreadFan

Это недавно уже здесь обсуждалось. Конечно, она д.б. под LGPL, иначе бы пришлось открывать под GPL все программы на Java.

shumer
()
Ответ на: комментарий от shumer

> Это недавно уже здесь обсуждалось

давно прошли те времена, когда я читал лор от корки до корки

> Конечно, она д.б. под LGPL, иначе бы пришлось открывать под GPL все программы на Java.

ну так я и подумал

спасибо большое за ответы!

BreadFan ★★
() автор топика

> Просто унаследоваться от этого класса и переопределить методы не комильфо: нужно обращаться к private членам, добавлять ощутимые куски кода в разные места функция и проч.

Может таки отнаследоваться или агрегировать его? Никогда в жизни не нужно было менять библиотечный класс..

В крайнем случае можно попробовать скопировать код из какой-нибудь альтернативной свободной реализации JDK.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

в Java совсем не силен, но когда в функции-члене есть такая конструкция:

       if (keyword.equals("aftncn") ||
                keyword.equals("aftnsep") ||
                keyword.equals("aftnsepc") ||
...
            ignoreGroupIfUnknownKeywordSave = true;
        }

и в этом из if мне надо убрать пару кондишенов, то без модификации 
сырков походу не обойтись. речь идет о классе RTFEditorKit. 
он вполне зрелый, но все равно довольно-таки много 
функциональности необходимо добавить.

в свободных реализациях поищу, спасибо

BreadFan ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.