2017-07-26 1 views
0

J'ai créé un module Liferay 7, et cela fonctionne bien.J'ai écrit un module Liferay. Comment le rendre configurable par les administrateurs?

Problème: Dans le code source Java, j'ai codé en dur quelque chose que les administrateurs doivent modifier.

Question: Quelle est la manière de Liferay d'externaliser les paramètres? Cela ne me dérange pas si le serveur doit être redémarré, mais bien sûr la possibilité de modifier les paramètres sur un serveur en cours d'exécution (via Gogo Shell?) Pourrait être cool à condition que ces paramètres survivent aux redémarrages du serveur.

Plus précisément, j'ai un module pour lequel je voudrais être en mesure de configurer une clé API qui ressemble à "3g9828hf928rf98" et un autre module pour lequel je voudrais configurer une liste des structures permis qui ressemble à "BASIC-WEB-CONTENT","EVENTS","INVENTORY".

Répondre

2

Liferay utilise la configuration OSGi standard. C'est assez difficile à documenter ici, mais c'est bien présenté in the documentation.

En bref:

@Meta.OCD(id = "com.foo.bar.MyAppConfiguration") 
public interface MyAppConfiguration { 

    @Meta.AD(
     deflt = "blue", 
     required = false 
    ) 
    public String favoriteColor(); 

    @Meta.AD(
     deflt = "red|green|blue", 
     required = false 
    ) 
    public String[] validLanguages(); 

    @Meta.AD(required = false) 
    public int itemsPerPage(); 

} 

OCD est synonyme de ObjectClassDefinition. Il lie cette classe/objet de configuration à l'objet configurable via l'ID/PID.

AD est pour AttributeDefinition et fournit quelques indications pour l'interface de configuration, qui est générée automatiquement à l'aide de ce type de méta. Et quand vous n'aimez pas l'apparence de l'interface utilisateur générée automatiquement, vous devez "seulement" ajouter des clés de localisation pour les étiquettes que vous voyez à l'écran (traduction Liferay standard).

Vous trouverez beaucoup plus de détails sur la configuration d'OSGi par exemple sur enroute, bien que les exemples que j'ai trouvés soient toujours un peu plus complexes que juste après la configuration.