powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Инструментирование в Java. Теория и примеры
14 сообщений из 14, страница 1 из 1
Инструментирование в Java. Теория и примеры
    #38034828
Возможно кому-то интересна эта тема. Т.к. у меня ушло заметное время на то, чтобы разобраться в предмете, я решил облегчить эту задачу тем, кому тема тоже интересна.

Написал статью и примеры трансформации классов в Java. В статье рассказывается о том что такое инструментирование и трансформация классов в Java, какие механизмы существуют в Java Platform SE для инструментирования, рассматриваются примеры трансформации классов. Все примеры готовы к запуску и вам не потребуется ничего кроме установленной JRE для их запуска.

Статья и примеры рассчитаны на читателя, который знаком с языком Java и представляет что такое JRE, но при этом он может совершенно не иметь представления о том что такое инструментирование. Целью статьи являтся агрегирование основных сведений, чтобы даже полностью незнакомый с инструментированием классов человек, после прочтения и изучения примеров, мог самостоятельно работать в этом направлении.

Домашняя страница проекта: http://code.google.com/p/java-instrumentation/.
Читать статью
Онлайн документация к примерам
...
Рейтинг: 0 / 0
Инструментирование в Java. Теория и примеры
    #38034853
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Загрузка загрузчиком загружаемого класса. Попросили бы кого вычитку сделать.
...
Рейтинг: 0 / 0
Инструментирование в Java. Теория и примеры
    #38034861
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"загрузчик-ребёнок" по-русски "дочерний загрузчик"
...
Рейтинг: 0 / 0
Инструментирование в Java. Теория и примеры
    #38034871
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А никаких специальных разрешений не нужно чтобы java.* инструментировать?
...
Рейтинг: 0 / 0
Инструментирование в Java. Теория и примеры
    #38034990
BlazkowiczА никаких специальных разрешений не нужно чтобы java.* инструментировать?
нет, вообще ничего. Подозреваю что для запрета нужно самостоятельно настраивать безопастность.

Blazkowicz"загрузчик-ребёнок" по-русски "дочерний загрузчик"
спасибо, поправил

BlazkowiczЗагрузка загрузчиком загружаемого класса
а это где?, не смог найти похожего текста:)
...
Рейтинг: 0 / 0
Инструментирование в Java. Теория и примеры
    #38034995
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коваленко ВалентинBlazkowiczЗагрузка загрузчиком загружаемого класса
а это где?, не смог найти похожего текста:)
вся первая половина статьи. Как-то стоило обдумать и минимизировать эту тавтологию. Почти в каждом приложении один и тот же корень минимум два раза.
...
Рейтинг: 0 / 0
Инструментирование в Java. Теория и примеры
    #38035004
спасибо, попробую посмотреть и перефразировать неприятные места.

А по поводу содержимого, были ли замечены ошибки/неточности?
...
Рейтинг: 0 / 0
Инструментирование в Java. Теория и примеры
    #38035010
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коваленко ВалентинА по поводу содержимого, были ли замечены ошибки/неточности?
Я бегло прочитал, так как большую часть этого знаю. Особых ляпов не нашел. Если делать вычитку, то там много неточных фраз, которые можно переформулировать.

Заинтересовал вопрос с CDS (class data sharing). Если класс загружается через CDS, тогда его невозможно инструментировать при загрузке? Или возможно?
...
Рейтинг: 0 / 0
Инструментирование в Java. Теория и примеры
    #38035018
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы слово "загрузчик" вообще почти везде заменил на ClassLoader. Во-первых это снизит тавтологию. Во-вторых разработчики в общении друг с другом чаще используют именно слово ClassLoader, а не "загрузчик".
...
Рейтинг: 0 / 0
Инструментирование в Java. Теория и примеры
    #38035026
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем в статье про CGLib и Proxy. Да, они решают схожую задачу - реализуют AOП. Но к самой инструментации отношения, ведь, не имеют. Про AOП, кстати, ни слова.
...
Рейтинг: 0 / 0
Инструментирование в Java. Теория и примеры
    #38035034
BlazkowiczЗаинтересовал вопрос с CDS (class data sharing). Если класс загружается через CDS, тогда его невозможно инструментировать при загрузке? Или возможно?
Я не пробовал, потому сказать не возьмусь. Скажу лишь что в документации упоминаний того, что CDS влияет на возможность трансформации, я не видел. И интуитивно, я бы скорее ожидал что влияния быть не должно, т.к. CDS можно рассматривать как низкоуровневый оптимизационный механизм, о котором Java-код ничего не знает и соответственно было бы очень странно, если бы такой механизм влиял на поведение Java-кода.
...
Рейтинг: 0 / 0
Инструментирование в Java. Теория и примеры
    #38035036
BlazkowiczЗачем в статье про CGLib и Proxy. Да, они решают схожую задачу - реализуют AOП. Но к самой инструментации отношения, ведь, не имеют. Про AOП, кстати, ни слова.
Они используются в примерах только для того, чтобы сделать примеры более интересными. Принципиальной необходимости в импользовании динамических прокси конечно нет. В описании примера В я так и написал, что отношения к тебе статьи не имеет, но для общего развития решил добавить в пример
...
Рейтинг: 0 / 0
Инструментирование в Java. Теория и примеры
    #38035343
BlazkowiczЗаинтересовал вопрос с CDS (class data sharing). Если класс загружается через CDS, тогда его невозможно инструментировать при загрузке? Или возможно?
Усомнился в своих догадках высказанных выше и решил проверить

-Xshare:on require using shared class data, otherwise fail.

запускаю пример из статьи:
Код: plaintext
java -Xshare:on -javaagent:agent-d.jar -jar main.jar -ex d
результат:
Код: plaintext
1.
2.
3.
An error has occurred while processing the shared archive file.
 Tool agent requires sharing to be disabled. 
Error occurred during initialization of VM
Unable to use shared archive.

Правильный вопрос вас заинтересовал, нужно в статье его отразить:)
...
Рейтинг: 0 / 0
Инструментирование в Java. Теория и примеры
    #38036609
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коваленко ВалентинПравильный вопрос вас заинтересовал, нужно в статье его отразить:)Можете ещё добавить, что, как минимум "в венде", CDS фатально уменьшает допустимые значения -Xms/-Xmx для 32-разрядных jvm и не может использоваться при -Xms, превышающем 4G в 64-разрядных.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Инструментирование в Java. Теория и примеры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]