package com.dgex.offspring.nxtCore.test; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.OutputStream; import java.util.Properties; import nxt.Nxt; import org.apache.commons.io.FileUtils; public class NxtLoader { static Properties properties = new Properties(); static File nxtPropertiesFile = new File( "../com.dgex.offspring.nxtCore/nxt/conf/nxt-default.properties"); static File dbDir = new File("target/nxt_db"); static String dbUrl = "jdbc:h2:" + dbDir.getAbsolutePath() + ";DB_CLOSE_ON_EXIT=FALSE"; static File myPropertiesFile = new File("my.properties"); static void init() { if (dbDir.exists()) { try { FileUtils.deleteDirectory(dbDir); } catch (IOException e1) { e1.printStackTrace(); return; } } try { properties.load(new FileReader(nxtPropertiesFile)); } catch (FileNotFoundException e) { e.printStackTrace(); return; } catch (IOException e) { e.printStackTrace(); return; } properties.put("nxt.testnetPeers", ""); properties.put("nxt.isTestnet", "true"); properties.put("nxt.enableAPIServer", "false"); properties.put("nxt.enableUIServer", "false"); properties.put("nxt.testDbUrl", dbUrl); writeConfigFile(properties, myPropertiesFile); System.setProperty("nxt-default.properties", myPropertiesFile.getAbsolutePath()); System.out.println("Starting NXT"); Nxt.init(properties); System.out.println("Successfully started NXT"); } static void shutdown() { try { Nxt.shutdown(); } catch (Exception ex) { ex.printStackTrace(); } if (dbDir.exists()) { try { FileUtils.deleteDirectory(dbDir); } catch (IOException e1) { e1.printStackTrace(); return; } } } private static void writeConfigFile(Properties properties, File file) { OutputStream output = null; try { output = new FileOutputStream(file); properties.store(output, null); } catch (IOException io) { io.printStackTrace(); } finally { if (output != null) { try { output.close(); } catch (IOException e) { e.printStackTrace(); } } } } }