// Path: src/main/java/com/wangc/test_plan/bean/GlobalConfig.java
// public class GlobalConfig {
//     private static GlobalConfig GLOBAL_CONFIG = new GlobalConfig(); 
//     
//     private String jmeterHome;//jmeter的安装目录
//     private boolean osFlag;//os类型  true:win  false:linux
//     private String userDir;//当前程序所在的目录
//     
//     private final String jmeterHomeConfigFilePath = "JMETER_HOME.config";  
//     
//     //在初始化的时候做这些，这样程序中可以直接使用上面的变量了。
//     GlobalConfig(){
//         setUserDir();
//         setOsIsWin();
//         setJmeterHome();
//     }
// 
//     public static GlobalConfig getInstance() {
//         return GLOBAL_CONFIG;
//     }
//     
//     private void setUserDir(){
//         this.userDir = System.getProperty("user.dir"); 
//     }
//     
//     public String getUserDir(){
//         return this.userDir;
//     }
// 
//     private void setOsIsWin(){
//         String os = System.getProperty("os.name");
//         if( os.contains("Linux") ){
//             this.osFlag = false;
//         }else if(os.contains("Windows")){
//             this.osFlag = true;
//         }else{
//             throw new RuntimeException("获取操作系统类型异常。");
//         }
//     }
// 
//     public boolean getOsFlag(){
//         return this.osFlag;
//     }
// 
// 
//     //读取配置文件 JMETER_HOME.config 配置文件中只有一行数据，即jmeter的安装目录。
//     //因为安装目录可能包含空格，所以无法放到启动命令参数中。
//     private void setJmeterHome(){
//         File file = new File(userDir+File.separator+jmeterHomeConfigFilePath);
//         BufferedReader reader = null;
//         try {
//             System.out.println("以行为单位读取文件内容，一次读一整行：");
//             reader = new BufferedReader(new FileReader(file));
//             this.jmeterHome = reader.readLine();
//             reader.close();
//         } catch (IOException e) {
//             e.printStackTrace();
//         } finally {
//             if (reader != null) {
//                 try {
//                     reader.close();
//                 } catch (IOException e1) {
//                 }
//             }
//         }
//     }
//     public String getJmeterHome(){
//         return this.jmeterHome;
//     }
// 
// 
// 
// }


import com.wangc.test_plan.bean.GlobalConfig;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
package com.wangc;



/**
 * Created by wangchao on 2017/7/26.
 */

@Component
public class AppInitialization implements ApplicationRunner {

    private final String SQL_CREATE_TEST_PLAN = "CREATE TABLE `test_plan` (\n" + "  `id` INTEGER PRIMARY KEY     ,\n" + "  `tp_name` text ,\n" + "  `url` text ,\n" + "  `description` text ,\n" + "  `generater` text ,\n" + "  `protocol` text ,\n" + "  `server_name_ip` text ,\n" + "  `port_num` text ,\n" + "  `path` text ,\n" + "  `default_vu` INTEGER ,\n" + "  `default_duration` INTEGER ,\n" + "  `jmx_save_path` text ,\n" + "  `create_time` text ,\n"+ "  `csv_data_xpath` text \n" + ") ";
    private final String SQL_CREATE_RUN_PLAN = "CREATE TABLE `run_plan` (\n" + "  `id` INTEGER PRIMARY KEY ,\n" + "  `tp_id` INTEGER ,\n" + "  `duration` INTEGER ,\n" + "  `users_num` INTEGER ,\n" + "  `ramp_up` INTEGER ,\n" + "  `jmx_path` TEXT ,\n" + "  `jtl_path` TEXT ,\n" + "  `log_path` TEXT ,\n" + "  `html_path` TEXT ,\n" + "  `create_time` TEXT \n" + ")";
    private Connection conn = null;
    Statement stmt = null;
    private final String dbName = "testing_platform.db";
    private GlobalConfig globalConfig = GlobalConfig.getInstance();

    static{
//        System.out.println("========1");
    }

    @Override
    public void run(ApplicationArguments applicationArguments) throws Exception {
        checkJmeterHome();//检测jmeter运行环境
        checkDB();//检测数据库 
    }
    
    //检测jmeter运行环境，尝试运行jmeter -v ，返回内容中包含 The Apache Software Foundation 即可。
// Path: src/main/java/com/wangc/test_plan/bean/GlobalConfig.java
// public class GlobalConfig {
//     private static GlobalConfig GLOBAL_CONFIG = new GlobalConfig(); 
//     
//     private String jmeterHome;//jmeter的安装目录
//     private boolean osFlag;//os类型  true:win  false:linux
//     private String userDir;//当前程序所在的目录
//     
//     private final String jmeterHomeConfigFilePath = "JMETER_HOME.config";  
//     
//     //在初始化的时候做这些，这样程序中可以直接使用上面的变量了。
//     GlobalConfig(){
//         setUserDir();
//         setOsIsWin();
//         setJmeterHome();
//     }
// 
//     public static GlobalConfig getInstance() {
//         return GLOBAL_CONFIG;
//     }
//     
//     private void setUserDir(){
//         this.userDir = System.getProperty("user.dir"); 
//     }
//     
//     public String getUserDir(){
//         return this.userDir;
//     }
// 
//     private void setOsIsWin(){
//         String os = System.getProperty("os.name");
//         if( os.contains("Linux") ){
//             this.osFlag = false;
//         }else if(os.contains("Windows")){
//             this.osFlag = true;
//         }else{
//             throw new RuntimeException("获取操作系统类型异常。");
//         }
//     }
// 
//     public boolean getOsFlag(){
//         return this.osFlag;
//     }
// 
// 
//     //读取配置文件 JMETER_HOME.config 配置文件中只有一行数据，即jmeter的安装目录。
//     //因为安装目录可能包含空格，所以无法放到启动命令参数中。
//     private void setJmeterHome(){
//         File file = new File(userDir+File.separator+jmeterHomeConfigFilePath);
//         BufferedReader reader = null;
//         try {
//             System.out.println("以行为单位读取文件内容，一次读一整行：");
//             reader = new BufferedReader(new FileReader(file));
//             this.jmeterHome = reader.readLine();
//             reader.close();
//         } catch (IOException e) {
//             e.printStackTrace();
//         } finally {
//             if (reader != null) {
//                 try {
//                     reader.close();
//                 } catch (IOException e1) {
//                 }
//             }
//         }
//     }
//     public String getJmeterHome(){
//         return this.jmeterHome;
//     }
// 
// 
// 
// }


// Path: src/main/java/com/wangc/AppInitialization.java
import com.wangc.test_plan.bean.GlobalConfig;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

package com.wangc;



/**
 * Created by wangchao on 2017/7/26.
 */

@Component
public class AppInitialization implements ApplicationRunner {

    private final String SQL_CREATE_TEST_PLAN = "CREATE TABLE `test_plan` (\n" + "  `id` INTEGER PRIMARY KEY     ,\n" + "  `tp_name` text ,\n" + "  `url` text ,\n" + "  `description` text ,\n" + "  `generater` text ,\n" + "  `protocol` text ,\n" + "  `server_name_ip` text ,\n" + "  `port_num` text ,\n" + "  `path` text ,\n" + "  `default_vu` INTEGER ,\n" + "  `default_duration` INTEGER ,\n" + "  `jmx_save_path` text ,\n" + "  `create_time` text ,\n"+ "  `csv_data_xpath` text \n" + ") ";
    private final String SQL_CREATE_RUN_PLAN = "CREATE TABLE `run_plan` (\n" + "  `id` INTEGER PRIMARY KEY ,\n" + "  `tp_id` INTEGER ,\n" + "  `duration` INTEGER ,\n" + "  `users_num` INTEGER ,\n" + "  `ramp_up` INTEGER ,\n" + "  `jmx_path` TEXT ,\n" + "  `jtl_path` TEXT ,\n" + "  `log_path` TEXT ,\n" + "  `html_path` TEXT ,\n" + "  `create_time` TEXT \n" + ")";
    private Connection conn = null;
    Statement stmt = null;
    private final String dbName = "testing_platform.db";
    private GlobalConfig globalConfig = GlobalConfig.getInstance();

    static{
//        System.out.println("========1");
    }

    @Override
    public void run(ApplicationArguments applicationArguments) throws Exception {
        checkJmeterHome();//检测jmeter运行环境
        checkDB();//检测数据库 
    }
    
    //检测jmeter运行环境，尝试运行jmeter -v ，返回内容中包含 The Apache Software Foundation 即可。
    public void checkJmeterHome(){