diff --git a/impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/internal/producer/ConnectionProducer.java b/impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/internal/producer/ConnectionProducer.java index 57db76c..ce71362 100644 --- a/impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/internal/producer/ConnectionProducer.java +++ b/impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/internal/producer/ConnectionProducer.java @@ -70,8 +70,7 @@ public class ConnectionProducer implements Serializable { logger.info(bundle.getString("connection-was-created", name)); } catch (Exception cause) { - // TODO Colocar uma mensagem amigável - throw new DemoiselleException(cause); + throw new DemoiselleException(bundle.getString("connection-creation-failed", name), cause); } } diff --git a/impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/internal/producer/DataSourceProducer.java b/impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/internal/producer/DataSourceProducer.java index b5228fb..72878d9 100644 --- a/impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/internal/producer/DataSourceProducer.java +++ b/impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/internal/producer/DataSourceProducer.java @@ -110,25 +110,27 @@ public class DataSourceProducer implements Serializable { DataSource result; JDBCConfig config = Beans.getReference(JDBCConfig.class); - Map jndiMap = config.getJndiName(); + String jndi = config.getJndiName() == null ? null : config.getJndiName().get(dataSourceName); + String url = config.getUrl() == null ? null : config.getUrl().get(dataSourceName); - if (jndiMap != null) { - result = initJNDIDataSource(dataSourceName, config); + if (jndi != null) { + result = initJNDIDataSource(dataSourceName, jndi); - } else { + } else if (url != null) { result = new BasicDataSourceProxy(dataSourceName, config, bundle); + + } else { + throw new DemoiselleException(bundle.getString("uncompleted-datasource-configuration", dataSourceName)); } return result; } - private DataSource initJNDIDataSource(String dataSourceName, JDBCConfig config) { + private DataSource initJNDIDataSource(String dataSourceName, String jndi) { DataSource result = null; try { Context context = new InitialContext(); - String jndi = config.getJndiName().get(dataSourceName); - result = (DataSource) context.lookup(jndi); } catch (NamingException cause) { diff --git a/impl/extension/jdbc/src/main/resources/demoiselle-jdbc-bundle.properties b/impl/extension/jdbc/src/main/resources/demoiselle-jdbc-bundle.properties index 6033326..e0cbc3e 100644 --- a/impl/extension/jdbc/src/main/resources/demoiselle-jdbc-bundle.properties +++ b/impl/extension/jdbc/src/main/resources/demoiselle-jdbc-bundle.properties @@ -34,6 +34,8 @@ # 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. more-than-one-datasource-defined=Existe mais de um banco de dados definido. Utilize @{0} no ponto de inje\u00E7\u00E3o ou defina o atributo "frameworkdemoiselle.persistence.default.datasource.name" no arquivo demoiselle.properties. +connection-creation-failed=Falha ao estabelecer a conex\u00E3o JDBC {0} +uncompleted-datasource-configuration=\u00C9 preciso definir pelo menos a URL ou o JNDI referente \u00E0 conex\u00E3o {0} no demoiselle.properties. connection-was-closed=A conex\u00E3o "{0}" foi fechada. connection-has-already-been-closed=A conex\u00E3o "{0}" j\u00E1 havia sido fechada. connection-close-failed=Falha ao tentar fechar a conex\u00E3o "{0}" -- libgit2 0.21.2