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 | 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> | ... | ... |