1.1 --- a/java/sql-dk/src/info/globalcode/sql/dk/configuration/Loader.java Sat May 16 23:58:06 2015 +0200
1.2 +++ b/java/sql-dk/src/info/globalcode/sql/dk/configuration/Loader.java Sun May 17 00:27:56 2015 +0200
1.3 @@ -18,6 +18,13 @@
1.4 package info.globalcode.sql.dk.configuration;
1.5
1.6 import info.globalcode.sql.dk.*;
1.7 +import static info.globalcode.sql.dk.DatabaseConnection.JDBC_PROPERTY_USER;
1.8 +import static info.globalcode.sql.dk.DatabaseConnection.JDBC_PROPERTY_PASSWORD;
1.9 +import java.sql.Connection;
1.10 +import java.sql.DriverManager;
1.11 +import java.sql.SQLException;
1.12 +import java.util.logging.Level;
1.13 +import java.util.logging.Logger;
1.14 import javax.xml.bind.JAXBContext;
1.15 import javax.xml.bind.Unmarshaller;
1.16
1.17 @@ -28,6 +35,8 @@
1.18 */
1.19 public class Loader {
1.20
1.21 + private static final Logger log = Logger.getLogger(Loader.class.getName());
1.22 +
1.23 public Configuration loadConfiguration() throws ConfigurationException {
1.24 try {
1.25 JAXBContext jaxb = JAXBContext.newInstance(Configuration.class);
1.26 @@ -38,4 +47,26 @@
1.27 }
1.28 }
1.29
1.30 + /**
1.31 + * JDBC connection should not be used directly in SQL-DK.
1.32 + *
1.33 + * @see DatabaseDefinition#connect(info.globalcode.sql.dk.configuration.Properties)
1.34 + * @param properties
1.35 + * @param databaseDefinition
1.36 + * @return
1.37 + * @throws java.sql.SQLException
1.38 + */
1.39 + public static Connection jdbcConnect(DatabaseDefinition databaseDefinition, Properties properties) throws SQLException {
1.40 + if (properties.hasProperty(JDBC_PROPERTY_PASSWORD)) {
1.41 + log.log(Level.WARNING, "Passing DB password as CLI parameter is insecure!");
1.42 + }
1.43 + Properties credentials = new Properties();
1.44 + credentials.add(new Property(JDBC_PROPERTY_USER, databaseDefinition.getUserName()));
1.45 + credentials.add(new Property(JDBC_PROPERTY_PASSWORD, databaseDefinition.getPassword()));
1.46 + credentials.setDefaults(databaseDefinition.getProperties());
1.47 + properties.setDefaults(credentials);
1.48 + java.util.Properties javaProperties = properties.getJavaProperties();
1.49 + return DriverManager.getConnection(databaseDefinition.getUrl(), javaProperties);
1.50 + }
1.51 +
1.52 }