// Path: src/main/java/com/dogeops/cantilever/logreader/HTTPLogReader.java
// public class HTTPLogReader {
// 	private static final Logger logger = Logger.getLogger(HTTPLogReader.class
// 			.getName());
// 	private int fileCount = 0;
// 
// 	public void readLogs(String path) {
// 		logger.info("Reading logs in " + path + "....");
// 		String log_regex = ConfigurationSingleton.instance
// 				.getConfigItem("log.convert.regex");
// 		Timer t = new Timer();
// 		t.start();
// 		File folder = new File(path);
// 		if (folder.exists()) {
// 			for (File file : folder.listFiles()) {
// 				fileCount++;
// 				logger.info("Pasring file: " + file.getAbsolutePath());
// 				try {
// 					BufferedReader br = new BufferedReader(new FileReader(
// 							file.getAbsolutePath()));
// 					String line = null;
// 					while ((line = br.readLine()) != null) {
// 						logger.trace(line);
// 						line = line.trim();
// 
// 						Pattern p = Pattern.compile(log_regex);
// 						Matcher m = p.matcher(line);
// 						try {
// 							m.find();
// 							HTTPLogObject hl = new HTTPLogObject(
// 									m.group("TIMESTAMP"), m.group("METHOD"),
// 									m.group("REQUEST"), m.group("BYTES"), m
// 											.group("USERAGENT").replace("\"",
// 													""));
// 
// 							ReplayCache.instance.addToCache(hl);
// 						} catch (Exception e) {
// 							logger.error("Unparsable line: " + line + " - "
// 									+ e.getMessage());
// 						}
// 					}
// 					br.close();
// 				} catch (FileNotFoundException e) {
// 					cease(logger, e.getMessage());
// 				} catch (IOException e) {
// 					cease(logger, e.getMessage());
// 				}
// 			}
// 			t.stop();
// 			logger.info(fileCount + " files parsed in " + t.getElapsed()
// 					+ " ms");
// 		} else {
// 			cease(logger, "Could not find folder " + path);
// 		}
// 	}
// }
// 
// Path: src/main/java/com/dogeops/cantilever/utils/Configuration.java
// public class Configuration {
// 	private static void usage(Options options) {
// 		HelpFormatter formatter = new HelpFormatter();
// 		formatter.printHelp("Usage options:", options);
// 	}
// 	
// 	public void getConfigFile(String[] args) {
// 		Options opt = new Options();
// 		Option op = new Option("config", true,
// 				"Full path to config file: /opt/cantilever/cantilever.config");
// 		op.setRequired(true);
// 		opt.addOption(op);
// 
// 		CommandLineParser parser = new BasicParser();
// 		CommandLine cmd;
// 
// 		try {
// 			cmd = parser.parse(opt, args);
// 			ConfigurationSingleton.instance.readConfigFile(cmd
// 					.getOptionValue("config"));
// 
// 		} catch (ParseException pe) {
// 			usage(opt);
// 		}
// 	}
// }
// 
// Path: src/main/java/com/dogeops/cantilever/utils/ConfigurationSingleton.java
// public enum ConfigurationSingleton {
// 	instance;
// 	private static final Logger logger = Logger
// 			.getLogger(ConfigurationSingleton.class.getName());
// 
// 	private Properties props = new Properties();
// 
// 	private ConfigurationSingleton() {
// 	}
// 
// 	public void readConfigFile(String config_path) {
// 		try {
// 			InputStream input = new FileInputStream(config_path);
// 			props.load(input);
// 			input.close();
// 		} catch (IOException e) {
// 			cease(logger, e.getMessage());
// 		}
// 	}
// 
// 	public String getConfigItem(String val) {
// 		try {
// 			if (props.isEmpty()) {
// 				throw new Exception("Propery file object is empty. "
// 						+ "This likely indicates that the config singleton "
// 						+ "was not properly initialized via readConfigFile.");
// 			}
// 			if (props.getProperty(val) == null) {
// 				throw new Exception("The property " + val
// 						+ " is missing from the configurtion file.");
// 			}
// 			return props.getProperty(val);
// 		} catch (Exception e) {
// 			cease(logger, e.getMessage());
// 			return null;
// 		}
// 	}
// }


import org.apache.log4j.Logger;
import com.dogeops.cantilever.logreader.HTTPLogReader;
import com.dogeops.cantilever.utils.Configuration;
import com.dogeops.cantilever.utils.ConfigurationSingleton;
package com.dogeops.cantilever.beam;



public class BeamServer {
	private static final Logger logger = Logger.getLogger(BeamServer.class
			.getName());

	public static void main(String[] args) {
		Configuration config = new Configuration();
		config.getConfigFile(args);

		String pickup_dir = ConfigurationSingleton.instance
// Path: src/main/java/com/dogeops/cantilever/logreader/HTTPLogReader.java
// public class HTTPLogReader {
// 	private static final Logger logger = Logger.getLogger(HTTPLogReader.class
// 			.getName());
// 	private int fileCount = 0;
// 
// 	public void readLogs(String path) {
// 		logger.info("Reading logs in " + path + "....");
// 		String log_regex = ConfigurationSingleton.instance
// 				.getConfigItem("log.convert.regex");
// 		Timer t = new Timer();
// 		t.start();
// 		File folder = new File(path);
// 		if (folder.exists()) {
// 			for (File file : folder.listFiles()) {
// 				fileCount++;
// 				logger.info("Pasring file: " + file.getAbsolutePath());
// 				try {
// 					BufferedReader br = new BufferedReader(new FileReader(
// 							file.getAbsolutePath()));
// 					String line = null;
// 					while ((line = br.readLine()) != null) {
// 						logger.trace(line);
// 						line = line.trim();
// 
// 						Pattern p = Pattern.compile(log_regex);
// 						Matcher m = p.matcher(line);
// 						try {
// 							m.find();
// 							HTTPLogObject hl = new HTTPLogObject(
// 									m.group("TIMESTAMP"), m.group("METHOD"),
// 									m.group("REQUEST"), m.group("BYTES"), m
// 											.group("USERAGENT").replace("\"",
// 													""));
// 
// 							ReplayCache.instance.addToCache(hl);
// 						} catch (Exception e) {
// 							logger.error("Unparsable line: " + line + " - "
// 									+ e.getMessage());
// 						}
// 					}
// 					br.close();
// 				} catch (FileNotFoundException e) {
// 					cease(logger, e.getMessage());
// 				} catch (IOException e) {
// 					cease(logger, e.getMessage());
// 				}
// 			}
// 			t.stop();
// 			logger.info(fileCount + " files parsed in " + t.getElapsed()
// 					+ " ms");
// 		} else {
// 			cease(logger, "Could not find folder " + path);
// 		}
// 	}
// }
// 
// Path: src/main/java/com/dogeops/cantilever/utils/Configuration.java
// public class Configuration {
// 	private static void usage(Options options) {
// 		HelpFormatter formatter = new HelpFormatter();
// 		formatter.printHelp("Usage options:", options);
// 	}
// 	
// 	public void getConfigFile(String[] args) {
// 		Options opt = new Options();
// 		Option op = new Option("config", true,
// 				"Full path to config file: /opt/cantilever/cantilever.config");
// 		op.setRequired(true);
// 		opt.addOption(op);
// 
// 		CommandLineParser parser = new BasicParser();
// 		CommandLine cmd;
// 
// 		try {
// 			cmd = parser.parse(opt, args);
// 			ConfigurationSingleton.instance.readConfigFile(cmd
// 					.getOptionValue("config"));
// 
// 		} catch (ParseException pe) {
// 			usage(opt);
// 		}
// 	}
// }
// 
// Path: src/main/java/com/dogeops/cantilever/utils/ConfigurationSingleton.java
// public enum ConfigurationSingleton {
// 	instance;
// 	private static final Logger logger = Logger
// 			.getLogger(ConfigurationSingleton.class.getName());
// 
// 	private Properties props = new Properties();
// 
// 	private ConfigurationSingleton() {
// 	}
// 
// 	public void readConfigFile(String config_path) {
// 		try {
// 			InputStream input = new FileInputStream(config_path);
// 			props.load(input);
// 			input.close();
// 		} catch (IOException e) {
// 			cease(logger, e.getMessage());
// 		}
// 	}
// 
// 	public String getConfigItem(String val) {
// 		try {
// 			if (props.isEmpty()) {
// 				throw new Exception("Propery file object is empty. "
// 						+ "This likely indicates that the config singleton "
// 						+ "was not properly initialized via readConfigFile.");
// 			}
// 			if (props.getProperty(val) == null) {
// 				throw new Exception("The property " + val
// 						+ " is missing from the configurtion file.");
// 			}
// 			return props.getProperty(val);
// 		} catch (Exception e) {
// 			cease(logger, e.getMessage());
// 			return null;
// 		}
// 	}
// }


// Path: src/main/java/com/dogeops/cantilever/beam/BeamServer.java
import org.apache.log4j.Logger;
import com.dogeops.cantilever.logreader.HTTPLogReader;
import com.dogeops.cantilever.utils.Configuration;
import com.dogeops.cantilever.utils.ConfigurationSingleton;

package com.dogeops.cantilever.beam;



public class BeamServer {
	private static final Logger logger = Logger.getLogger(BeamServer.class
			.getName());

	public static void main(String[] args) {
		Configuration config = new Configuration();
		config.getConfigFile(args);

		String pickup_dir = ConfigurationSingleton.instance
				.getConfigItem("log.pickupdir");