All Downloads are FREE. Search and download functionalities are using the official Maven repository.

prerna.reactor.scheduler.legacy.JsonConversionToQuartzJob Maven / Gradle / Ivy

The newest version!
package prerna.reactor.scheduler.legacy;
//package prerna.sablecc2.reactor.scheduler.legacy;
//
//import static org.quartz.JobBuilder.newJob;
//
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.FileNotFoundException;
//import java.io.IOException;
//import java.io.InputStream;
//import java.io.InputStreamReader;
//import java.io.UnsupportedEncodingException;
//import java.sql.Connection;
//import java.sql.DriverManager;
//import java.sql.SQLException;
//import java.util.ArrayList;
//import java.util.Properties;
//import java.util.UUID;
//
//import org.apache.commons.io.FilenameUtils;
//import org.apache.logging.log4j.LogManager;
//import org.apache.logging.log4j.Logger;
//import org.h2.tools.Server;
//import org.quartz.CronScheduleBuilder;
//import org.quartz.Job;
//import org.quartz.JobDetail;
//import org.quartz.JobKey;
//import org.quartz.Scheduler;
//import org.quartz.SchedulerException;
//import org.quartz.Trigger;
//import org.quartz.TriggerBuilder;
//import org.quartz.impl.StdSchedulerFactory;
//
//import com.google.gson.Gson;
//import com.google.gson.JsonElement;
//import com.google.gson.JsonIOException;
//import com.google.gson.JsonParser;
//import com.google.gson.JsonSyntaxException;
//
//import prerna.sablecc2.reactor.scheduler.SchedulerDatabaseUtility;
//import prerna.sablecc2.reactor.scheduler.SchedulerFactorySingleton;
//import prerna.util.Constants;
//import prerna.util.DIHelper;
//import prerna.util.Utility;
//
//@Deprecated
//public class JsonConversionToQuartzJob {
//
//	private static final Logger logger = LogManager.getLogger(JsonConversionToQuartzJob.class);
//
//	private static final String MY_DIRECTORY_PATH = "C:\\workspace\\Semoss_Dev\\rpa\\json";
//	private static final String QUARTZ_CONFIGURATION_FILE = "quartz.properties";
//	private static final String DIR_SEPARATOR = java.nio.file.FileSystems.getDefault().getSeparator();
//	private static final String JDBC_DRIVER = "org.h2.Driver";
//	private static final String CONNECTION_URL = "jdbc:h2:nio:C:/workspace/Semoss_Dev/db/scheduler/db";
//	private static final String JOB_QUALIFIED_NAME = "prerna.rpa.quartz.jobs.insight.";
//
//	private static String serverUrl = null;
//
//	private static StdSchedulerFactory factory;
//	public static Scheduler scheduler = null;
//
////	public static void main(String[] args) throws NotDirectoryException {
////		serverUrl = startServer(CONNECTION_URL);
////
////		setUpPropertiesFile();
////		startScheduler();
////
////		File directory = new File(MY_DIRECTORY_PATH);
////		File[] directoryFileList = directory.listFiles();
////
////		if (directoryFileList == null) {
////			throw new NotDirectoryException("The directory does not exist");
////		} else {
////			for (File child : directoryFileList) {
////				Gson gson = new Gson();
////				JsonParser jsonParser = new JsonParser();
////
////				JsonElement jsonObject = null;
////				try {
////					jsonObject = jsonParser.parse(new InputStreamReader(new FileInputStream(child), "UTF-8"));
////				} catch (JsonIOException | JsonSyntaxException | UnsupportedEncodingException
////						| FileNotFoundException se) {
////					logger.error(Constants.STACKTRACE, se);
////				}
////				OldJobs oldJobs = gson.fromJson(jsonObject, OldJobs.class);
////
////				convertJob(oldJobs);
////			}
////		}
////	}
//
//	public static String startServer(String connectionUrl) {
//		Server server = null;
//		String serverUrl = null;
//
//		if (connectionUrl.startsWith("jdbc:h2:nio:")) {
//			connectionUrl = connectionUrl.substring("jdbc:h2:nio:".length());
//		}
//
//		try {
//			String port = "5358";
//			server = Server.createTcpServer("-tcpPort", port, "-tcpAllowOthers");
//			serverUrl = "jdbc:h2:" + server.getURL() + "/nio:" + connectionUrl;
//			server.start();
//
//		} catch (SQLException e) {
//			logger.error(Constants.STACKTRACE, e);
//		}
//
//		logger.info("DATABASE RUNNING ON " + Utility.cleanLogString(serverUrl));
//
//		return serverUrl;
//	}
//	
//	public static void runUpdateFromLegacyFormat() {
//		scheduler = SchedulerFactorySingleton.getInstance().getScheduler();
//
//		File directory = new File(DIHelper.getInstance().getProperty(Constants.BASE_FOLDER) + "/rpa/json");
//		if(directory.exists()) {
//			File[] directoryFileList = directory.listFiles();
//			if (directoryFileList != null && directoryFileList.length > 0) {
//				for (File child : directoryFileList) {
//					if(FilenameUtils.getExtension(child.getAbsolutePath()).equals("json")) {
//						Gson gson = new Gson();
//						JsonParser jsonParser = new JsonParser();
//		
//						JsonElement jsonObject = null;
//						InputStreamReader is = null;
//						FileInputStream fs = null;
//						try {
//							fs = new FileInputStream(child);
//							is = new InputStreamReader(fs, "UTF-8");
//							jsonObject = jsonParser.parse(is);
//						} catch (JsonIOException | JsonSyntaxException | UnsupportedEncodingException | FileNotFoundException se) {
//							logger.error(Constants.STACKTRACE, se);
//						} finally {
//							if(is != null) {
//								try {
//									is.close();
//								} catch (IOException e) {
//									classLogger.error(Constants.STACKTRACE, e);
//								}
//							}
//							if(fs != null) {
//								try {
//									fs.close();
//								} catch (IOException e) {
//									classLogger.error(Constants.STACKTRACE, e);
//								}
//							}
//						}
//						
//						OldJobs oldJobs = gson.fromJson(jsonObject, OldJobs.class);
//						try {
//							convertJob(oldJobs);
//							// renmae the file to loaded
//							File loadedF = new File(directory.getAbsolutePath() + "/" + FilenameUtils.getBaseName(child.getAbsolutePath()) + ".json_loaded");
//							boolean worked = child.renameTo(loadedF);
//						} catch(Exception e) {
//							logger.error(Constants.STACKTRACE, e);
//						}
//					}
//				}
//			}
//		}
//	}
//
//	@SuppressWarnings("unchecked")
//	private static void convertJob(OldJobs oldJobs) {
//		// ignore hidden jobs
//		if(Boolean.parseBoolean(oldJobs.getHidden())) {
//			return;
//		}
//		String jobId = UUID.randomUUID().toString();
// 		String jobName = oldJobs.getJobName();
//		String jobGroup = oldJobs.getJobGroup();
//		String cronExpression = oldJobs.getJobCronExpression();
//		String jobClassName = oldJobs.getJobClass();
//		Boolean active = Boolean.parseBoolean(oldJobs.getActive());
//		String userAccess = oldJobs.getUserAccess();
//		Boolean triggerOnLoad = Boolean.parseBoolean(oldJobs.getJobTriggerOnLoad());
//		String parameters = oldJobs.getParameters();
//		if(parameters == null) {
//			parameters = "";
//		}
//		String pixel = oldJobs.getPixel();
//
//		JobKey jobKey = JobKey.jobKey(jobId, jobGroup);
//		Class jobClass = null;
//
//		try {
//			jobClass = (Class) Class.forName(JOB_QUALIFIED_NAME + jobClassName);
//		} catch (ClassNotFoundException cne) {
//			logger.error(Constants.STACKTRACE, cne);
//		}
//
//		// if job exists throw error, job already exists
//		try {
//			if (scheduler.checkExists(jobKey)) {
//				logger.error("job" + Utility.cleanLogString(jobKey.toString()) + "already exists");
//				throw new IllegalArgumentException("job " + Utility.cleanLogString(jobKey.toString()) + " already exists");
//			}
//
//			// Schedule the job
//			JobDetail job = newJob(jobClass).withIdentity(jobId, jobGroup).storeDurably().build();
//			Trigger trigger = TriggerBuilder.newTrigger().withIdentity(jobId+ "Trigger", jobGroup + "TriggerGroup")
//					.withSchedule(CronScheduleBuilder.cronSchedule(cronExpression)).build();
//
//			// insert into SMSS_JOB_RECIPES table
//			// THERE WAS NO POSSIBILITY OF RUNNING OLD JOBS WITH RECIPE PARAMETERS
//			SchedulerDatabaseUtility.insertIntoJobRecipesTable(userAccess, jobId, jobName, jobGroup, cronExpression, pixel, null, "Default", triggerOnLoad, parameters, new ArrayList());
//
//			if (active) {
//				scheduler.scheduleJob(job, trigger);
//			} else {
//				// if inactive, add job as dormant with no trigger
//				scheduler.addJob(job, false);
//			}
//		} catch (SchedulerException se) {
//			logger.error(Constants.STACKTRACE, se);
//		}
//	}
//
//	private static void setUpPropertiesFile() {
//		Properties quartzProperties = new Properties();
//
//		try (InputStream input = new FileInputStream(
//				"C:\\workspace\\Semoss_Dev" + DIR_SEPARATOR + QUARTZ_CONFIGURATION_FILE)) {
//			quartzProperties.load(input);
//			quartzProperties.setProperty("org.quartz.dataSource.myDS.URL", serverUrl);
//
//			factory = new StdSchedulerFactory();
//			factory.initialize(quartzProperties);
//		} catch (IOException ex) {
//			logger.error("Error with loading properties in config file" + ex.getMessage());
//		} catch (SchedulerException se) {
//			logger.error(Constants.STACKTRACE, se);
//		}
//	}
//
//	private static void startScheduler() {
//		try {
//			scheduler = factory.getScheduler();
//			scheduler.start();
//		} catch (SchedulerException se) {
//			logger.error(Constants.STACKTRACE, se);
//		}
//	}
//
//	public static Connection connectToSchedulerH2(String serverUrl) {
//		Connection connection = null;
//
//		try {
//			// Register JDBC Driver
//			Class.forName(JDBC_DRIVER);
//			connection = DriverManager.getConnection(serverUrl, "admin", "admin");
//		} catch (ClassNotFoundException e) {
//			logger.error(Constants.STACKTRACE, e);
//		} catch (SQLException se) {
//			logger.error(Constants.STACKTRACE, se);
//		} catch (Exception ex) {
//			logger.error(Constants.STACKTRACE, ex);
//		}
//
//		if (connection == null) {
//			throw new NullPointerException("Connection wasn't able to be created.");
//		}
//
//		return connection;
//	}
//
//}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy