/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.integration.server.copier; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.Properties; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.io.Resource; import com.opengamma.financial.tool.ToolContext; import com.opengamma.scripts.Scriptable; import com.opengamma.util.ArgumentChecker; import com.opengamma.util.ResourceUtils; /** * Single class that populates the standalone database with data from a given server URL. * <p> * It is designed to run against the HSQLDB example database. */ @Scriptable public class ServerDatabasePopulator { /** Logger. */ private static final Logger s_logger = LoggerFactory.getLogger(ServerDatabasePopulator.class); private final String _configFile; private final DatabasePopulatorTool _populatorTool; public ServerDatabasePopulator(String configFile, DatabasePopulatorTool populatorTool) { ArgumentChecker.notNull(configFile, "configFile"); ArgumentChecker.notNull(populatorTool, "populatorTool"); _configFile = configFile; _populatorTool = populatorTool; } //------------------------------------------------------------------------- /** * Main method to run the tool. No arguments are needed. * * @param args the arguments, unused */ public static void main(final String[] args) { // CSIGNORE s_logger.info("Populating demo server database"); try { CommandLineOption option = new CommandLineOption(args, ServerDatabasePopulator.class); String configFile = StringUtils.trimToNull(option.getConfigFile()); String serverUrl = StringUtils.trimToNull(option.getServerUrl()); if (configFile != null && serverUrl != null) { ServerDatabasePopulator populator = new ServerDatabasePopulator(configFile, new DatabasePopulatorTool(serverUrl)); populator.run(); } System.exit(0); } catch (final Exception ex) { s_logger.error("Caught exception", ex); ex.printStackTrace(); System.exit(1); } } public void run() throws Exception { Resource res = ResourceUtils.createResource(_configFile); Properties props = new Properties(); try (InputStream in = res.getInputStream()) { if (in == null) { throw new FileNotFoundException(_configFile); } props.load(in); } _populatorTool.run(ResourceUtils.toResourceLocator(res), ToolContext.class); } }