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