This is an automated email from the git hooks/post-receive script. New commit to branch feature/2892 in repository topia. See http://git.nuiton.org/topia.git commit 3e5ee7d6bd377387435d72430f6edcc9cc8b0e44 Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 30 15:31:55 2014 +0100 Deprecate TopiaH2Util and move API to JdbcH2Helper --- .../topia/persistence/jdbc/JdbcH2Helper.java | 59 ++++++++++++++++++++++ .../nuiton/topia/persistence/util/TopiaH2Util.java | 3 +- 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/jdbc/JdbcH2Helper.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/jdbc/JdbcH2Helper.java index 1eabbe6..e4d1daf 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/jdbc/JdbcH2Helper.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/jdbc/JdbcH2Helper.java @@ -1,8 +1,17 @@ package org.nuiton.topia.persistence.jdbc; +import org.apache.commons.io.IOUtils; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.zip.GZIPInputStream; public class JdbcH2Helper extends JdbcHelper { @@ -26,4 +35,54 @@ public class JdbcH2Helper extends JdbcHelper { } } + /** + * Backup database in gzip compressed file. + * + * @param file file to write backup + * @param compress if true then use gzip to compress file + */ + public void backup(File file, boolean compress) { + String options = ""; + if (compress) { + options += " COMPRESSION GZIP"; + } + runUpdate("SCRIPT TO '" + file.getAbsolutePath() + "'" + options); + } + + /** + * Read database from gzip compressed file + * + * @param file the source file to use for restore + */ + public void restore(File file) throws FileNotFoundException { + String options = ""; + InputStream in = null; + try { + in = new BufferedInputStream(new FileInputStream(file)); + in.mark(2); + // read header to see if is compressed file + int b = in.read(); + // redundant cast : int magic = ((int) in.read() << 8) | b; + int magic = in.read() << 8 | b; + in.reset(); + if (magic == GZIPInputStream.GZIP_MAGIC) { + options += " COMPRESSION GZIP"; + } + in.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } finally { + IOUtils.closeQuietly(in); + } + runUpdate("RUNSCRIPT FROM '" + file.getAbsolutePath() + "'" + options); + } + + public void clear(boolean dropDatabase) { + String sql = "DROP ALL OBJECTS"; + if (dropDatabase) { + sql += " DELETE FILES"; + } + runUpdate(sql); + } + } diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaH2Util.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaH2Util.java index 323703e..53af068 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaH2Util.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaH2Util.java @@ -36,8 +36,9 @@ import java.util.zip.GZIPInputStream; /** * @author Arnaud Thimel (Code Lutin) + * @deprecated use {@link org.nuiton.topia.persistence.jdbc.JdbcH2Helper} out of the hibernate session */ -// TODO brendan 16/12/14 move +@Deprecated public class TopiaH2Util { protected TopiaFiresSupport firesSupport; -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.