View Javadoc
1   /*
2    *
3    * The DbUnit Database Testing Framework
4    * Copyright (C)2002-2004, DbUnit.org
5    *
6    * This library is free software; you can redistribute it and/or
7    * modify it under the terms of the GNU Lesser General Public
8    * License as published by the Free Software Foundation; either
9    * version 2.1 of the License, or (at your option) any later version.
10   *
11   * This library is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14   * Lesser General Public License for more details.
15   *
16   * You should have received a copy of the GNU Lesser General Public
17   * License along with this library; if not, write to the Free Software
18   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19   *
20   */
21  
22  package org.dbunit;
23  
24  import org.dbunit.operation.DatabaseOperation;
25  
26  import java.io.File;
27  import java.io.FilenameFilter;
28  import java.sql.Connection;
29  import java.sql.DriverManager;
30  import java.sql.SQLException;
31  
32  /**
33   * @author Manuel Laflamme
34   * @version $Revision$
35   * @since Feb 18, 2002
36   */
37  public class H2Environment extends DatabaseEnvironment
38  {
39      public static final String USERNAME_DEFAULT = "sa";
40      public static final String PASSWORD_DEFAULT = "";
41  
42      public H2Environment(DatabaseProfile profile) throws Exception
43      {
44          super(profile);
45      }
46  
47      public static Connection createJdbcConnection(String databaseName) throws Exception
48      {
49          return createJdbcConnection(databaseName, USERNAME_DEFAULT, PASSWORD_DEFAULT);
50      }
51  
52      public static Connection createJdbcConnection(String databaseName,
53              String username, String password) throws Exception
54      {
55          Class.forName("org.h2.Driver");
56          return DriverManager.getConnection("jdbc:h2:mem:" + databaseName,
57                  username, password);
58      }
59  
60      @Override
61      public void closeConnection() throws Exception
62      {
63          DatabaseOperation.DELETE_ALL.execute(getConnection(), getInitDataSet());
64      }
65  
66      public static void shutdown(Connection connection) throws SQLException {
67          DdlExecutor.executeSql( connection, "SHUTDOWN IMMEDIATELY" );
68      }
69  
70      public static void deleteFiles(final String filename) {
71          deleteFiles(new File("."), filename);
72      }
73  
74      public static void deleteFiles(File directory, final String filename) {
75          File[] files = directory.listFiles(new FilenameFilter()
76          {
77              public boolean accept(File dir, String name)
78              {
79                  if (name.indexOf(filename) != -1)
80                  {
81                      return true;
82                  }
83                  return false;
84              }
85          });
86  
87          for (int i = 0; i < files.length; i++)
88          {
89              File file = files[i];
90              file.delete();
91          }
92  
93      }
94  }