Je développe mon premier plugin Grails. Il doit accéder à un webservice. Le plugin aura évidemment besoin de l'url webservice. Quelle est la meilleure façon de configurer ceci sans le coder en dur dans les classes Groovy? Ce serait sympa avec différentes config pour différents environnements.Configuration du plugin Grails
Répondre
Si c'est seulement une petite option de configuration (lire: un élément), il peut être plus facile de slurp dans un fichier de propriétés. S'il y a un certain nombre d'options de configuration, et que certaines d'entre elles devraient être dynamiques, je suggérerais de faire ce que le plugin Acegi Security fait - ajouter un fichier à /grails-app/conf/plugin_name_config.groovy peut-être.
bonus ajouté est que l'utilisateur peut exécuter du code groovy pour calculer leurs options de configuration (beaucoup mieux sur l'utilisation de fichiers de propriétés), ainsi que de pouvoir faire des environnements différents avec facilité.
consultez http://groovy.codehaus.org/ConfigSlurper, qui est ce que les grails utilisent en interne pour slurp configs comme config.groovy.
//e.g. in /grails-app/conf/MyWebServicePluginConfig.groovy
somePluginName {
production {
property1 = "some string"
}
test {
property1 = "another"
}
}
//in your myWebServicePlugin.groovy file, perhaps in the doWithSpring closure
GroovyClassLoader classLoader = new GroovyClassLoader(getClass().getClassLoader())
ConfigObject config
try {
config = new ConfigSlurper().parse(classLoader.loadClass('MyWebServicePluginConfig'))
} catch (Exception e) {/*??handle or what? use default here?*/}
assert config.test.property1.equals("another") == true
Vous pourriez vouloir Keep It Simple (tm). Vous pouvez définir l'URL directement dans Config.groovy - y compris les paramètres par environnement - et y accéder à partir de votre plugin si nécessaire en utilisant grailsApplication.config (dans la plupart des cas) ou un objet ConfigurationHolder.config (Voir plus details in the manual). En outre, ce paramètre peut également être défini dans les fichiers de propriétés Java standard ou dans d'autres fichiers de configuration spécifiés dans grails.config.locations.
par exemple. dans Config.groovy
// This will be the default value...
myPlugin.url=http://somewhe.re/test/endpoint
environments {
production {
// ...except when running in production mode
myPlugin.url=http://somewhe.re/for-real/endpoint
}
}
plus tard, dans un service fourni par votre plugin
import org.codehaus.groovy.grails.commons.ConfigurationHolder
class MyPluginService {
def url = ConfigurationHolder.config.myPlugin.url
// ...
}
- 1. Désactiver le plugin Grails
- 2. GRAILS erreur de plugin
- 3. Grails problèmes de plugin portlet
- 4. Grails: erreur en utilisant le plugin liferay
- 5. Restriction des paramètres de configuration du plugin Java maven
- 6. Utilisation du fichier log4j.properties externe avec Grails
- 7. Syntaxe du filtre Grails, ou, Comment appeler un filtre Grails à l'extérieur Grails
- 8. Options du plugin jQuery
- 9. Structure du plugin jQuery
- 10. Développement du plugin Safari
- 11. Rails d'autorisation Erreur du plugin
- 12. Configuration de l'application Grails 1.1 avec dépendances de plugins dans IntelliJ
- 13. configuration du paquet sharepoint
- 14. Configuration du mappage IRQ
- 15. Unité du CIO Configuration
- 16. Comment accélérer l'exécution du test de grails
- 17. Conception de l'API du plugin
- 18. Fonctions du plugin Mootools Slider
- 19. Recommandation du plugin d'authentification Rails
- 20. Redimensionner l'image dans Grails
- 21. Configuration du délai d'expiration du socket TCP
- 22. Configuration du codec vidéo QuickTime
- 23. Configuration du dojo en éclipse
- 24. Configuration du bean de printemps
- 25. Configuration CruiseControl.net répertoire du projet
- 26. Configuration du serveur de contenu
- 27. Comment référencer un champs de classe de domaine Grails depuis l'extérieur du contrôleur Grails et afficher?
- 28. Grails: Réutiliser une liste prédéfinie
- 29. Plugin Maven exécutant un autre plugin
- 30. Syntaxe correcte pour ajouter un mappage mime à web.xml dans un plugin grails
idée étrange d'avoir le fichier de configuration séparée juste pour une propriété, 'Config.groovy' doit être utilisé pour cette propriété. – tig
@tig AFAIK, 'Config.groovy' est omis lorsque le plugin est empaqueté, et plutôt pour tester le plugin que de le configurer, non? – peterp