Можно ли добавлять пользовательские метаданные в файлы .class?

Мы использовали liquibase в нашей компании некоторое время, и у нас была среда непрерывной интеграции, настроенная для миграции базы данных, которая прерывала работу, когда патч содержал ошибку.

Интересной «особенностью» этой среды CI является то, что у поломки был «вероятный виновник», потому что у всех исправлений должен быть «автор», а в сообщении об ошибке указывается имя автора.

Если вы не знаете, что такое ликвибаза, ничего страшного, это не главное.

Дело в том, что наличие имени человека, прикрепленного к ошибке, действительно полезно для процесса разработки программного обеспечения: проблемы решаются намного быстрее.

Итак, я подумал: возможно ли это для трассировки стека Java?

Могли бы мы иметь трассировку стека с именами людей и номерами строк, как показано ниже?

java.lang.NullPointerException
 at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372:john)
 at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:3121:mike)
 at org.hibernate.event.def.DefaultLoadEventListener.createProxyIfNecessary(DefaultLoadEventListener.java:232:bob)
 at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:173:bob)
 at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:87:bob)
 at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862:john)

Такая информация должна быть извлечена из системы SCM (например, выполнение «svn fault» для каждого исходного файла).

А теперь забудь на минуту о том, что время компиляции было потрачено впустую: возможно ли это вообще? Добавлять метаданные в файлы классов подобным образом?

6
задан Tony Lâmpada 22 May 2012 в 21:18
поделиться