Java7 PropertyEditors, зарегистрированные через ThreadGroupContext

Я узнал, что PropertyEditorManager регистрирует/находит редакторы на основе ThreadGroupContext, а не на глобальный реестр до Java7.

И Java7 каждый раз создает новый ThreadGroupContext для нового ThreadGroup. Таким образом PropertyEditorFinder (который фактически регистрирует/находит редакторы) снова является новым.

Java использует предопределенные редакторы для некоторых классов (Byte, Long и т.д.) и регистрирует их в PropertyEditorFinder в ctor). Скажем, я хочу зарегистрировать свой собственный PropertyEditor для некоторого предопределенного класса (т.е. Long). Это легко сделать в Java6, но в Java7 каждый раз, когда потоки создаются в новом ThreadGroup, я потерял свой редактор.

Итак, не могли бы вы сказать мне, есть ли какое-нибудь решение для обработки с хорошей манерой, какие редакторы создаются для нового ThreadGroup в Java7? Если вы сталкиваетесь с какой-то проблемой и как вы ее преодолеваете?

P.S. Наверное, я должен извиниться за свой английский =)

P.P.S. ThreadGroupContext является заменой для AppContext. И я надеялся, что реализация контекстов создания будет схожа: оба используют сопоставление между ThreadGroup и контекстом (AppContext в java 6, ThreadGroupContext в java 7). И java 6 использует тот же AppContext для нового ThreadGroup как для своего родителя. Другими словами, AppContext используется для всего дерева ThreadGroup в jvm. Но, к сожалению, создание ThreadGroupContext отличается - это просто новый контекст для новой группы. Поэтому вопрос автоматически разрешается, если в один прекрасный день ThreadGroupContext будет использоваться тот же метод создания.

Ответ 1

Если у вас был класс с FQPN из java.lang.Long, вам просто нужно реализовать класс java.lang.LongEditor и распространить его с вашим приложением. В общем, просто реализуйте класс, который имеет имя класса, который вы хотите отредактировать, с добавлением редактора до конца, и Java должен найти его автоматически.