Commit 2b60ea3f10d0b652605f54816b4d2fef82a07544

Authored by Cleverson Sacramento
1 parent ecb12b66
Exists in master

Escolha entre conexão via JNDI ou configurada manualmente

impl/extension/jdbc/pom.xml
@@ -36,7 +36,6 @@ @@ -36,7 +36,6 @@
36 --> 36 -->
37 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 37 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
38 38
39 -  
40 <modelVersion>4.0.0</modelVersion> 39 <modelVersion>4.0.0</modelVersion>
41 40
42 <artifactId>demoiselle-jdbc</artifactId> 41 <artifactId>demoiselle-jdbc</artifactId>
@@ -68,6 +67,10 @@ @@ -68,6 +67,10 @@
68 </organization> 67 </organization>
69 68
70 <dependencies> 69 <dependencies>
  70 + <dependency>
  71 + <groupId>commons-dbcp</groupId>
  72 + <artifactId>commons-dbcp</artifactId>
  73 + </dependency>
71 </dependencies> 74 </dependencies>
72 75
73 <repositories> 76 <repositories>
impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/JdbcConfig.java
@@ -56,6 +56,15 @@ public class JdbcConfig implements Serializable { @@ -56,6 +56,15 @@ public class JdbcConfig implements Serializable {
56 @Name("driver.class") 56 @Name("driver.class")
57 private Map<String, String> driverClass; 57 private Map<String, String> driverClass;
58 58
  59 + @Name("url")
  60 + private Map<String, String> url;
  61 +
  62 + @Name("username")
  63 + private Map<String, String> username;
  64 +
  65 + @Name("password")
  66 + private Map<String, String> password;
  67 +
59 public String getDefaultDataDourceName() { 68 public String getDefaultDataDourceName() {
60 return defaultDataDourceName; 69 return defaultDataDourceName;
61 } 70 }
@@ -67,4 +76,16 @@ public class JdbcConfig implements Serializable { @@ -67,4 +76,16 @@ public class JdbcConfig implements Serializable {
67 public Map<String, String> getDriverClass() { 76 public Map<String, String> getDriverClass() {
68 return driverClass; 77 return driverClass;
69 } 78 }
  79 +
  80 + public Map<String, String> getUrl() {
  81 + return url;
  82 + }
  83 +
  84 + public Map<String, String> getUsername() {
  85 + return username;
  86 + }
  87 +
  88 + public Map<String, String> getPassword() {
  89 + return password;
  90 + }
70 } 91 }
impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/internal/producer/DataSourceProducer.java
@@ -15,6 +15,7 @@ import javax.naming.Context; @@ -15,6 +15,7 @@ import javax.naming.Context;
15 import javax.naming.InitialContext; 15 import javax.naming.InitialContext;
16 import javax.sql.DataSource; 16 import javax.sql.DataSource;
17 17
  18 +import org.apache.commons.dbcp.BasicDataSource;
18 import org.slf4j.Logger; 19 import org.slf4j.Logger;
19 20
20 import br.gov.frameworkdemoiselle.DemoiselleException; 21 import br.gov.frameworkdemoiselle.DemoiselleException;
@@ -109,12 +110,26 @@ public class DataSourceProducer implements Serializable { @@ -109,12 +110,26 @@ public class DataSourceProducer implements Serializable {
109 110
110 try { 111 try {
111 JdbcConfig config = Beans.getReference(JdbcConfig.class); 112 JdbcConfig config = Beans.getReference(JdbcConfig.class);
112 - String jndi = config.getJndiName().get(dataSourceName); 113 + Map<String, String> jndiMap = config.getJndiName();
113 114
114 - // TODO Lançar exceção caso o JNDI esteja vazio ou nulo. 115 + if (jndiMap != null) {
  116 + Context context = new InitialContext();
  117 + result = (DataSource) context.lookup(jndiMap.get(dataSourceName));
115 118
116 - Context context = new InitialContext();  
117 - result = (DataSource) context.lookup(jndi); 119 + } else {
  120 + String driver = config.getDriverClass().get(dataSourceName);
  121 + String url = config.getUrl().get(dataSourceName);
  122 + String username = config.getUsername().get(dataSourceName);
  123 + String password = config.getPassword().get(dataSourceName);
  124 +
  125 + BasicDataSource dataSource = new BasicDataSource();
  126 + dataSource.setDriverClassName(driver);
  127 + dataSource.setUrl(url);
  128 + dataSource.setUsername(username);
  129 + dataSource.setPassword(password);
  130 +
  131 + result = dataSource;
  132 + }
118 133
119 } catch (Exception cause) { 134 } catch (Exception cause) {
120 // TODO Colocar uma mensagem amigável 135 // TODO Colocar uma mensagem amigável
parent/bom/pom.xml
@@ -262,12 +262,17 @@ @@ -262,12 +262,17 @@
262 <version>${slf4j.version}</version> 262 <version>${slf4j.version}</version>
263 </dependency> 263 </dependency>
264 264
265 - <!-- configuration api+impl --> 265 + <!-- apache commons -->
266 <dependency> 266 <dependency>
267 <groupId>commons-configuration</groupId> 267 <groupId>commons-configuration</groupId>
268 <artifactId>commons-configuration</artifactId> 268 <artifactId>commons-configuration</artifactId>
269 <version>${commons.configuration.version}</version> 269 <version>${commons.configuration.version}</version>
270 </dependency> 270 </dependency>
  271 + <dependency>
  272 + <groupId>commons-dbcp</groupId>
  273 + <artifactId>commons-dbcp</artifactId>
  274 + <version>${commons.dbcp.version}</version>
  275 + </dependency>
271 276
272 <!-- embedded database --> 277 <!-- embedded database -->
273 <dependency> 278 <dependency>
@@ -353,6 +358,7 @@ @@ -353,6 +358,7 @@
353 <slf4j.version>1.6.1</slf4j.version> 358 <slf4j.version>1.6.1</slf4j.version>
354 <weld.version>1.1.8.Final</weld.version> 359 <weld.version>1.1.8.Final</weld.version>
355 <commons.configuration.version>1.5</commons.configuration.version> 360 <commons.configuration.version>1.5</commons.configuration.version>
  361 + <commons.dbcp.version>1.4</commons.dbcp.version>
356 <hsqldb.version>1.8.0.10</hsqldb.version> 362 <hsqldb.version>1.8.0.10</hsqldb.version>
357 <jasperreports.version>4.0.1</jasperreports.version> 363 <jasperreports.version>4.0.1</jasperreports.version>
358 <mail.version>1.4.4</mail.version> 364 <mail.version>1.4.4</mail.version>