[Git][ultreiaio/ird-t3][develop] improve installeur
Tony CHEMIT pushed to branch develop at ultreiaio / ird-t3 Commits: d10e8af8 by Tony CHEMIT at 2017-04-10T13:55:37+02:00 improve installeur - - - - - 1 changed file: - t3-installer/src/main/java/fr/ird/t3/tools/T3ApplicationInstaller.java Changes: ===================================== t3-installer/src/main/java/fr/ird/t3/tools/T3ApplicationInstaller.java ===================================== --- a/t3-installer/src/main/java/fr/ird/t3/tools/T3ApplicationInstaller.java +++ b/t3-installer/src/main/java/fr/ird/t3/tools/T3ApplicationInstaller.java @@ -33,11 +33,8 @@ import fr.ird.t3.entities.user.JdbcConfiguration; import fr.ird.t3.services.DefaultT3ServiceContext; import fr.ird.t3.services.T3ServiceContext; import fr.ird.t3.services.T3ServiceFactory; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; import java.io.File; import java.io.FileInputStream; -import java.io.FilenameFilter; import java.io.IOException; import java.util.List; import java.util.Locale; @@ -96,45 +93,39 @@ public class T3ApplicationInstaller { } } - public static void usage() { - StringBuilder buffer = new StringBuilder(T3ApplicationInstaller.class.getSimpleName() + " requires 4 parameters :"); - buffer.append("\n").append("- databse connection properties file"); - buffer.append("\n").append("- postgis structure script creation"); - buffer.append("\n").append("- referential scripts directory"); - buffer.append("\n").append("- postgis data script").append("\n"); - System.out.println(buffer.toString()); + private static void usage() { + String buffer = T3ApplicationInstaller.class.getSimpleName() + " requires 4 parameters :" + "\n" + "- databse connection properties file" + + "\n" + "- postgis structure script creation" + + "\n" + "- referential scripts directory" + + "\n" + "- postgis data script" + "\n"; + System.out.println(buffer); } - protected final File connectionFile; + private final File connectionFile; - protected final File[] postgisDataFiles; + private final File[] postgisDataFiles; - protected final File ddlScriptsDirectory; + private final File ddlScriptsDirectory; - protected final File referentialScriptsDirectory; + private final File referentialScriptsDirectory; - protected T3ServiceContext serviceContext; + private T3ServiceContext serviceContext; - protected JdbcConfiguration jdbcConfiguration; + private JdbcConfiguration jdbcConfiguration; - protected T3ApplicationInstaller(File connectionFile, - File ddlScriptsDirectory, - File referentialScriptsDirectory, - File postgisDataScript) { + private T3ApplicationInstaller(File connectionFile, + File ddlScriptsDirectory, + File referentialScriptsDirectory, + File postgisDataScript) { this.connectionFile = connectionFile; this.ddlScriptsDirectory = ddlScriptsDirectory; this.referentialScriptsDirectory = referentialScriptsDirectory; - postgisDataFiles = postgisDataScript.listFiles(new FilenameFilter() { - @Override - public boolean accept(File dir, String name) { - return name.endsWith(".zip"); - } - }); + postgisDataFiles = postgisDataScript.listFiles((dir, name) -> name.endsWith(".zip")); } - public void run() throws Exception { + private void run() throws Exception { if (log.isInfoEnabled()) { log.info("1/6 - Setup installer..."); } @@ -148,7 +139,7 @@ public class T3ApplicationInstaller { if (log.isInfoEnabled()) { log.info("3/6 - Create database schema..."); } - createDatabase(); + boolean schemaFound = createDatabase(); T3SqlScriptsImporter dllScriptsImporter = new T3SqlScriptsImporter(ddlScriptsDirectory); dllScriptsImporter.prepare(); @@ -157,7 +148,11 @@ public class T3ApplicationInstaller { log.info("4/6 - Loading ddl from " + dllScriptsImporter.getScriptsFile().size() + " scripts."); } - dllScriptsImporter.importScripts(serviceContext, file -> true); + if (schemaFound) { + log.info("4/6 - Loading ddl skip (schema already exists)"); + } else { + dllScriptsImporter.importScripts(serviceContext, file -> true); + } T3SqlScriptsImporter referentialScriptsImporter = new T3SqlScriptsImporter(referentialScriptsDirectory); referentialScriptsImporter.prepare(); @@ -168,7 +163,7 @@ public class T3ApplicationInstaller { } referentialScriptsImporter.importScripts(serviceContext, file -> true); - File unzipDirectory = createUnzipDirectory("postgis-data"); + File unzipDirectory = createUnzipDirectory(); if (log.isInfoEnabled()) { log.info("6/6 - Import postGis data from " + postgisDataFiles.length + " scripts."); @@ -187,7 +182,7 @@ public class T3ApplicationInstaller { } } - protected void setup() throws IOException { + private void setup() throws IOException { // initialize configuration @@ -232,7 +227,7 @@ public class T3ApplicationInstaller { ); } - protected void checkDatabaseConnection() throws IOException { + private void checkDatabaseConnection() throws IOException { // check jdbc connection try { @@ -245,7 +240,7 @@ public class T3ApplicationInstaller { } } - protected void createDatabase() { + private boolean createDatabase() { try { @@ -261,12 +256,15 @@ public class T3ApplicationInstaller { rootContext.createSchema(); } + return schemaFound; + } catch (TopiaException e) { throw new IllegalStateException("could not start db", e); } + } - protected File unzipFile(File unzipDirectory, File script) throws IOException { + private File unzipFile(File unzipDirectory, File script) throws IOException { List<String>[] lists = ZipUtil.scanAndExplodeZip(script, unzipDirectory, null); ZipUtil.uncompress(script, unzipDirectory); @@ -275,30 +273,24 @@ public class T3ApplicationInstaller { return result; } - protected File createUnzipDirectory(String name) throws IOException { + private File createUnzipDirectory() throws IOException { String tmpPath = System.getProperty("java.io.tmpdir"); File tmpDir = new File(tmpPath); - File unzupDirectory = new File(tmpDir, name + "_" + System.nanoTime()); + File unzupDirectory = new File(tmpDir, "postgis-data" + "_" + System.nanoTime()); unzupDirectory.deleteOnExit(); FileUtil.createDirectoryIfNecessary(unzupDirectory); return unzupDirectory; } - protected void loadScriptLineByLine(File script) throws TopiaException, IOException { + private void loadScriptLineByLine(File script) throws TopiaException, IOException { - T3ScriptHelper.loadScriptLineByLine(serviceContext.getApplicationContext(), script, new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - if (log.isInfoEnabled()) { - log.info("Sql line " + evt.getNewValue() + " done."); - } - } - }); + T3ScriptHelper.loadScriptLineByLine(serviceContext.getApplicationContext(), script, + evt -> log.debug("Sql line " + evt.getNewValue() + " done.")); } - protected void destroy() { + private void destroy() { T3EntityHelper.releaseRootContext(serviceContext.getApplicationContext()); } View it on GitLab: https://gitlab.com/ultreiaio/ird-t3/commit/d10e8af8f4e1e0a3a090861f9952ff0f3...
participants (1)
-
Tony CHEMIT