[java-identity-provider COMMIT] /trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolve...

noreply at shibboleth.net noreply at shibboleth.net
Tue Mar 19 00:32:09 EDT 2013


Author: dfisher
Date: Tue Mar 19 00:32:09 2013
New Revision: 4346

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=4346&view=rev
Log:
Add support for initializing a database from a file.
File format supports multiple insert statements.

Modified:
    trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/DatabaseTestingSupport.java

Modified: trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/DatabaseTestingSupport.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/DatabaseTestingSupport.java?rev=4346&r1=4345&r2=4346&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/DatabaseTestingSupport.java (original)
+++ trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/DatabaseTestingSupport.java Tue Mar 19 00:32:09 2013
@@ -45,30 +45,44 @@
 
     protected static void InitializeDataSource(@Nullable String initializingSQLFile, DataSource source) {
 
+        final String sql = ReadSqlFromFile(initializingSQLFile);
+        if (sql == null) {
+            return;
+        }
+        ExecuteUpdate(sql, source);
+    }
+
+    protected static String ReadSqlFromFile(@Nullable String initializingSQLFile) {
+
         final String file = StringSupport.trimOrNull(initializingSQLFile);
 
         if (null == file) {
-            return;
+            return null;
         }
 
         final InputStream is = DatabaseTestingSupport.class.getResourceAsStream(file);
 
         if (null == is) {
             log.warn("Could not locate SQL file called {} ", file);
-            return;
+            return null;
         }
         String sql;
         try {
             sql = StringSupport.trimOrNull(CharStreams.toString(new InputStreamReader(is)));
         } catch (IOException e) {
             log.warn("Could not read SQL file called {}.", file);
-            return;
+            return null;
         }
 
         if (null == sql) {
             log.warn("SQL file called {} was empty.", file);
-            return;
+            return null;
         }
+
+        return sql;
+    }
+
+    protected static void ExecuteUpdate(@Nullable String sql, DataSource source) {
 
         log.debug("Applying SQL: \n {}", sql);
 
@@ -109,7 +123,13 @@
         return GetDataSourceFromUrl(initializingSQLFile, "jdbc:hsqldb:hsql:" + server);
     }
 
-    JDBCDataSource jdbcSource = new JDBCDataSource();
+    public static void InitializeDataSourceFromFile(String sqlFile, DataSource source) {
+        final String sql = ReadSqlFromFile(sqlFile);
+        final String[] statements = sql.split(";");
+        for (String statement : statements) {
+            ExecuteUpdate(statement.trim(), source);
+        }
+    }
 
     protected static DataSource GetDataSourceFromUrl(String initializingSQLFile, String JdbcUri) {
         JDBCDataSource jdbcSource = new JDBCDataSource();



More information about the commits mailing list