Bonjour,

Depuis un moment, j'utilise un bean messageSource de classe ResourceBundleMessageSource pour l'internationalisation de Spring. Ca marchait très bien, mais maintenant, j'ai voulu étendre cette classe pour ajouter des fonctionnalités :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class JThequeResourceBundle extends ResourceBundleMessageSource implements EditableResourceBundle {
    private String coreBaseName;
 
    private final List<String> baseNames = new ArrayList<String>(10);
 
    @PostConstruct
    public void init(){
        addBaseName(coreBaseName);
        addBaseName(Managers.getCore().getApplication().getBaseName());
 
        refresh();
    }
 
    @Override
    public void addBaseName(String baseName){
        baseNames.add(baseName);
    }
 
    @Override
    public void removeBaseName(String baseName){
        baseNames.remove(baseName);
    }
 
    @Override
    public void refresh(){
        setBasenames(baseNames.toArray(new String[baseNames.size()]));
    }
 
    public void setCoreBaseName(String coreBaseName) {
        this.coreBaseName = coreBaseName;
    }
}
Et j'ai modifié la description XML du bean :

Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<bean id="messageSource" class="org.jtheque.core.managers.language.JThequeResourceBundle">
     <property name="coreBaseName" value="${coreBaseName}" />
</bean>

Et depuis, quand je récupére le bean "messageSource", j'ai un objet de type DelegatingMessageSource et je suis obligé de récupérer le parentMessageSource.

Est-ce qu'il y a un moyen pour éviter de passer par ce DelegatingMessageSource ou est-ce que je suis obligé de passer par lui ?

Merci