config.ini et setter dans Eclipse Scout

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».

Object Properties View - Sql Service

Le code correspondant:

@Override
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…

Laisser un commentaire