37 votes

PropertyEditors Java7 enregistrés via ThreadGroupContext

J'ai découvert que PropertyEditorManager enregistre/trouve des rédacteurs par ThreadGroupContext et non par registre global comme avant java 7.

Et java 7 crée à chaque fois un nouveau ThreadGroupContext pour une nouvelle ThreadGroup . Ainsi, PropertyEditorFinder (qui enregistre/trouve réellement les éditeurs) est à nouveau nouveau nouveau.

Java utilise des éditeurs prédéfinis pour certaines classes ( Byte , Long etc) et les enregistre dans PropertyEditorFinder at ctor). Imaginons que je veuille enregistrer mon propre PropertyEditor pour une classe prédéfinie (par exemple Long). C'est facile à faire en Java 6. Mais chaque fois que des threads sont créés dans un nouveau ThreadGroup en java 7, je perds mon éditeur.

Alors pourriez-vous me dire s'il existe une solution pour gérer de manière agréable les éditeurs créés pour un nouveau ThreadGroup en java 7 ? Avez-vous également un problème similaire ? Et comment le surmontez-vous ?

P.S. Je suppose que je dois m'excuser pour mon anglais =)

P.P.S. ThreadGroupContext est un remplacement de AppContext. Et j'espérais que l'implémentation de la création des contextes serait similaire : les deux utilisent le mapping entre ThreadGroup et le contexte (AppContext en java 6, ThreadGroupContext en java 7). Et java 6 utilise le même AppContext pour le nouveau ThreadGroup que pour son parent. En d'autres termes, l'AppContext est utilisé pour l'ensemble de l'arbre ThreadGroup dans une jvm. Mais malheureusement, la création du ThreadGroupContext est différente - il s'agit simplement d'un nouveau contexte pour un nouveau groupe. La question est donc automatiquement résolue si un jour le ThreadGroupContext utilise la même technique de création.

1voto

Johm Don Points 341

Si vous aviez une classe avec un FQPN de java.lang.Long, il vous suffit d'implémenter une classe appelée java.lang.LongEditor et de la distribuer avec votre application. En général, il suffit d'implémenter une classe portant le nom de la classe que vous voulez éditer, avec Editor à la fin, et Java devrait la trouver automatiquement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X