diff -r 862d0a8747ac -r a32bfcbdee51 java/sql-dk/src/info/globalcode/sql/dk/configuration/Loader.java --- a/java/sql-dk/src/info/globalcode/sql/dk/configuration/Loader.java Sat May 16 23:58:06 2015 +0200 +++ b/java/sql-dk/src/info/globalcode/sql/dk/configuration/Loader.java Sun May 17 00:27:56 2015 +0200 @@ -18,6 +18,13 @@ package info.globalcode.sql.dk.configuration; import info.globalcode.sql.dk.*; +import static info.globalcode.sql.dk.DatabaseConnection.JDBC_PROPERTY_USER; +import static info.globalcode.sql.dk.DatabaseConnection.JDBC_PROPERTY_PASSWORD; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.xml.bind.JAXBContext; import javax.xml.bind.Unmarshaller; @@ -28,6 +35,8 @@ */ public class Loader { + private static final Logger log = Logger.getLogger(Loader.class.getName()); + public Configuration loadConfiguration() throws ConfigurationException { try { JAXBContext jaxb = JAXBContext.newInstance(Configuration.class); @@ -38,4 +47,26 @@ } } + /** + * JDBC connection should not be used directly in SQL-DK. + * + * @see DatabaseDefinition#connect(info.globalcode.sql.dk.configuration.Properties) + * @param properties + * @param databaseDefinition + * @return + * @throws java.sql.SQLException + */ + public static Connection jdbcConnect(DatabaseDefinition databaseDefinition, Properties properties) throws SQLException { + if (properties.hasProperty(JDBC_PROPERTY_PASSWORD)) { + log.log(Level.WARNING, "Passing DB password as CLI parameter is insecure!"); + } + Properties credentials = new Properties(); + credentials.add(new Property(JDBC_PROPERTY_USER, databaseDefinition.getUserName())); + credentials.add(new Property(JDBC_PROPERTY_PASSWORD, databaseDefinition.getPassword())); + credentials.setDefaults(databaseDefinition.getProperties()); + properties.setDefaults(credentials); + java.util.Properties javaProperties = properties.getJavaProperties(); + return DriverManager.getConnection(databaseDefinition.getUrl(), javaProperties); + } + }