Extension de la configuration d'un module de service pour ajout de paramètres nom-valeur
La méthode la plus simple pour ajouter rapidement des données de configuration à un module de service BOD consiste à étendre le fichier de configuration HCL Commerce par défaut. Aucun code d'interpréteur n'a à être rédigé, il vous suffit de fournir les paramètres dans un fichier XML, puis de les extraire dans votre code Java.
Pourquoi et quand exécuter cette tâche
Remarque : Dans la mesure où les données de configuration sont structurées sous forme de paires nom-valeur, les restrictions suivantes s'appliquent :
Pour ajouter à un module de service des données de configuration sous forme de paires nom-valeur, procédez comme suit :- Chaque nom de données de configuration doit être unique.
- Les données ne peuvent pas être structurées dans des relations parent-enfant.
Procédure
-
Créez un fichier appelé
wc-component.xmldans le répertoire workspace_dir\WC\xml\config\servicemodulename-ext\, où servicemodulename est le nom du HCL Commerce ou du module de service personnalisé. -
Collez le code XML suivant dans le fichier :
où MyConfigurationGroup est le nom d'un regroupement logique de données de configuration et myName et myValue la paire nom-valeur que vous souhaitez ajouter.<_config:DevelopmentComponentConfiguration xmlns:_config="http://www.ibm.com/xmlns/prod/commerce/foundation/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ibm.com/xmlns/prod/commerce/foundation/config ../xsd/wc-component.xsd"> <_config:extendedconfiguration> <_config:configgrouping name="MyConfigurationGroup"> <_config:property name="myName" value="myValue"/> </_config:configgrouping> </_config:extendedconfiguration> </_config:DevelopmentComponentConfiguration > -
Dans le code Java de votre module de service, vous pouvez accéder aux données de configuration en utilisant un code Java similaire à ceci :
String compId = "com.myco.myservicemodule"; ComponentConfiguration config = ComponentConfigurationRegistry.instance().getComponentConfiguration(compId); List configNodes = (List) config.getComponentConfiguration(ExtendedConfigurationConfigNode.class.getName(), null); pour (int i=0; i<configNodes.size(); i++) { ExtendedConfigurationConfigNode extendedConfig = (ExtendedConfigurationConfigNode) configNodes.get(i); HashMap configMap = (HashMap) extendedConfig.getConfigSection("MyConfigurationGroup") ; String customNewConfigMyValue = (String) configMap.get("myName") ; }Notez comment les chaînes MyConfigurationGroup et MyName sont utilisées pour extraire les valeurs de configuration.