Les applications Eclipse Scout sont opérationnelles dès leur création à l’aide du template initial, mais pour bien comprendre leur fonctionnement, il y a pas mal de petits détails.
Je voulais obtenir un code indépendant de la configuration de la base de données, c’est-à -dire utiliser le fichier config.ini
(qui doit de toute façon être mis à jour leur d’un changement d’environnement).
Fidèle à sa logique, Eclipse Scout propose d’étendre la classe AbstractSqlService
pour définir la configuration d’accès à la base de données.
Il existe une propriété privée m_jdbcMappingName
qui est accessible par des getters et des setters publics. Dans la classe fille, il est d’usage d’indiquer une constante dans la fonction getConfigured*()
correspondante (getConfiguredJdbcMappingName()
dans ce cas). C’est ce que la perspective Eclipse fait si l’on utilise la «Scout Properties View».
Le code correspondant:
protected String getConfiguredJdbcMappingName() {
return "jdbc:derby:/Users/jebr/code/mcq/mcq_db.derby";
}
À l’initialisation, cette valeur va être lue et devenir la valeur courante (accessible ensuite par le getter traditionnel).
Pourtant il existe une autre manière d’initialiser cette valeur. Il est possible d’utiliser dans le fichier config.ini une ligne respectant ce pattern:
<Qualified Name>#<Setter name without set prefix>=<value>
Ainsi dans notre cas:
org.eclipselabs.mcqs.server.services.common.sql.McqDerbySqlService#JdbcMappingName=jdbc:derby:/Users/jebr/code/mcq/mcq_db.derby
C’est magique…