<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lucas Teixeira &#187; grailsapplication</title>
	<atom:link href="http://lucastex.com.br/tag/grailsapplication/feed/" rel="self" type="application/rss+xml" />
	<link>http://lucastex.com.br</link>
	<description>@lucastex</description>
	<lastBuildDate>Fri, 07 Jan 2011 12:44:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Config.groovy &#8211; Cuidado ao manipular suas configurações</title>
		<link>http://lucastex.com.br/2010/01/11/config-groovy-cuidado-ao-manipular-suas-configuracoes/</link>
		<comments>http://lucastex.com.br/2010/01/11/config-groovy-cuidado-ao-manipular-suas-configuracoes/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 00:18:00 +0000</pubDate>
		<dc:creator>Lucas Teixeira</dc:creator>
				<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Maldades do Groovy]]></category>
		<category><![CDATA[config]]></category>
		<category><![CDATA[dica]]></category>
		<category><![CDATA[grailsapplication]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[problema]]></category>
		<category><![CDATA[referencia]]></category>

		<guid isPermaLink="false">http://lucastex.com.br/?p=234</guid>
		<description><![CDATA[

Hum, reportando uma situação no mínimo inusitada que tive por aqui.
Acabei descobrindo, da maneira ruim, que no Grails, quando lêmos a configuração da aplicação (Config.groovy) através da referência grailsApplication.config estamos manipulando uma variável passível de alterações, ou seja, qualquer atributo que você recuperar de lá, e modificar, assim estará para toda a execução.
Na minha situação, [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Flucastex.com.br%252F2010%252F01%252F11%252Fconfig-groovy-cuidado-ao-manipular-suas-configuracoes%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2F6RuMHa%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Config.groovy%20-%20Cuidado%20ao%20manipular%20suas%20configura%C3%A7%C3%B5es%20%22%20%7D);"></div>
<p>Hum, reportando uma situação no mínimo inusitada que tive por aqui.</p>
<p>Acabei descobrindo, da maneira ruim, que no Grails, quando lêmos a configuração da aplicação (Config.groovy) através da referência <strong>grailsApplication.config</strong> estamos manipulando uma variável passível de alterações, ou seja, qualquer atributo que você recuperar de lá, e modificar, assim estará para toda a execução.</p>
<p>Na minha situação, eu mantinha uma lista de e-mails lá no arquivo de configuração para que quando disparado, eu pudesse enviar o e-mail a estes destinatários somados ao e-mail do usuário, que tinha acabado de ser inputado no formulário. Tinha algo assim:</p>
<pre class="brush: groovy; title: ;">contato.destinatarios = [&quot;email1@xpto.com&quot;, &quot;email2@xpto.com&quot;, &quot;email3@xpto.com&quot;]</pre>
<p>E dentro do controller, usando o mail plugin (<a href="http://lucastex.com.br/2010/01/02/envio-de-e-mails-com-o-mail-plugin/">leia este post sobre o mail plugin</a>), executava o seguinte trecho de código:</p>
<pre class="brush: groovy; title: ;">def destinatarios = grailsApplication.config.contato?.destinatarios?.toArray()
destinatarios &lt;&lt; params.email
sendMail {
    to destinatarios
    subject &quot;Contato ...&quot;
    body &quot;......&quot;
 }</pre>
<p>Ou seja, quando eu pegava a referência dos destinatários do Config, eu mantinha essa referência em &#8216;destinatários&#8217;. Quando eu adicionava neste array o destinatário que vinha do formulários &#8220;params.email&#8221;, eu alterava a *instância* e referência da configuração da aplicação, e aquele e-mail ali ficava.</p>
<p>Resultado, no primeiro contato, receberam o e-mail a lista de destinatários e o primeirocontato@xpto.com, na segunda execução, todos eles da configuração, o primeirocontato@xpto.com e também o segundocontato@xpto.com foram copiados.</p>
<p>E assim sucessivamente.</p>
<p>Vivendo e aprendendo, tomem cuidado com isso!</p>

]]></content:encoded>
			<wfw:commentRss>http://lucastex.com.br/2010/01/11/config-groovy-cuidado-ao-manipular-suas-configuracoes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

