List of usage examples for java.io File getAbsolutePath
public String getAbsolutePath()
From source file:com.act.lcms.db.analysis.PathwayProductAnalysis.java
public static void main(String[] args) throws Exception { Options opts = new Options(); for (Option.Builder b : OPTION_BUILDERS) { opts.addOption(b.build());//from w w w . j av a 2 s .c om } CommandLine cl = null; try { CommandLineParser parser = new DefaultParser(); cl = parser.parse(opts, args); } catch (ParseException e) { System.err.format("Argument parsing failed: %s\n", e.getMessage()); HELP_FORMATTER.printHelp(LoadPlateCompositionIntoDB.class.getCanonicalName(), HELP_MESSAGE, opts, null, true); System.exit(1); } if (cl.hasOption("help")) { HELP_FORMATTER.printHelp(LoadPlateCompositionIntoDB.class.getCanonicalName(), HELP_MESSAGE, opts, null, true); return; } File lcmsDir = new File(cl.getOptionValue(OPTION_DIRECTORY)); if (!lcmsDir.isDirectory()) { System.err.format("File at %s is not a directory\n", lcmsDir.getAbsolutePath()); HELP_FORMATTER.printHelp(LoadPlateCompositionIntoDB.class.getCanonicalName(), HELP_MESSAGE, opts, null, true); System.exit(1); } Double fontScale = null; if (cl.hasOption("font-scale")) { try { fontScale = Double.parseDouble(cl.getOptionValue("font-scale")); } catch (IllegalArgumentException e) { System.err.format("Argument for font-scale must be a floating point number.\n"); System.exit(1); } } try (DB db = DB.openDBFromCLI(cl)) { Set<Integer> takeSamplesFromPlateIds = null; if (cl.hasOption(OPTION_FILTER_BY_PLATE_BARCODE)) { String[] plateBarcodes = cl.getOptionValues(OPTION_FILTER_BY_PLATE_BARCODE); System.out.format("Considering only sample wells in plates: %s\n", StringUtils.join(plateBarcodes, ", ")); takeSamplesFromPlateIds = new HashSet<>(plateBarcodes.length); for (String plateBarcode : plateBarcodes) { Plate p = Plate.getPlateByBarcode(db, plateBarcode); if (p == null) { System.err.format("WARNING: unable to find plate in DB with barcode %s\n", plateBarcode); } else { takeSamplesFromPlateIds.add(p.getId()); } } // Allow filtering on barcode even if we couldn't find any in the DB. } System.out.format("Loading/updating LCMS scan files into DB\n"); ScanFile.insertOrUpdateScanFilesInDirectory(db, lcmsDir); System.out.format("Processing LCMS scans\n"); Pair<List<LCMSWell>, Set<Integer>> positiveWellsAndPlateIds = Utils.extractWellsAndPlateIds(db, cl.getOptionValues(OPTION_STRAINS), cl.getOptionValues(OPTION_CONSTRUCT), takeSamplesFromPlateIds, false); List<LCMSWell> positiveWells = positiveWellsAndPlateIds.getLeft(); if (positiveWells.size() == 0) { throw new RuntimeException("Found no LCMS wells for specified strains/constructs"); } // Only take negative samples from the plates where we found the positive samples. Pair<List<LCMSWell>, Set<Integer>> negativeWellsAndPlateIds = Utils.extractWellsAndPlateIds(db, cl.getOptionValues(OPTION_NEGATIVE_STRAINS), cl.getOptionValues(OPTION_NEGATIVE_CONSTRUCTS), positiveWellsAndPlateIds.getRight(), true); List<LCMSWell> negativeWells = negativeWellsAndPlateIds.getLeft(); if (negativeWells == null || negativeWells.size() == 0) { System.err.format("WARNING: no valid negative samples found in same plates as positive samples\n"); } // Extract the chemicals in the pathway and their product masses, then look up info on those chemicals List<Pair<ChemicalAssociatedWithPathway, Double>> productMasses = Utils .extractMassesForChemicalsAssociatedWithConstruct(db, cl.getOptionValue(OPTION_CONSTRUCT)); List<Pair<String, Double>> searchMZs = new ArrayList<>(productMasses.size()); List<ChemicalAssociatedWithPathway> pathwayChems = new ArrayList<>(productMasses.size()); for (Pair<ChemicalAssociatedWithPathway, Double> productMass : productMasses) { String chemName = productMass.getLeft().getChemical(); searchMZs.add(Pair.of(chemName, productMass.getRight())); pathwayChems.add(productMass.getLeft()); } System.out.format("Searching for intermediate/side-reaction products:\n"); for (Pair<String, Double> searchMZ : searchMZs) { System.out.format(" %s: %.3f\n", searchMZ.getLeft(), searchMZ.getRight()); } // Look up the standard by name. List<StandardWell> standardWells = new ArrayList<>(); if (cl.hasOption(OPTION_STANDARD_WELLS)) { Plate standardPlate = Plate.getPlateByBarcode(db, cl.getOptionValue(OPTION_STANDARD_PLATE_BARCODE)); Map<Integer, StandardWell> pathwayIdToStandardWell = extractStandardWellsFromOptionsList(db, pathwayChems, cl.getOptionValues(OPTION_STANDARD_WELLS), standardPlate); for (ChemicalAssociatedWithPathway c : pathwayChems) { // TODO: we can avoid this loop. StandardWell well = pathwayIdToStandardWell.get(c.getId()); if (well != null) { standardWells.add(well); } } } else { for (ChemicalAssociatedWithPathway c : pathwayChems) { String standardName = c.getChemical(); System.out.format("Searching for well containing standard %s\n", standardName); List<StandardWell> wells = StandardIonAnalysis.getStandardWellsForChemical(db, c.getChemical()); if (wells != null) { standardWells.addAll(wells); } } } boolean useFineGrainedMZ = cl.hasOption("fine-grained-mz"); boolean useSNR = cl.hasOption(OPTION_USE_SNR); /* Process the standard, positive, and negative wells, producing ScanData containers that will allow them to be * iterated over for graph writing. We do not need to specify granular includeIons and excludeIons since * this would not take advantage of our caching strategy which uses a list of metlin ions as an index. */ HashMap<Integer, Plate> plateCache = new HashMap<>(); Pair<List<ScanData<StandardWell>>, Double> allStandardScans = AnalysisHelper.processScans(db, lcmsDir, searchMZs, ScanData.KIND.STANDARD, plateCache, standardWells, useFineGrainedMZ, EMPTY_SET, EMPTY_SET, useSNR); Pair<List<ScanData<LCMSWell>>, Double> allPositiveScans = AnalysisHelper.processScans(db, lcmsDir, searchMZs, ScanData.KIND.POS_SAMPLE, plateCache, positiveWells, useFineGrainedMZ, EMPTY_SET, EMPTY_SET, useSNR); Pair<List<ScanData<LCMSWell>>, Double> allNegativeScans = AnalysisHelper.processScans(db, lcmsDir, searchMZs, ScanData.KIND.NEG_CONTROL, plateCache, negativeWells, useFineGrainedMZ, EMPTY_SET, EMPTY_SET, useSNR); String fmt = "pdf"; String outImg = cl.getOptionValue(OPTION_OUTPUT_PREFIX) + "." + fmt; String outData = cl.getOptionValue(OPTION_OUTPUT_PREFIX) + ".data"; String outAnalysis = cl.getOptionValue(OPTION_OUTPUT_PREFIX) + ".tsv"; System.err.format("Writing combined scan data to %s and graphs to %s\n", outData, outImg); String plottingDirectory = cl.getOptionValue(OPTION_PLOTTING_DIR); List<ScanData<LCMSWell>> posNegWells = new ArrayList<>(); posNegWells.addAll(allPositiveScans.getLeft()); posNegWells.addAll(allNegativeScans.getLeft()); Map<Integer, String> searchIons; if (cl.hasOption(OPTION_PATHWAY_SEARCH_IONS)) { searchIons = extractPathwayStepIons(pathwayChems, cl.getOptionValues(OPTION_PATHWAY_SEARCH_IONS), cl.getOptionValue(OPTION_SEARCH_ION, "M+H")); /* This is pretty lazy, but works with the existing API. Extract all selected ions for all search masses when * performing the scan, then filter down to the desired ions for the plot at the end. * TODO: specify the masses and scans per sample rather than batching everything together. It might be slower, * but it'll be clearer to read. */ } else { // We need to make sure that the standard metlin ion we choose is consistent with the ion modes of // the given positive, negative and standard scan files. For example, we should not pick a negative // metlin ion if all our available positive control scan files are in the positive ion mode. Map<Integer, Pair<Boolean, Boolean>> ionModes = new HashMap<>(); for (ChemicalAssociatedWithPathway chemical : pathwayChems) { boolean isPositiveScanPresent = false; boolean isNegativeScanPresent = false; for (ScanData<StandardWell> scan : allStandardScans.getLeft()) { if (chemical.getChemical().equals(scan.getWell().getChemical()) && chemical.getChemical().equals(scan.getTargetChemicalName())) { if (MS1.IonMode.valueOf( scan.getScanFile().getMode().toString().toUpperCase()) == MS1.IonMode.POS) { isPositiveScanPresent = true; } if (MS1.IonMode.valueOf( scan.getScanFile().getMode().toString().toUpperCase()) == MS1.IonMode.NEG) { isNegativeScanPresent = true; } } } for (ScanData<LCMSWell> scan : posNegWells) { if (chemical.getChemical().equals(scan.getWell().getChemical()) && chemical.getChemical().equals(scan.getTargetChemicalName())) { if (MS1.IonMode.valueOf( scan.getScanFile().getMode().toString().toUpperCase()) == MS1.IonMode.POS) { isPositiveScanPresent = true; } if (MS1.IonMode.valueOf( scan.getScanFile().getMode().toString().toUpperCase()) == MS1.IonMode.NEG) { isNegativeScanPresent = true; } } } ionModes.put(chemical.getId(), Pair.of(isPositiveScanPresent, isNegativeScanPresent)); } // Sort in descending order of media where MeOH and Water related media are promoted to the top and // anything derived from yeast media are demoted. We do this because we want to first process the water // and meoh media before processing the yeast media since the yeast media depends on the analysis of the former. Collections.sort(standardWells, new Comparator<StandardWell>() { @Override public int compare(StandardWell o1, StandardWell o2) { if (StandardWell.doesMediaContainYeastExtract(o1.getMedia()) && !StandardWell.doesMediaContainYeastExtract(o2.getMedia())) { return 1; } else { return 0; } } }); searchIons = extractPathwayStepIonsFromStandardIonAnalysis(pathwayChems, lcmsDir, db, standardWells, plottingDirectory, ionModes); } produceLCMSPathwayHeatmaps(lcmsDir, outData, outImg, outAnalysis, pathwayChems, allStandardScans, allPositiveScans, allNegativeScans, fontScale, cl.hasOption(OPTION_USE_HEATMAP), searchIons); } }
From source file:PersonExt.java
public static void main(String[] args) { PersonExt p1 = new PersonExt("John", "Male", 6.7); PersonExt p2 = new PersonExt("Wally", "Male", 5.7); PersonExt p3 = new PersonExt("Katrina", "Female", 5.4); File fileObject = new File("personext.ser"); try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileObject))) { oos.writeObject(p1);/*ww w . jav a2 s .com*/ oos.writeObject(p2); oos.writeObject(p3); System.out.println(p1); System.out.println(p2); System.out.println(p3); } catch (IOException e1) { e1.printStackTrace(); } fileObject = new File("personext.ser"); try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(fileObject))) { p1 = (PersonExt) ois.readObject(); p2 = (PersonExt) ois.readObject(); p3 = (PersonExt) ois.readObject(); // Let's display the objects that are read System.out.println(p1); System.out.println(p2); System.out.println(p3); // Print the input path System.out.println("Objects were read from " + fileObject.getAbsolutePath()); } catch (Exception e) { e.printStackTrace(); } }
From source file:GenAppStoreSales.java
/** * Starting point for the demonstration application. * @throws IOException //w ww . ja v a2 s.c o m * */ public static void main(String[] args) throws IOException { System.out.print("\nRefreshing Apple Store Reports..."); // Init Calendars rollCalendar = Calendar.getInstance(); updateRollCalendar(); currentYear = rollCalendar.get(Calendar.YEAR); currentMonth = rollCalendar.get(Calendar.MONTH) + 1; currentDay = rollCalendar.get(Calendar.DATE); Calendar launchCalendar = Calendar.getInstance(); int launchYear = 2013, launchMonth = 2, launchDay = 28; //Month from 0..11 launchCalendar.set(launchYear, launchMonth, launchDay); /* Report Folders */ currentPath = new File("").getAbsolutePath(); String sourceName = "/sources"; File sourceDir = new File(currentPath, sourceName); if (!sourceDir.isDirectory()) { if (!(new File(currentPath + sourceName)).mkdirs()) { System.out.println("[Error] Couldn't create 'source' folder."); } } sourcePath = sourceDir.getAbsolutePath(); String chartName = "/charts"; File chartDir = new File(currentPath, chartName); if (!chartDir.isDirectory()) { if (!(new File(currentPath + chartName)).mkdirs()) { System.out.println("[Error] Couldn't create 'chart' folder."); } } chartPath = chartDir.getAbsolutePath(); String dateCode, reportName; // DAILY REPORT System.out.println("\n-> Daily reports"); for (int d = 0; d < 14; d++) { rollCalendar.add(Calendar.DATE, -1); if (rollCalendar.compareTo(launchCalendar) <= 0) break; updateRollCalendar(); dateCode = String.format("%d%02d%02d", pursuedYear, pursuedMonth, pursuedDay); reportName = "S_D_" + appID + "_" + dateCode + ".txt"; autoingestionDownload(reportName, "Daily", dateCode); } printDatePeriod("DAILY", "report"); // WEEKLY REPORT System.out.println("\n-> Weekly reports"); rollCalendar = Calendar.getInstance(); rollCalendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); pursuedDay = currentDay; pursuedMonth = currentMonth; pursuedYear = currentYear; for (int w = 0; w < 13; w++) { rollCalendar.add(Calendar.DATE, -7); if (rollCalendar.compareTo(launchCalendar) <= 0) break; updateRollCalendar(); dateCode = String.format("%d%02d%02d", pursuedYear, pursuedMonth, pursuedDay); reportName = "S_W_" + appID + "_" + dateCode + ".txt"; autoingestionDownload(reportName, "Weekly", dateCode); } printDatePeriod("WEEKLY", "report"); // MONTHLY REPORTS System.out.println("\n-> Monthly reports"); rollCalendar = Calendar.getInstance(); pursuedDay = currentDay; pursuedMonth = currentMonth - 1; pursuedYear = currentYear; for (int m = 0; m < 12; m++) { rollCalendar.add(Calendar.MONTH, -1); rollCalendar.set(Calendar.DATE, rollCalendar.getActualMaximum(Calendar.DAY_OF_MONTH)); if (rollCalendar.compareTo(launchCalendar) <= 0) break; updateRollCalendar(); dateCode = String.format("%d%02d", pursuedYear, pursuedMonth); reportName = "S_M_" + appID + "_" + dateCode + ".txt"; autoingestionDownload(reportName, "Monthly", dateCode); } printDatePeriod("MONTHLY", "report"); // YEARLY REPORTS System.out.println("\n-> Yearly reports"); rollCalendar = Calendar.getInstance(); rollCalendar.add(Calendar.DATE, -1); pursuedDay = currentDay - 1; pursuedMonth = currentMonth; pursuedYear = currentYear; for (int y = 0; y < 100; y++) { rollCalendar.add(Calendar.YEAR, -1); if (rollCalendar.compareTo(launchCalendar) <= 0) break; updateRollCalendar(); dateCode = String.format("%d", pursuedYear); reportName = "S_Y_" + appID + "_" + dateCode + ".txt"; autoingestionDownload(reportName, "Yearly", dateCode); } printDatePeriod("YEARLY", "report"); /** * Reading Sales.txt & Generating Charts */ // WEEK CHARTS String plotName, pursuedPeriodDate; System.out.print("\nRestoring charts...\n"); System.out.println("-> Week charts"); rollCalendar = Calendar.getInstance(); rollCalendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); rollCalendar.add(Calendar.DATE, -7); updateRollCalendar(); while (rollCalendar.compareTo(launchCalendar) > 0) { pursuedPeriodDate = String.format("%d.%d.%d", pursuedDay, pursuedMonth, pursuedYear); dateCode = String.format("%d%02d%02d", pursuedYear, pursuedMonth, pursuedDay); plotName = "S_W_" + appID + "_" + dateCode; File plotFile = new File(chartPath + "/" + plotName + ".png"); if (!plotFile.isFile()) { readSales("week", true, true); if (countryLabels.size() > 0) { genPlot("WEEK", plotName, pursuedPeriodDate, countryLabels, countryUnits); } if (countryInAppLabels.size() > 0) { genPlot("WEEK IN-APP", plotName + "_InApp", pursuedPeriodDate, countryInAppLabels, countryInAppUnits); } } else readSales("week", false, true);// Week already plotted } printDatePeriod("WEEK", "charts"); // Incomplete current Week (let the current day be computed) rollCalendar = Calendar.getInstance(); updateRollCalendar(); readSales("week", false, true); // MONTH CHARTS System.out.println("\n-> Month charts"); rollCalendar = Calendar.getInstance(); rollCalendar.add(Calendar.MONTH, -1); rollCalendar.set(Calendar.DATE, rollCalendar.getActualMaximum(Calendar.DAY_OF_MONTH)); updateRollCalendar(); while (rollCalendar.compareTo(launchCalendar) > 0) { pursuedPeriodDate = String.format("%d.%d.%d", pursuedDay, pursuedMonth, pursuedYear); dateCode = String.format("%d%02d%02d", pursuedYear, pursuedMonth, pursuedDay); plotName = "S_M_" + appID + "_" + dateCode; File plotFile = new File(chartPath + "/" + plotName + ".png"); if (!plotFile.isFile()) { readSales("month", true, false); if (countryLabels.size() > 0) { genPlot("MONTH", plotName, pursuedPeriodDate, countryLabels, countryUnits); } if (countryInAppLabels.size() > 0) { genPlot("MONTH", plotName + "_InApp", pursuedPeriodDate, countryInAppLabels, countryInAppUnits); } } else { readSales("month", false, false); } } printDatePeriod("MONTH", "charts"); // YEAR CHARTS System.out.println("\n-> Year charts"); rollCalendar = (Calendar) launchCalendar.clone(); rollCalendar.set(Calendar.DATE, -1); rollCalendar.add(Calendar.YEAR, -1); updateRollCalendar(); while (rollCalendar.compareTo(launchCalendar) > 0) { pursuedPeriodDate = String.format("%d.%d.%d", pursuedDay, pursuedMonth, pursuedYear); dateCode = String.format("%d%02d%02d", pursuedYear, pursuedMonth, pursuedDay); plotName = "S_Y_" + appID + "_" + dateCode; File plotFile = new File(chartPath + "/" + plotName + ".png"); if (!plotFile.isFile()) { readSales("year", true, false); if (countryLabels.size() > 0) { genPlot("YEAR", plotName, pursuedPeriodDate, countryLabels, countryUnits); } if (countryInAppLabels.size() > 0) { genPlot("YEAR", plotName + "_InApp", pursuedPeriodDate, countryInAppLabels, countryInAppUnits); } } else readSales("year", false, false); } printDatePeriod("YEAR", "charts"); // CUSTOM CHART PERIOD System.out.println("\n-> Custom charts"); customCalendar = (Calendar) launchCalendar.clone(); // begin day rollCalendar = Calendar.getInstance(); // end day rollCalendar.add(Calendar.DATE, -1); updateRollCalendar(); pursuedPeriodDate = String.format("%d.%d.%d", pursuedDay, pursuedMonth, pursuedYear); dateCode = String.format("%d%02d%02d", pursuedYear, pursuedMonth, pursuedDay); plotName = "S_C_" + appID + "__whole";// + dateCode; File plotFile = new File(chartPath + "/" + plotName + ".png"); if (!plotFile.isFile()) { readSales("custom", true, false); if (countryLabels.size() > 0) { genPlot("CUSTOM", plotName, pursuedPeriodDate, countryLabels, countryUnits); } if (countryInAppLabels.size() > 0) { genPlot("CUSTOM IN-APP", plotName + "_InApp", pursuedPeriodDate, countryInAppLabels, countryInAppUnits); } } printDatePeriod("CUSTOM Period", "charts"); // Day Sales units rollCalendar = Calendar.getInstance(); rollCalendar.add(Calendar.DATE, -1); updateRollCalendar(); readSales("day", false, false); System.out.println("\nTotal units: " + totalUnits + "/" + totalUpdateUnits + "-Up (+" + dayUnits + ")"); System.out.println("Total IN-APP units: " + totalInAppUnits + " (+" + dayINAPPUnits + ")\n"); System.exit(0); }
From source file:de.prozesskraft.pkraft.Waitinstance.java
public static void main(String[] args) throws org.apache.commons.cli.ParseException, IOException { /*---------------------------- get options from ini-file//ww w . java2 s. c o m ----------------------------*/ java.io.File inifile = new java.io.File(WhereAmI.getInstallDirectoryAbsolutePath(Waitinstance.class) + "/" + "../etc/pkraft-waitinstance.ini"); if (inifile.exists()) { try { ini = new Ini(inifile); } catch (InvalidFileFormatException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else { System.err.println("ini file does not exist: " + inifile.getAbsolutePath()); System.exit(1); } /*---------------------------- create boolean options ----------------------------*/ Option ohelp = new Option("help", "print this message"); Option ov = new Option("v", "prints version and build-date"); /*---------------------------- create argument options ----------------------------*/ Option oinstance = OptionBuilder.withArgName("FILE").hasArg().withDescription( "[mandatory if no -scandir] instance file (process.pmb) that this program will wait till its status is 'error' or 'finished'") // .isRequired() .create("instance"); Option oscandir = OptionBuilder.withArgName("DIR").hasArg().withDescription( "[mandatory if no -instance] directory tree with instances (process.pmb). the first instance found will be tracked.") // .isRequired() .create("scandir"); Option omaxrun = OptionBuilder.withArgName("INTEGER").hasArg().withDescription( "[optional, default: 4320] time period (in minutes, default: 3 days) this program waits till it aborts further waiting.") // .isRequired() .create("maxrun"); /*---------------------------- create options object ----------------------------*/ Options options = new Options(); options.addOption(ohelp); options.addOption(ov); options.addOption(oinstance); options.addOption(oscandir); options.addOption(omaxrun); /*---------------------------- create the parser ----------------------------*/ CommandLineParser parser = new GnuParser(); // parse the command line arguments commandline = parser.parse(options, args); /*---------------------------- usage/help ----------------------------*/ if (commandline.hasOption("help")) { HelpFormatter formatter = new HelpFormatter(); formatter.printHelp("waitinstance", options); System.exit(0); } if (commandline.hasOption("v")) { System.out.println("author: alexander.vogel@caegroup.de"); System.out.println("version: [% version %]"); System.out.println("date: [% date %]"); System.exit(0); } /*---------------------------- ueberpruefen ob eine schlechte kombination von parametern angegeben wurde ----------------------------*/ Integer maxrun = new Integer(4320); String pathInstance = null; String pathScandir = null; // instance & scandir if (!(commandline.hasOption("instance")) && !(commandline.hasOption("scandir"))) { System.err.println("one of the options -instance/-scandir is mandatory"); exiter(); } else if ((commandline.hasOption("instance")) && (commandline.hasOption("scandir"))) { System.err.println("both options -instance/-scandir are not allowed"); exiter(); } else if (commandline.hasOption("instance")) { pathInstance = commandline.getOptionValue("instance"); } else if (commandline.hasOption("scandir")) { pathScandir = commandline.getOptionValue("scandir"); } // maxrun if (commandline.hasOption("maxrun")) { maxrun = new Integer(commandline.getOptionValue("maxrun")); } /*---------------------------- die lizenz ueberpruefen und ggf abbrechen ----------------------------*/ // check for valid license ArrayList<String> allPortAtHost = new ArrayList<String>(); allPortAtHost.add(ini.get("license-server", "license-server-1")); allPortAtHost.add(ini.get("license-server", "license-server-2")); allPortAtHost.add(ini.get("license-server", "license-server-3")); MyLicense lic = new MyLicense(allPortAtHost, "1", "user-edition", "0.1"); // lizenz-logging ausgeben for (String actLine : (ArrayList<String>) lic.getLog()) { System.err.println(actLine); } // abbruch, wenn lizenz nicht valide if (!lic.isValid()) { System.exit(1); } /*---------------------------- die eigentliche business logic ----------------------------*/ // scannen nach dem ersten process.pmb if ((pathScandir != null) && (pathInstance == null)) { String[] allBinariesOfScanDir = getProcessBinaries(pathScandir); if (allBinariesOfScanDir.length == 0) { System.err.println("no instance (process.pmb) found in directory tree " + pathScandir); exiter(); } else { pathInstance = allBinariesOfScanDir[0]; System.err.println("found instance: " + pathInstance); } } // ueberpruefen ob instance file existiert java.io.File fileInstance = new java.io.File(pathInstance); if (!fileInstance.exists()) { System.err.println("instance file does not exist: " + fileInstance.getAbsolutePath()); exiter(); } if (!fileInstance.isFile()) { System.err.println("instance file is not a file: " + fileInstance.getAbsolutePath()); exiter(); } // zeitpunkt wenn spaetestens beendet werden soll long runTill = System.currentTimeMillis() + (maxrun * 60 * 1000); // logging System.err.println("waiting for instance: " + fileInstance.getAbsolutePath()); System.err.println("checking its status every 5 minutes"); System.err.println("now is: " + new Timestamp(startInMillis).toString()); System.err.println("maxrun till: " + new Timestamp(runTill).toString()); // instanz einlesen Process p1 = new Process(); p1.setInfilebinary(fileInstance.getAbsolutePath()); Process p2 = p1.readBinary(); // schleife, die prozess einliest und ueberprueft ob er noch laeuft while (!(p2.getStatus().equals("error") || p2.getStatus().equals("finished"))) { // logging System.err.println(new Timestamp(System.currentTimeMillis()) + " instance status: " + p2.getStatus()); // 5 minuten schlafen: 300000 millis try { Thread.sleep(300000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } // ist die maximale laufzeit von this erreicht, dann soll beendet werden (3 tage) if (System.currentTimeMillis() > runTill) { System.err .println("exiting because of maxrun. now is: " + new Timestamp(System.currentTimeMillis())); System.exit(2); } // den prozess frisch einlesen p2 = p1.readBinary(); } System.err.println("exiting because instance status is: " + p2.getStatus()); System.err.println("now is: " + new Timestamp(System.currentTimeMillis()).toString()); System.exit(0); }
From source file:act.installer.reachablesexplorer.Loader.java
public static void main(String[] args) throws IOException { CLIUtil cliUtil = new CLIUtil(Loader.class, HELP_MESSAGE, OPTION_BUILDERS); CommandLine cl = cliUtil.parseCommandLine(args); File reachablesDir = new File(cl.getOptionValue(OPTION_REACHABLES_SOURCE_DATA, DEFAULT_REACHABLES_PATH)); if (!(reachablesDir.exists() && reachablesDir.isDirectory())) { cliUtil.failWithMessage("Reachables directory at %s does not exist or is not a directory", reachablesDir.getAbsolutePath()); }/*from w w w .j ava 2s . c o m*/ Loader loader = new Loader(cl.getOptionValue(OPTION_DB_HOST, DEFAULT_HOST), Integer.parseInt(cl.getOptionValue(OPTION_DB_PORT, DEFAULT_PORT.toString())), cl.getOptionValue(OPTION_INSTALLER_SOURCE_DB, DEFAULT_CHEMICALS_DATABASE), cl.getOptionValue(OPTION_TARGET_DB, DEFAULT_TARGET_DATABASE), cl.getOptionValue(OPTION_TARGET_REACHABLES_COLLECTION), cl.getOptionValue(OPTION_TARGET_SEQUENCES_COLLECTION), cl.getOptionValue(OPTION_RENDERING_CACHE, DEFAULT_ASSETS_LOCATION)); loader.updateFromReachableDir(reachablesDir); if (cl.hasOption(OPTION_PROJECTIONS_SOURCE_DATA)) { File projectionFile = new File( cl.getOptionValue(OPTION_PROJECTIONS_SOURCE_DATA, DEFAULT_PROJECTIONS_PATH)); if (!projectionFile.exists() || projectionFile.isDirectory()) { cliUtil.failWithMessage("Projection file at %s does not exist or is a directory", projectionFile.getAbsolutePath()); } loader.updateFromProjectionFile(projectionFile); } if (cl.hasOption(OPTION_PROJECTED_INCHIS_SOURCE_DATA)) { File projectedInchisFile = new File(cl.getOptionValue(OPTION_PROJECTED_INCHIS_SOURCE_DATA)); if (!projectedInchisFile.exists() || projectedInchisFile.isDirectory()) { cliUtil.failWithMessage("InChI file at %s does not exist or is a directory", projectedInchisFile.getAbsolutePath()); } loader.updateFromProjectedInchiFile(projectedInchisFile); } }
From source file:de.prozesskraft.pkraft.Perlcode.java
public static void main(String[] args) throws org.apache.commons.cli.ParseException, IOException { // try/*from w ww. j a v a 2s . co m*/ // { // if (args.length != 3) // { // System.out.println("Please specify processdefinition file (xml) and an outputfilename"); // } // // } // catch (ArrayIndexOutOfBoundsException e) // { // System.out.println("***ArrayIndexOutOfBoundsException: Please specify processdefinition.xml, openoffice_template.od*, newfile_for_processdefinitions.odt\n" + e.toString()); // } /*---------------------------- get options from ini-file ----------------------------*/ File inifile = new java.io.File( WhereAmI.getInstallDirectoryAbsolutePath(Perlcode.class) + "/" + "../etc/pkraft-perlcode.ini"); if (inifile.exists()) { try { ini = new Ini(inifile); } catch (InvalidFileFormatException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else { System.err.println("ini file does not exist: " + inifile.getAbsolutePath()); System.exit(1); } /*---------------------------- create boolean options ----------------------------*/ Option ohelp = new Option("help", "print this message"); Option ov = new Option("v", "prints version and build-date"); /*---------------------------- create argument options ----------------------------*/ Option ostep = OptionBuilder.withArgName("STEPNAME").hasArg().withDescription( "[optional] stepname of step to generate a script for. if this parameter is omitted, a script for the process will be generated.") // .isRequired() .create("step"); Option ooutput = OptionBuilder.withArgName("DIR").hasArg() .withDescription("[mandatory] directory for generated files. must not exist when calling.") // .isRequired() .create("output"); Option odefinition = OptionBuilder.withArgName("FILE").hasArg() .withDescription("[mandatory] process definition file.") // .isRequired() .create("definition"); Option onolist = OptionBuilder.withArgName("") // .hasArg() .withDescription( "[optional] with this parameter the multiple use of multi-optionis is forced. otherwise it is possible to use an integrated comma-separeated list.") // .isRequired() .create("nolist"); /*---------------------------- create options object ----------------------------*/ Options options = new Options(); options.addOption(ohelp); options.addOption(ov); options.addOption(ostep); options.addOption(ooutput); options.addOption(odefinition); options.addOption(onolist); /*---------------------------- create the parser ----------------------------*/ CommandLineParser parser = new GnuParser(); try { // parse the command line arguments commandline = parser.parse(options, args); } catch (Exception exp) { // oops, something went wrong System.err.println("Parsing failed. Reason: " + exp.getMessage()); exiter(); } /*---------------------------- usage/help ----------------------------*/ if (commandline.hasOption("help")) { HelpFormatter formatter = new HelpFormatter(); formatter.printHelp("perlcode", options); System.exit(0); } else if (commandline.hasOption("v")) { System.out.println("web: www.prozesskraft.de"); System.out.println("version: [% version %]"); System.out.println("date: [% date %]"); System.exit(0); } /*---------------------------- ueberpruefen ob eine schlechte kombination von parametern angegeben wurde ----------------------------*/ if (!(commandline.hasOption("definition"))) { System.err.println("option -definition is mandatory."); exiter(); } if (!(commandline.hasOption("output"))) { System.err.println("option -output is mandatory."); exiter(); } /*---------------------------- die lizenz ueberpruefen und ggf abbrechen ----------------------------*/ // check for valid license ArrayList<String> allPortAtHost = new ArrayList<String>(); allPortAtHost.add(ini.get("license-server", "license-server-1")); allPortAtHost.add(ini.get("license-server", "license-server-2")); allPortAtHost.add(ini.get("license-server", "license-server-3")); MyLicense lic = new MyLicense(allPortAtHost, "1", "user-edition", "0.1"); // lizenz-logging ausgeben for (String actLine : (ArrayList<String>) lic.getLog()) { System.err.println(actLine); } // abbruch, wenn lizenz nicht valide if (!lic.isValid()) { System.exit(1); } /*---------------------------- die eigentliche business logic ----------------------------*/ Process p1 = new Process(); java.io.File outputDir = new java.io.File(commandline.getOptionValue("output")); java.io.File outputDirProcessScript = new java.io.File(commandline.getOptionValue("output")); java.io.File outputDirBin = new java.io.File(commandline.getOptionValue("output") + "/bin"); java.io.File outputDirLib = new java.io.File(commandline.getOptionValue("output") + "/lib"); boolean nolist = false; if (commandline.hasOption("nolist")) { nolist = true; } if (outputDir.exists()) { System.err.println("fatal: directory already exists: " + outputDir.getCanonicalPath()); exiter(); } else { outputDir.mkdir(); } p1.setInfilexml(commandline.getOptionValue("definition")); System.err.println("info: reading process definition " + commandline.getOptionValue("definition")); Process p2 = null; try { p2 = p1.readXml(); } catch (JAXBException e) { // TODO Auto-generated catch block e.printStackTrace(); System.err.println("error"); exiter(); } // perlcode generieren fuer einen bestimmten step if (commandline.hasOption("step")) { outputDirBin.mkdir(); String stepname = commandline.getOptionValue("step"); writeStepAsPerlcode(p2, stepname, outputDirBin, nolist); } // perlcode generieren fuer den gesamten process else { outputDirBin.mkdir(); writeProcessAsPerlcode(p2, outputDirProcessScript, outputDirBin, nolist); // copy all perllibs from the lib directory outputDirLib.mkdir(); final Path source = Paths.get(WhereAmI.getInstallDirectoryAbsolutePath(Perlcode.class) + "/../perllib"); final Path target = Paths.get(outputDirLib.toURI()); copyDirectoryTree.copyDirectoryTree(source, target); } }
From source file:eu.scape_project.tool.toolwrapper.toolwrapper_bash_generator.BashWrapperGenerator.java
/** * Main method that parses the parameters, and for each operation generates * a bash wrapper and a Taverna workflow * /*from ww w .j av a 2s . c om*/ * @param args * command-line provided arguments */ public static void main(String[] args) { BashWrapperGenerator bwg = new BashWrapperGenerator(); int exitCode = 0; try { ImmutablePair<CommandLine, Tool> pair = bwg.processToolWrapperGenerationRequest(args); CommandLine cmd = null; Tool tool = null; Components components = null; if (pair != null) { cmd = pair.getLeft(); tool = pair.getRight(); File toolFile = cmd.hasOption("t") ? new File(cmd.getOptionValue("t")) : null; File componentsFile = cmd.hasOption("c") ? new File(cmd.getOptionValue("c")) : null; File outputdirFile = cmd.hasOption("o") ? new File(cmd.getOptionValue("o")) : null; // try to create a component instance if provided the components // spec file location if (componentsFile != null) { components = eu.scape_project.tool.toolwrapper.data.components_spec.utils.Utils .createComponents(componentsFile.getAbsolutePath()); bwg.setComponents(components); } if (componentsFile == null || components != null) { bwg.copySpecsToInstallDir(outputdirFile, toolFile, componentsFile); for (Operation operation : tool.getOperations().getOperation()) { // just to make sure it doesn't have an older value bwg.setComponent(null); if (components != null) { for (Component component : components.getComponent()) { if (component.getName().equalsIgnoreCase(operation.getName())) { bwg.setComponent(component); break; } } } // define wrapper name as operation name bwg.setWrapperName(operation.getName()); // generate the wrapper and Taverna workflow boolean generationOK = bwg.generateWrapper(tool, operation, outputdirFile); if (generationOK) { log.info("Ouputs for operation \"" + operation.getName() + "\"" + " generated with success!"); } else { log.error("[ERROR] Error generating outputs for operation \"" + operation.getName() + "\""); } } } else { log.error("[ERROR] Error loading components file!"); exitCode = 3; } } } catch (ErrorParsingCmdArgsException e) { log.error("[ERROR] " + e.getMessage()); bwg.printUsage(); exitCode = 2; } catch (SpecParsingException e) { log.error("[ERROR] " + e.getMessage(), e); bwg.printUsage(); exitCode = 1; } System.exit(exitCode); }
From source file:GIST.IzbirkomExtractor.IzbirkomExtractor.java
/** * @param args/*ww w . ja v a 2 s. c o m*/ */ public static void main(String[] args) { // process command-line options Options options = new Options(); options.addOption("n", "noaddr", false, "do not do any address matching (for testing)"); options.addOption("i", "info", false, "create and populate address information table"); options.addOption("h", "help", false, "this message"); // database connection options.addOption("s", "server", true, "database server to connect to"); options.addOption("d", "database", true, "OSM database name"); options.addOption("u", "user", true, "OSM database user name"); options.addOption("p", "pass", true, "OSM database password"); // logging options options.addOption("l", "logdir", true, "log file directory (default './logs')"); options.addOption("e", "loglevel", true, "log level (default 'FINEST')"); // automatically generate the help statement HelpFormatter help_formatter = new HelpFormatter(); // database URI for connection String dburi = null; // Information message for help screen String info_msg = "IzbirkomExtractor [options] <html_directory>"; try { CommandLineParser parser = new GnuParser(); CommandLine cmd = parser.parse(options, args); if (cmd.hasOption('h') || cmd.getArgs().length != 1) { help_formatter.printHelp(info_msg, options); System.exit(1); } /* prohibit n and i together */ if (cmd.hasOption('n') && cmd.hasOption('i')) { System.err.println("Options 'n' and 'i' cannot be used together."); System.exit(1); } /* require database arguments without -n */ if (cmd.hasOption('n') && (cmd.hasOption('s') || cmd.hasOption('d') || cmd.hasOption('u') || cmd.hasOption('p'))) { System.err.println("Options 'n' and does not need any databse parameters."); System.exit(1); } /* require all 4 database options to be used together */ if (!cmd.hasOption('n') && !(cmd.hasOption('s') && cmd.hasOption('d') && cmd.hasOption('u') && cmd.hasOption('p'))) { System.err.println( "For database access all of the following arguments have to be specified: server, database, user, pass"); System.exit(1); } /* useful variables */ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'kk:mm"); String dateString = formatter.format(new Date()); /* setup logging */ File logdir = new File(cmd.hasOption('l') ? cmd.getOptionValue('l') : "logs"); FileUtils.forceMkdir(logdir); File log_file_name = new File( logdir + "/" + IzbirkomExtractor.class.getName() + "-" + formatter.format(new Date()) + ".log"); FileHandler log_file = new FileHandler(log_file_name.getPath()); /* create "latest" link to currently created log file */ Path latest_log_link = Paths.get(logdir + "/latest"); Files.deleteIfExists(latest_log_link); Files.createSymbolicLink(latest_log_link, Paths.get(log_file_name.getName())); log_file.setFormatter(new SimpleFormatter()); LogManager.getLogManager().reset(); // prevents logging to console logger.addHandler(log_file); logger.setLevel(cmd.hasOption('e') ? Level.parse(cmd.getOptionValue('e')) : Level.FINEST); // open directory with HTML files and create file list File dir = new File(cmd.getArgs()[0]); if (!dir.isDirectory()) { System.err.println("Unable to find directory '" + cmd.getArgs()[0] + "', exiting"); System.exit(1); } PathMatcher pmatcher = FileSystems.getDefault() .getPathMatcher("glob:? * ?*.html"); ArrayList<File> html_files = new ArrayList<>(); for (Path file : Files.newDirectoryStream(dir.toPath())) if (pmatcher.matches(file.getFileName())) html_files.add(file.toFile()); if (html_files.size() == 0) { System.err.println("No matching HTML files found in '" + dir.getAbsolutePath() + "', exiting"); System.exit(1); } // create csvResultSink FileOutputStream csvout_file = new FileOutputStream("parsed_addresses-" + dateString + ".csv"); OutputStreamWriter csvout = new OutputStreamWriter(csvout_file, "UTF-8"); ResultSink csvResultSink = new CSVResultSink(csvout, new CSVStrategy('|', '"', '#')); // Connect to DB and osmAddressMatcher AddressMatcher osmAddressMatcher; DBSink dbSink = null; DBInfoSink dbInfoSink = null; if (cmd.hasOption('n')) { osmAddressMatcher = new DummyAddressMatcher(); } else { dburi = "jdbc:postgresql://" + cmd.getOptionValue('s') + "/" + cmd.getOptionValue('d'); Connection con = DriverManager.getConnection(dburi, cmd.getOptionValue('u'), cmd.getOptionValue('p')); osmAddressMatcher = new OsmAddressMatcher(con); dbSink = new DBSink(con); if (cmd.hasOption('i')) dbInfoSink = new DBInfoSink(con); } /* create resultsinks */ SinkMultiplexor sm = SinkMultiplexor.newSinkMultiplexor(); sm.addResultSink(csvResultSink); if (dbSink != null) { sm.addResultSink(dbSink); if (dbInfoSink != null) sm.addResultSink(dbInfoSink); } // create tableExtractor TableExtractor te = new TableExtractor(osmAddressMatcher, sm); // TODO: printout summary of options: processing date/time, host, directory of HTML files, jdbc uri, command line with parameters // iterate through files logger.info("Start processing " + html_files.size() + " files in " + dir); for (int i = 0; i < html_files.size(); i++) { System.err.println("Parsing #" + i + ": " + html_files.get(i)); te.processHTMLfile(html_files.get(i)); } System.err.println("Processed " + html_files.size() + " HTML files"); logger.info("Finished processing " + html_files.size() + " files in " + dir); } catch (ParseException e1) { System.err.println("Failed to parse CLI: " + e1.getMessage()); help_formatter.printHelp(info_msg, options); System.exit(1); } catch (IOException e) { System.err.println("I/O Exception: " + e.getMessage()); e.printStackTrace(); System.exit(1); } catch (SQLException e) { System.err.println("Database '" + dburi + "': " + e.getMessage()); System.exit(1); } catch (ResultSinkException e) { System.err.println("Failed to initialize ResultSink: " + e.getMessage()); System.exit(1); } catch (TableExtractorException e) { System.err.println("Failed to initialize Table Extractor: " + e.getMessage()); System.exit(1); } catch (CloneNotSupportedException | IllegalAccessException | InstantiationException e) { System.err.println("Something really odd happened: " + e.getMessage()); e.printStackTrace(); System.exit(1); } }
From source file:com.cloud.migration.Db20to21MigrationUtil.java
public static void main(String[] args) { File file = PropertiesUtil.findConfigFile("log4j-cloud.xml"); if (file != null) { System.out.println("Log4j configuration from : " + file.getAbsolutePath()); DOMConfigurator.configureAndWatch(file.getAbsolutePath(), 10000); } else {/*from ww w . ja v a2 s.com*/ System.out.println("Configure log4j with default properties"); } new Db20to21MigrationUtil().doMigration(); System.exit(0); }
From source file:com.dtolabs.rundeck.core.cli.ExecTool.java
/** * Creates an instance and executes {@link #run(String[])}. * * @param args//w ww . j a v a 2 s . c om * * @throws Exception */ public static void main(final String[] args) throws Exception { /** * Initialize the log4j logger */ File configDir = Constants.getFrameworkConfigFile(); PropertyConfigurator.configure(new File(configDir, "log4j.properties").getAbsolutePath()); File systemBaseDir = new File(Constants.getSystemBaseDir()); final ExecTool ExecTool = new ExecTool(systemBaseDir.getAbsolutePath()); ExecTool.shouldExit = true; ExecTool.run(args); }