![]() |
|
Модераторы: LSD |
![]()
|
|
| Viroman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 28.7.2008 Репутация: нет Всего: нет |
Здравствуйте дорогие форумчане, дабы не забегать вперёд и не разводить излишних диспутов на тему моральных устоев, хочу в программе, которая под gpl, дабы обезопасить себя от возможных нападок со стороны gpl исходниколюбителей, делать изменение методов во время выполенения. На данный момент я делаю это тем, что классы вместе с изменёнными методами подгружаю первыми, что позволяет как бы делать, что хочу. Это хоть немного улучшило ситуацию, но всего лишь завуалировало мои старания. А хотелось бы коренное решение, перезапись методов уже после того, как классы были подгружены, пусть даже если ещё не ЗАПУЩЕНЫ. Если для этого понадобится изменить саму программу под такую изменяемую структуру, не проблема.
То есть как я это себе бы представлял в идеальном случае. подгружается jar файл в class path далее изменяю метод xyz на свой (именно метод, а не весь класс) и далее запускаю уже сам нужный класс с изменённым методом. Вот поэтому вопрос, какие формы реализации подобного уже имеются. И пожалуйста, без коментов, типа хочешь не гпл, пиши своё, ибо рад бы, но несколько лет в запасе не имею. Это сообщение отредактировал(а) Viroman - 27.11.2010, 17:22 |
|||
|
||||
| lazycat |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 15.7.2007 Репутация: нет Всего: 1 |
Задача из раздела "challenges" (с позиции моего скромного опыта). С этой же позиции постараюсь предложить решения.
Теоретически изменить метод уже подгруженного класса, наверное, возможно, но IMHO сложность этой задачи многократно превысит все мыслимые преимущества от ее реализации. На мой взгляд, задачу можно решить примерно так: сделать два класса: один "для публики", второй "для себя". Тот что "для себя" сохранить в каком нибудь файле (не .class). Далее следует переписать загрузчик. Загрузчик должен работать как обычный загрузчик для всех классов, кроме того, который надо подменить. (Правила написания загрузчиков многократно публиковались в сети). Вот, в общем-то и все. |
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 7 Всего: 160 |
Да, судя по Вашим мыслям, вещества, которыми Вы злоупотребляете оставляют Вам мало времени в запасе. Так, отложили вещества в сторону, глубоко вдохнули. Выдохнули. А теперь чётко - каких нападок вы опасаетесь? Как Вы используете GPL-код в своём приложении? -------------------- |
|||
|
||||
| Viroman |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 28.7.2008 Репутация: нет Всего: нет |
Для особо обделённых этим самым веществом или всячески израсходовавшим его окончательно, повторюсь, если нечего написать, то лучше промолчать.. Ну конечно, для таких людей правил этикета не существует, но я уже на это к сожалению повлиять не могу :( О gpl я говорю из опыта, ибо работаю на заграничную компанию, которая именно это и попросила, и знаю, что third parts не должны входить под эту лицензию, а любое изменение в исходниках этому подлежит. Хоть вы компания такой величены как Cisco, и они тоже используют ту же программу под gpl, и также вынуждены выставлять исходники. Так что тупые коментарии о серном веществе, либо нехватке времени не подлежат никакой критике. Обидно, что такие люди отравляют темы.
Эх, опять подмена классов с нужными методами, ну да ладно, пусть будет, как есть. Это сообщение отредактировал(а) Viroman - 27.11.2010, 22:55 |
||||
|
|||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 7 Всего: 160 |
Конечно. И ваша компания тоже вынуждена. Или пуская тратится на свои велосипеды. Есть и другие варианты. Но. Самое главное, что Вы приходите сюда с вопросом "Как бы мне убить человека и скрыть факт убийства" непонимая главного, Вы всё равно будете убийцой. Обидно, что количество наркоманов в профессии неуклонно растёт. -------------------- |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 1 Всего: 34 |
kemiisto, в сексопаталогии есть такое явление: эксгибиционизм. Это когда больной получает удовольствие, демонстрируя публике не самые приятные взгляду части своего тела.
Был бы я студентом-медиком, написал бы диплом. Тема была бы О тех, кто начинает посты словами "Не разводить излишних диспутов на тему моральных устоев". -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| nc30 |
|
|||
|
Интересующийся :) ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 24.6.2010 Где: Санкт-Петербург Репутация: нет Всего: 8 |
@Offtop
![]()
Это сообщение отредактировал(а) nc30 - 1.12.2010, 06:06 |
|||
|
||||
| Skipy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 487 Регистрация: 24.8.2006 Где: Москва, Россия Репутация: нет Всего: 16 |
Еще более обидно существование тем "как сп...дить чужое, и чтобы за это ничего не было" |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Очень странно что у компании нет юриста который мог бы прочитать GPL (ну или хотябы FAQ на сайте FSF) и объяснить что: а) переводить исходники под GPL нужно только если вы распространяете приложение б) что статическая линковка с GPL приложением (использование вашими классами классов/интерфейсов из этой библиотеки и есть статическая линковка) означает, что приложение тоже должно распространятся по GPL лицензии в) в случае чего ответственность за нарушение GPL будет нести тот кто это делает, т.е. если западная компания начнет распространять софт по лицензии несовместимой с GPL, то именно она и будет нести ответственность, а не разработчик. Так что переложить ответственность не получится.
З.Ы. Способ конечно есть, но обсуждать его в данном контексте считаю неразумным. Да и кривой он. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Разные вопросы" | |
|
|
Сюда нужно постить только темы, которые нельзя отнести ни к одному из существующих разделов. Если вы не уверены, то просмотрите еще раз заголовки форумов, карту форума или попробуйте воспользоваться поиском.
С уважением, Smartov. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разные вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |