Commit 2b60ea3f10d0b652605f54816b4d2fef82a07544
1 parent
ecb12b66
Exists in
master
Escolha entre conexão via JNDI ou configurada manualmente
Showing
4 changed files
with
51 additions
and
6 deletions
Show diff stats
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> |