// Zinc > Based on the Panther_005 project. package us.deans.zinctest; import org.apache.log4j.*; import us.deans.panther.ppExceptionChannel; import us.deans.zinc.ZnController; import java.io.FileNotFoundException; import java.io.IOException; import java.io.FileOutputStream; import java.io.FileInputStream; import java.util.Properties; /** Main class - reads configuration and loads the controller */ public class ZnLoader { // initialize static final objects. static final Properties props = new Properties(); static final Logger logger = Logger.getLogger("ZincLoader"); static final String userDir = System.getProperty("user.dir"); static final String log4jConfigFile = userDir + "\\config\\log4j_panther.properties"; static final String zincConfigFile = userDir + "\\config\\zinc.properties"; public static void main(String[] args) { //BasicConfigurator.configure(); PropertyConfigurator.configure(userDir + "\\config\\log4j_panther.properties"); logger.info("Initializing Program... (User Directory='" + userDir + ")"); initProperties(); new ZnController(props); } private static void initProperties(){ try { logger.info("Reading properties file: " + zincConfigFile); FileInputStream reader = new FileInputStream(zincConfigFile); props.load(reader); reader.close(); } catch (FileNotFoundException e) { installProperties(); } catch (IOException e) { e.printStackTrace(); } } private static void installProperties(){ //This code for initializing the properties file... for simplicity sake, once this is done, the program will read-only. logger.debug("building new properties file: " + zincConfigFile); props.setProperty("uri01", "http://seeker.dice.com/jobsearch/servlet/JobSearch?op=301&N=0&Ntk=JobSearchRanking&Ntt=Java&Ntx=mode+matchall&Nty=1&Nf=p_Geocode|GCLT%2035.21271862,-80.83673404%2048.28032|p_PostedAge|LTEQ%201"); props.setProperty("uri02", "http://seeker.dice.com/jobsearch/servlet/JobSearch?op=301&N=0&Ntk=JobSearchRanking&Ntt=Java&Ntx=mode+matchall&Nty=1&Nf=p_Geocode|GCLT%2034.04280427,-118.2965074%2048.28032|p_PostedAge|LTEQ%201"); props.setProperty("met01", "Charlotte Metro"); props.setProperty("met02", "Los Angeles Metro"); props.setProperty("termFile", "termFile.xml"); try { props.store(System.out, "Application Parameters"); FileOutputStream writer = new FileOutputStream(zincConfigFile); props.store(writer, "Application Parameters"); writer.close(); } catch (IOException e) { throw new ppExceptionChannel(e); } } }