Commit fea008995e924308685a3b01f51392ffa1a754c5

Authored by Dancovich
2 parents 57c32e96 b32c6951
Exists in master

Merge remote-tracking branch 'origin/2.4.0' into 2.4.0

documentation/reference/pt-BR/master.xml
@@ -27,6 +27,7 @@ @@ -27,6 +27,7 @@
27 <xi:include href="parentsPom.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 27 <xi:include href="parentsPom.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
28 <xi:include href="arquetipo.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 28 <xi:include href="arquetipo.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
29 <xi:include href="controlador.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 29 <xi:include href="controlador.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
  30 + <xi:include href="persistencia.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
30 <xi:include href="transacao.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 31 <xi:include href="transacao.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
31 <xi:include href="excecao.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 32 <xi:include href="excecao.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
32 <xi:include href="configuracao.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 33 <xi:include href="configuracao.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
documentation/reference/pt-BR/persistencia.xml 0 → 100644
@@ -0,0 +1,76 @@ @@ -0,0 +1,76 @@
  1 +<?xml version='1.0' encoding="utf-8"?>
  2 +<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  3 + "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" []>
  4 +<chapter id="persistencia">
  5 +
  6 + <title>Persistência</title>
  7 +
  8 + <section>
  9 + <title>JDBC</title>
  10 + <para>
  11 + A persistência de dados usando JDBC, está disponível na extensão <literal>demoiselle-jdbc</literal>,
  12 + que provê uma fábrica de <literal>Connection</literal>. Para utilizá-la basta incluir a dependência para extensão JDBC
  13 + no arquivo pom.xml.
  14 + </para>
  15 + <programlisting role="XML"><![CDATA[<dependency>
  16 + <groupId>br.gov.frameworkdemoiselle</groupId>
  17 + <artifactId>demoiselle-jdbc</artifactId>
  18 + <scope>compile</scope>
  19 +</dependency>]]>
  20 + </programlisting>
  21 +
  22 + <para>
  23 + Para obter uma instância de uma conexão, basta injetá-la na classe:
  24 + </para>
  25 + <programlisting role="JAVA"><![CDATA[@Inject
  26 +private Connection conn;]]></programlisting>
  27 + <para>
  28 + A conexão será criada pela fábrica do Demoiselle de acordo com as configurações no arquivo de propriedade (<emphasis>demoiselle.properties</emphasis>).
  29 + </para>
  30 + <para>
  31 + Você pode configurar as propriedades da conexão:
  32 + </para>
  33 + <programlisting>frameworkdemoiselle.persistence.driver.class=MeuDriver
  34 +frameworkdemoiselle.persistence.url=MinhaUrl
  35 +frameworkdemoiselle.persistence.username=MeuUsername
  36 +frameworkdemoiselle.persistence.password=MeuPassword</programlisting>
  37 + <para>
  38 + ou indicar o JNDI do datasource:
  39 + </para>
  40 + <programlisting>frameworkdemoiselle.persistence.jndi.name=MeuJndiName</programlisting>
  41 +
  42 + <para>
  43 + Caso você necessite usar conexões com datasources diferentes, você pode usar a anotoção
  44 + <literal>@Name</literal> passando como valor o nome da conexão definida no arquivo
  45 + <literal>demoiselle.properties</literal>
  46 + </para>
  47 +
  48 + <para>
  49 + No <literal>demoiselle.properties</literal> basta adicionar um nome qualquer para identificar a conexão:
  50 + </para>
  51 + <programlisting>frameworkdemoiselle.persistence.conn1.jndi.name=MeuJndiName1
  52 +frameworkdemoiselle.persistence.conn2.jndi.name=MeuJndiName2</programlisting>
  53 +
  54 + <para>
  55 + Injetar o <literal>Connection</literal> usando <literal>@Name</literal> com o nome da conexão escolhida:
  56 + </para>
  57 +
  58 + <programlisting role="JAVA"><![CDATA[@Inject
  59 +@Name("conn1")
  60 +private Connection conn1;
  61 +
  62 +@Inject
  63 +@Name("conn2")
  64 +private Connection conn2;
  65 +]]></programlisting>
  66 +
  67 +
  68 + <para>
  69 + Caso possua mais de uma configuração de datasource você pode definir uma configuração padrão
  70 + para sua aplicação.
  71 + </para>
  72 + <programlisting>frameworkdemoiselle.persistence.default.unit.name=conn1</programlisting>
  73 +
  74 + </section>
  75 +
  76 +</chapter>
impl/core/src/main/java/br/gov/frameworkdemoiselle/configuration/Configuration.java
@@ -45,6 +45,7 @@ import java.lang.annotation.Target; @@ -45,6 +45,7 @@ import java.lang.annotation.Target;
45 45
46 import javax.enterprise.inject.Stereotype; 46 import javax.enterprise.inject.Stereotype;
47 import javax.enterprise.util.Nonbinding; 47 import javax.enterprise.util.Nonbinding;
  48 +import javax.inject.Named;
48 49
49 import br.gov.frameworkdemoiselle.annotation.StaticScoped; 50 import br.gov.frameworkdemoiselle.annotation.StaticScoped;
50 51
@@ -63,6 +64,7 @@ import br.gov.frameworkdemoiselle.annotation.StaticScoped; @@ -63,6 +64,7 @@ import br.gov.frameworkdemoiselle.annotation.StaticScoped;
63 * 64 *
64 * @author SERPRO 65 * @author SERPRO
65 */ 66 */
  67 +@Named
66 @Inherited 68 @Inherited
67 @Stereotype 69 @Stereotype
68 @StaticScoped 70 @StaticScoped
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/MessageContextImpl.java
@@ -40,8 +40,6 @@ import java.io.Serializable; @@ -40,8 +40,6 @@ import java.io.Serializable;
40 import java.util.ArrayList; 40 import java.util.ArrayList;
41 import java.util.List; 41 import java.util.List;
42 42
43 -import javax.enterprise.context.RequestScoped;  
44 -  
45 import org.slf4j.Logger; 43 import org.slf4j.Logger;
46 44
47 import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; 45 import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer;
@@ -59,16 +57,16 @@ import br.gov.frameworkdemoiselle.util.ResourceBundle; @@ -59,16 +57,16 @@ import br.gov.frameworkdemoiselle.util.ResourceBundle;
59 * 57 *
60 * @see MessageContext 58 * @see MessageContext
61 */ 59 */
62 -@RequestScoped  
63 public class MessageContextImpl implements Serializable, MessageContext { 60 public class MessageContextImpl implements Serializable, MessageContext {
64 61
65 private static final long serialVersionUID = 1L; 62 private static final long serialVersionUID = 1L;
66 63
67 - private final List<Message> messages = new ArrayList<Message>(); 64 + @Deprecated
  65 + private transient final List<Message> messages = new ArrayList<Message>();
68 66
69 - private static ResourceBundle bundle; 67 + private transient static ResourceBundle bundle;
70 68
71 - private static Logger logger; 69 + private transient static Logger logger;
72 70
73 @Override 71 @Override
74 public void add(final Message message, Object... params) { 72 public void add(final Message message, Object... params) {
@@ -101,11 +99,13 @@ public class MessageContextImpl implements Serializable, MessageContext { @@ -101,11 +99,13 @@ public class MessageContextImpl implements Serializable, MessageContext {
101 } 99 }
102 100
103 @Override 101 @Override
  102 + @Deprecated
104 public List<Message> getMessages() { 103 public List<Message> getMessages() {
105 return messages; 104 return messages;
106 } 105 }
107 106
108 @Override 107 @Override
  108 + @Deprecated
109 public void clear() { 109 public void clear() {
110 getLogger().debug(getBundle().getString("cleaning-message-context")); 110 getLogger().debug(getBundle().getString("cleaning-message-context"));
111 messages.clear(); 111 messages.clear();