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 36 -->
37 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 39 <modelVersion>4.0.0</modelVersion>
41 40  
42 41 <artifactId>demoiselle-jdbc</artifactId>
... ... @@ -68,6 +67,10 @@
68 67 </organization>
69 68  
70 69 <dependencies>
  70 + <dependency>
  71 + <groupId>commons-dbcp</groupId>
  72 + <artifactId>commons-dbcp</artifactId>
  73 + </dependency>
71 74 </dependencies>
72 75  
73 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 56 @Name("driver.class")
57 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 68 public String getDefaultDataDourceName() {
60 69 return defaultDataDourceName;
61 70 }
... ... @@ -67,4 +76,16 @@ public class JdbcConfig implements Serializable {
67 76 public Map<String, String> getDriverClass() {
68 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 15 import javax.naming.InitialContext;
16 16 import javax.sql.DataSource;
17 17  
  18 +import org.apache.commons.dbcp.BasicDataSource;
18 19 import org.slf4j.Logger;
19 20  
20 21 import br.gov.frameworkdemoiselle.DemoiselleException;
... ... @@ -109,12 +110,26 @@ public class DataSourceProducer implements Serializable {
109 110  
110 111 try {
111 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 134 } catch (Exception cause) {
120 135 // TODO Colocar uma mensagem amigável
... ...
parent/bom/pom.xml
... ... @@ -262,12 +262,17 @@
262 262 <version>${slf4j.version}</version>
263 263 </dependency>
264 264  
265   - <!-- configuration api+impl -->
  265 + <!-- apache commons -->
266 266 <dependency>
267 267 <groupId>commons-configuration</groupId>
268 268 <artifactId>commons-configuration</artifactId>
269 269 <version>${commons.configuration.version}</version>
270 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 277 <!-- embedded database -->
273 278 <dependency>
... ... @@ -353,6 +358,7 @@
353 358 <slf4j.version>1.6.1</slf4j.version>
354 359 <weld.version>1.1.8.Final</weld.version>
355 360 <commons.configuration.version>1.5</commons.configuration.version>
  361 + <commons.dbcp.version>1.4</commons.dbcp.version>
356 362 <hsqldb.version>1.8.0.10</hsqldb.version>
357 363 <jasperreports.version>4.0.1</jasperreports.version>
358 364 <mail.version>1.4.4</mail.version>
... ...