-
Demande d'amélioration
-
Résolution: Résolu
-
Mineur
-
6.02.26, 6.04.19
-
Aucune
-
Aucune
-
Dev
Le mécanisme d'ajout de types de propriétés dans l'usine à sites repose sur un bean Spring "serviceTemplateSiteProperty", déclaré dans core-usineasites.xml
Il est possible à l'heure actuelle d'ajouter des types en modifiant le bean dans son intégralité (surcharge dans ApplicationContext) et les attributs maps incluses.
Il faudrait plutôt permettre d'utiliser un bean de classe "com.kportal.core.context.MapToAddBean" qui permet d'ajouter des valeurs aux maps d'un bean existant pour une extension donnée.
Pour ce faire, il faudrait ajouter les getters à la classe com.kosmos.usinesite.template.property.service.impl.ServiceTemplateSitePropertyImpl
/** * @return the mapExtracteur */ public Map<String, TemplateSitePropertyExtracteur<TemplateSiteProperty, Object>> getMapExtracteur() { return mapExtracteur; } /** * @return the mapValidateur */ public Map<String, TemplateSitePropertyValidateur<TemplateSiteProperty>> getMapValidateur() { return mapValidateur; } /** * @return the mapTraitement */ public Map<String, TemplateSitePropertyTraitement<TemplateSiteProperty>> getMapTraitement() { return mapTraitement; } /** * @return the mapFormateur */ public Map<String, TemplateSitePropertyHTMLFormateur<TemplateSiteProperty>> getMapFormateur() { return mapFormateur; }
Il est ainsi possible de déclarer un nouveau type de propriété d'usine à site :
<bean class="com.kportal.core.context.MapToAddBean"> <property name="idExtensionToMerge" value="core"/> <property name="idBeanToMerge" value="serviceTemplateSiteProperty"/> <property name="mapToMerge" value="mapExtracteur"/> <property name="add"> <map> <entry key="fr.kosmos.web.projets.extensions.social.template.property.bean.impl.TemplateSitePropertyInstagram"> <bean class="fr.kosmos.web.projets.extensions.social.template.property.extracteur.impl.TemplateSitePropertyInstagramExtracteur"/> </entry> </map> </property> </bean> <bean class="com.kportal.core.context.MapToAddBean"> <property name="idExtensionToMerge" value="core"/> <property name="idBeanToMerge" value="serviceTemplateSiteProperty"/> <property name="mapToMerge" value="mapValidateur"/> <property name="add"> <map> <entry key="fr.kosmos.web.projets.extensions.social.template.property.bean.impl.TemplateSitePropertyInstagram"> <bean class="com.kosmos.usinesite.template.property.validateur.impl.TemplateSitePropertyStringValidateur"/> </entry> </map> </property> </bean> <bean class="com.kportal.core.context.MapToAddBean"> <property name="idExtensionToMerge" value="core"/> <property name="idBeanToMerge" value="serviceTemplateSiteProperty"/> <property name="mapToMerge" value="mapFormateur"/> <property name="add"> <map> <entry key="fr.kosmos.web.projets.extensions.social.template.property.bean.impl.TemplateSitePropertyInstagram"> <bean class="fr.kosmos.web.projets.extensions.social.template.property.formateur.impl.TemplateSitePropertyInstagramHTMLFormateur"/> </entry> </map> </property> </bean>