/* * Extract the META-INF/MANIFEST.MF file from an artifact */ private Manifest getManifest(String bundle, Object artifact) throws ArtifactResolutionException, ArtifactNotFoundException, ZipException, IOException { ZipFile file = null; if (!(artifact instanceof Artifact)) { // not resolved as mvn artifact, so it's non-mvn protocol, just use the // CustomBundleURLStreamHandlerFactory // to open stream InputStream is = null; try { is = new BufferedInputStream(new URL(bundle).openStream()); } catch (Exception e) { getLog().warn("Error while opening artifact", e); } try { is.mark(256 * 1024); JarInputStream jar = new JarInputStream(is); Manifest m = jar.getManifest(); if (m == null) { throw new IOException("Manifest not present in the first entry of the zip"); } return m; } finally { if (is != null) { // just in case when we did not open bundle is.close(); } } } else { Artifact mvnArtifact = (Artifact) artifact; File localFile = new File(localRepo.pathOf(mvnArtifact)); if (localFile.exists()) { // avoid going over to the repository if the file is already on // the disk file = new ZipFile(localFile); } else { resolver.resolve(mvnArtifact, remoteRepos, localRepo); file = new ZipFile(mvnArtifact.getFile()); } // let's replace syserr for now to hide warnings being issues by the Manifest reading process PrintStream original = System.err; try { System.setErr(new PrintStream(new ByteArrayOutputStream())); Manifest manifest = new Manifest(file.getInputStream(file.getEntry("META-INF/MANIFEST.MF"))); return manifest; } finally { System.setErr(original); } } }
/** Try the given mail server, writing output to the given PrintStream */ public static void process(String suspect_relay, PrintStream pw) { pw.println("processs: trying: " + suspect_relay); try { // Redirect all output from mail API to the given stream. System.setOut(pw); System.setErr(pw); Sender2 sm = new Sender2(suspect_relay); sm.addRecipient("*****@*****.**"); sm.setFrom(MY_TARGET); sm.setSubject("Testing for open mail relay, see " + RSS_SITE); sm.setBody( "This mail is an attempt to confirm that site " + suspect_relay + "\n" + "is in fact an open mail relay site.\n" + "For more information on the problem of open mail relays,\n" + "please visit site " + RSS_SITE + "\n" + "Please join the fight against spam by closing all open mail relays!\n" + "If this open relay has been closed, please accept our thanks.\n"); sm.sendFile(); } catch (MessagingException e) { pw.println(e); } catch (Exception e) { pw.println(e); } }
protected static int run(String message, String[] commandArray, File outputFile) { PrintStream out = System.out; PrintStream err = System.err; PrintStream fileStream = null; try { outputFile.getParentFile().mkdirs(); fileStream = new PrintStream(new FileOutputStream(outputFile)); System.setErr(fileStream); System.setOut(fileStream); return run(message, commandArray); } catch (FileNotFoundException e) { return -1; } finally { System.setOut(out); System.setErr(err); if (fileStream != null) fileStream.close(); } }
private void redirectIO() { // redirect std I/O to console and problems: // > System.out => console // > System.err => problems // > console => System.in System.setOut(consoleView.getOutputStream()); System.setErr(problemsView.getOutputStream()); // redirect input from console to System.in System.setIn(consoleView.getInputStream()); }
/** Invoked after all test classes in this test have been run */ public void onFinish(ITestContext context) { try { for (DataOutputStream out : tests.values()) Util.close(out); tests.clear(); generateReports(); } catch (IOException e) { error(e.toString()); } finally { System.setOut(old_stdout); System.setErr(old_stderr); } }
/** Invoked at the start of the test, before any of the classes in the test are run */ public void onStart(ITestContext context) { output_dir = context.getOutputDirectory(); // Uncomment to delete dir created by previous run of this testsuite File dir = new File(output_dir); if (dir.exists()) deleteContents(dir); try { System.setOut(new MyOutput(1)); System.setErr(new MyOutput(2)); } catch (FileNotFoundException e) { } }
@Before public void init() { alist.add(a1); alist.add(a2); alist.add(a3); alist.add(a4); alist.add(a5); alist.add(a6); alist.add(a7); alist.add(a8); alist.add(a9); System.setOut(new PrintStream(outContent)); System.setErr(new PrintStream(errContent)); }
public static void main(String[] args) { botsDirecotry.mkdir(); pluginsDirecotry.mkdir(); logger.info("Setting up"); EventManager.addListener(new ChatListener()); System.setOut(new PrintStream(new LoggingStream(LogManager.getLogger("STDOUT"), Level.INFO))); System.setErr(new PrintStream(new LoggingStream(LogManager.getLogger("STDERR"), Level.ERROR))); loadBots(); startBots(); if (BOTS.size() == 0) { logger.error("No bots started! Stopping..."); return; } startPlugins(); logger.info("Setup finished"); }
public static void main(final String[] args) { File logdir = new File(LOG_DIR); if (!logdir.exists()) logdir.mkdirs(); File log = new File(logdir, "client.log"); // redirect all console output to the file try { PrintStream out = new PrintStream(new FileOutputStream(log, true), true); out.format("[%s] ===== Client started =====%n", timestampf.format(new Date())); System.setOut(out); System.setErr(out); } catch (FileNotFoundException e) { e.printStackTrace(); } /* Set up the error handler as early as humanly possible. */ ThreadGroup g = new ThreadGroup("Haven main group"); String ed; if (!(ed = Utils.getprop("haven.errorurl", "")).equals("")) { try { final haven.error.ErrorHandler hg = new haven.error.ErrorHandler(new java.net.URL(ed)); hg.sethandler( new haven.error.ErrorGui(null) { public void errorsent() { hg.interrupt(); } }); g = hg; } catch (java.net.MalformedURLException e) { } } Thread main = new HackThread( g, new Runnable() { public void run() { main2(args); } }, "Haven main thread"); main.start(); }
public ConsoleManager(GlowServer server) { this.server = server; // install Ansi code handler, which makes colors work on Windows AnsiConsole.systemInstall(); for (Handler h : logger.getHandlers()) { logger.removeHandler(h); } // add log handler which writes to console logger.addHandler(new FancyConsoleHandler()); // reader must be initialized before standard streams are changed try { reader = new ConsoleReader(); } catch (IOException ex) { logger.log(Level.SEVERE, "Exception initializing console reader", ex); } reader.addCompleter(new CommandCompleter()); // set system output streams System.setOut(new PrintStream(new LoggerOutputStream(Level.INFO), true)); System.setErr(new PrintStream(new LoggerOutputStream(Level.WARNING), true)); // set up colorization replacements replacements.put( ChatColor.BLACK, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.BLACK).boldOff().toString()); replacements.put( ChatColor.DARK_BLUE, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.BLUE).boldOff().toString()); replacements.put( ChatColor.DARK_GREEN, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.GREEN).boldOff().toString()); replacements.put( ChatColor.DARK_AQUA, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.CYAN).boldOff().toString()); replacements.put( ChatColor.DARK_RED, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.RED).boldOff().toString()); replacements.put( ChatColor.DARK_PURPLE, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.MAGENTA).boldOff().toString()); replacements.put( ChatColor.GOLD, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.YELLOW).boldOff().toString()); replacements.put( ChatColor.GRAY, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.WHITE).boldOff().toString()); replacements.put( ChatColor.DARK_GRAY, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.BLACK).bold().toString()); replacements.put( ChatColor.BLUE, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.BLUE).bold().toString()); replacements.put( ChatColor.GREEN, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.GREEN).bold().toString()); replacements.put( ChatColor.AQUA, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.CYAN).bold().toString()); replacements.put( ChatColor.RED, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.RED).bold().toString()); replacements.put( ChatColor.LIGHT_PURPLE, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.MAGENTA).bold().toString()); replacements.put( ChatColor.YELLOW, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.YELLOW).bold().toString()); replacements.put( ChatColor.WHITE, Ansi.ansi().a(Ansi.Attribute.RESET).fg(Ansi.Color.WHITE).bold().toString()); replacements.put(ChatColor.MAGIC, Ansi.ansi().a(Ansi.Attribute.BLINK_SLOW).toString()); replacements.put(ChatColor.BOLD, Ansi.ansi().a(Ansi.Attribute.UNDERLINE_DOUBLE).toString()); replacements.put( ChatColor.STRIKETHROUGH, Ansi.ansi().a(Ansi.Attribute.STRIKETHROUGH_ON).toString()); replacements.put(ChatColor.UNDERLINE, Ansi.ansi().a(Ansi.Attribute.UNDERLINE).toString()); replacements.put(ChatColor.ITALIC, Ansi.ansi().a(Ansi.Attribute.ITALIC).toString()); replacements.put(ChatColor.RESET, Ansi.ansi().a(Ansi.Attribute.RESET).toString()); }
private int runEclipseCompiler(String[] output, List<String> cmdline) { try { List<String> final_cmdline = new LinkedList<String>(cmdline); // remove compiler name from argument list final_cmdline.remove(0); Class eclipseCompiler = Class.forName(ECLIPSE_COMPILER_CLASS); Method compileMethod = eclipseCompiler.getMethod("main", new Class[] {String[].class}); final_cmdline.add(0, "-noExit"); final_cmdline.add(0, "-progress"); final_cmdline.add(0, "-verbose"); File _logfile = new File(this.idata.getInstallPath(), "compile-" + getName() + ".log"); if (Debug.isTRACE()) { final_cmdline.add(0, _logfile.getPath()); final_cmdline.add(0, "-log"); } // get log files / determine results... try { // capture stdout and stderr PrintStream _orgStdout = System.out; PrintStream _orgStderr = System.err; int error_count = 0; try { ByteArrayOutputStream outStream = new ByteArrayOutputStream(); EclipseStdOutHandler ownStdout = new EclipseStdOutHandler(outStream, this.listener); System.setOut(ownStdout); ByteArrayOutputStream errStream = new ByteArrayOutputStream(); EclipseStdErrHandler ownStderr = new EclipseStdErrHandler(errStream, this.listener); System.setErr(ownStderr); compileMethod.invoke( null, new Object[] {final_cmdline.toArray(new String[final_cmdline.size()])}); // TODO: launch thread which updates the progress output[0] = outStream.toString(); output[1] = errStream.toString(); error_count = ownStderr.getErrorCount(); // for debugging: write output to log files if (error_count > 0 || Debug.isTRACE()) { File _out = new File(_logfile.getPath() + ".stdout"); FileOutputStream _fout = new FileOutputStream(_out); _fout.write(outStream.toByteArray()); _fout.close(); _out = new File(_logfile.getPath() + ".stderr"); _fout = new FileOutputStream(_out); _fout.write(errStream.toByteArray()); _fout.close(); } } finally { System.setOut(_orgStdout); System.setErr(_orgStderr); } if (error_count == 0) { return 0; } // TODO: construct human readable error message from log this.listener.emitNotification("Compiler reported " + error_count + " errors"); return 1; } catch (FileNotFoundException fnfe) { this.listener.emitError("error compiling", fnfe.getMessage()); return -1; } catch (IOException ioe) { this.listener.emitError("error compiling", ioe.getMessage()); return -1; } } catch (ClassNotFoundException cnfe) { output[0] = "error getting eclipse compiler"; output[1] = cnfe.getMessage(); return -1; } catch (NoSuchMethodException nsme) { output[0] = "error getting eclipse compiler method"; output[1] = nsme.getMessage(); return -1; } catch (IllegalAccessException iae) { output[0] = "error calling eclipse compiler"; output[1] = iae.getMessage(); return -1; } catch (InvocationTargetException ite) { output[0] = "error calling eclipse compiler"; output[1] = ite.getMessage(); return -1; } }
/** * preprocesses a pde file and writes out a java file * * @return the class name of the exported Java */ private String write(final String program, final PrintWriter stream) throws SketchException, RecognitionException, TokenStreamException { // Match on the uncommented version, otherwise code inside comments used // http://code.google.com/p/processing/issues/detail?id=1404 String uncomment = scrubComments(program); PdeRecognizer parser = createParser(program); if (PUBLIC_CLASS.matcher(uncomment).find()) { try { final PrintStream saved = System.err; try { // throw away stderr for this tentative parse System.setErr(new PrintStream(new ByteArrayOutputStream())); parser.javaProgram(); } finally { System.setErr(saved); } setMode(Mode.JAVA); } catch (Exception e) { // I can't figure out any other way of resetting the parser. parser = createParser(program); parser.pdeProgram(); } } else if (FUNCTION_DECL.matcher(uncomment).find()) { setMode(Mode.ACTIVE); parser.activeProgram(); } else { parser.pdeProgram(); } // set up the AST for traversal by PdeEmitter // ASTFactory factory = new ASTFactory(); AST parserAST = parser.getAST(); AST rootNode = factory.create(ROOT_ID, "AST ROOT"); rootNode.setFirstChild(parserAST); makeSimpleMethodsPublic(rootNode); // unclear if this actually works, but it's worth a shot // // ((CommonAST)parserAST).setVerboseStringConversion( // true, parser.getTokenNames()); // (made to use the static version because of jikes 1.22 warning) BaseAST.setVerboseStringConversion(true, parser.getTokenNames()); final String className; if (mode == Mode.JAVA) { // if this is an advanced program, the classname is already defined. className = getFirstClassName(parserAST); } else { className = this.name; } // if 'null' was passed in for the name, but this isn't // a 'java' mode class, then there's a problem, so punt. // if (className == null) return null; // debug if (false) { final StringWriter buf = new StringWriter(); final PrintWriter bufout = new PrintWriter(buf); writeDeclaration(bufout, className); new PdeEmitter(this, bufout).print(rootNode); writeFooter(bufout, className); debugAST(rootNode, true); System.err.println(buf.toString()); } writeDeclaration(stream, className); new PdeEmitter(this, stream).print(rootNode); writeFooter(stream, className); // if desired, serialize the parse tree to an XML file. can // be viewed usefully with Mozilla or IE if (Preferences.getBoolean("preproc.output_parse_tree")) { writeParseTree("parseTree.xml", parserAST); } return className; }
public static void main(String argv[]) { System.setErr(System.out); try { UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); } catch (Exception e) { try { UIManager.setLookAndFeel("javax.swing.plaf.windows.WindowsLookAndFeel"); } catch (Exception e1) { try { UIManager.setLookAndFeel("javax.swing.plaf.motif.MotifLookAndFeel"); } catch (Exception e2) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e3) { } } } } UIManager.put("TextField.background", new Color(255, 255, 255)); String strCreateTables = null, strRunTests = null, strCleanUp = null, strCreateProc = null, strCreateResult = null, strDropResult = null, strLogLevel = null; String strTPCCRun = null, strTPCCLoad = null; BenchMain.bench = new BenchMain(); bench.m_bInApplet = false; if (argv.length > 0) for (int nArg = 0; nArg < argv.length; nArg++) { if (argv[nArg].toUpperCase().startsWith("URL=")) bench.m_strURL = argv[nArg].substring(argv[nArg].indexOf("=") + 1); else if (argv[nArg].toUpperCase().startsWith("USER="******"=") + 1); else if (argv[nArg].toUpperCase().startsWith("PASSWORD="******"=") + 1); else if (argv[nArg].toUpperCase().startsWith("DRIVER=")) bench.m_strDriver = argv[nArg].substring(argv[nArg].indexOf("=") + 1); else if (argv[nArg].toUpperCase().startsWith("DRIVERTYPE=")) bench.m_nDriverType = Integer.valueOf(argv[nArg].substring(argv[nArg].indexOf("=") + 1)).intValue(); else if (argv[nArg].toUpperCase().startsWith("CREATETABLES=")) strCreateTables = argv[nArg].substring(argv[nArg].indexOf("=") + 1); else if (argv[nArg].toUpperCase().startsWith("RUNTEST=")) strRunTests = argv[nArg].substring(argv[nArg].indexOf("=") + 1); else if (argv[nArg].toUpperCase().startsWith("CLEANUP")) strCleanUp = argv[nArg]; else if (argv[nArg].toUpperCase().startsWith("CREATEPROC")) strCreateProc = argv[nArg]; else if (argv[nArg].toUpperCase().startsWith("CREATERESULT")) strCreateResult = argv[nArg]; else if (argv[nArg].toUpperCase().startsWith("DROPRESULT")) strDropResult = argv[nArg]; else if (argv[nArg].toUpperCase().startsWith("LOGLEVEL=")) strLogLevel = argv[nArg].substring(argv[nArg].indexOf("=") + 1); else if (argv[nArg].toUpperCase().startsWith("TPCCRUN=")) strTPCCRun = argv[nArg].substring(argv[nArg].indexOf("=") + 1); else if (argv[nArg].toUpperCase().startsWith("TPCCLOAD=")) strTPCCLoad = argv[nArg].substring(argv[nArg].indexOf("=") + 1); } bench.m_bInApplet = false; try { if (strCreateTables != null || strRunTests != null || strCleanUp != null || strCreateProc != null || strCreateResult != null || strDropResult != null || strTPCCRun != null || strTPCCLoad != null) { // batch TextProgress progress = new TextProgress(); Bench.BenchPanel pane = new Bench.BenchPanel( bench.m_strDriver, bench.m_strURL, bench.m_strUserName, bench.m_strPassword, bench.m_nDriverType); Bench.Logger new_log = new Bench.Logger() { int m_nLogLevel = 0; public synchronized void log(String strMessage, int nLevel) { if (nLevel <= m_nLogLevel) System.out.print(strMessage); } public synchronized void taskDone() { notify(); } public synchronized void waitOn() throws InterruptedException { wait(); } public synchronized void setLogLevel(int nNewLogLevel) { m_nLogLevel = nNewLogLevel; } public synchronized int getLogLevel() { return m_nLogLevel; } }; if (strLogLevel != null) new_log.setLogLevel(Integer.valueOf(strLogLevel).intValue()); pane.setLogger(new_log); if (strCreateTables != null) { StringTokenizer createTokens = new StringTokenizer(strCreateTables, ",;/"); int nBranchCount = 10, nTellerCount = 100, nAccountCount = 1000; if (createTokens.hasMoreTokens()) nBranchCount = Integer.valueOf(createTokens.nextToken()).intValue(); if (createTokens.hasMoreTokens()) nTellerCount = Integer.valueOf(createTokens.nextToken()).intValue(); if (createTokens.hasMoreTokens()) nAccountCount = Integer.valueOf(createTokens.nextToken()).intValue(); // FIXME pane.setMaxTableLimits(nBranchCount,nTellerCount,nAccountCount); // FIXME pane.doCreateTables(true,true,true,true,true,true,true,true); } // FIXME if(strCreateProc != null) // pane.doLoadProcedures(pane.pool.getConnection(0)); if (strRunTests != null) { int nNumThreads = 1, nNumRuns = 100, nTestType = 1, nWaitMinutes = -1; boolean bTrans = false, bQuery = true; StringTokenizer runTokens = new StringTokenizer(strRunTests, ",;/"); if (runTokens.hasMoreTokens()) nNumThreads = Integer.valueOf(runTokens.nextToken()).intValue(); if (runTokens.hasMoreTokens()) nNumRuns = Integer.valueOf(runTokens.nextToken()).intValue(); if (runTokens.hasMoreTokens()) bTrans = runTokens.nextToken().toUpperCase().equals("TRUE"); if (runTokens.hasMoreTokens()) bQuery = runTokens.nextToken().toUpperCase().equals("TRUE"); if (runTokens.hasMoreTokens()) nTestType = Integer.valueOf(runTokens.nextToken()).intValue(); if (runTokens.hasMoreTokens()) nWaitMinutes = Integer.valueOf(runTokens.nextToken()).intValue(); // FIXME pane.doRunTests(nNumThreads,nNumRuns,nWaitMinutes,nTestType == // 1,nTestType == 2,nTestType == 3,bTrans,bQuery); } // FIXME if(strCleanUp != null) pane.doCleanUp(pane.pool.getConnection(0), // true,true,true,true); if (strDropResult != null) pane.doDropResult(); // FIXME if(strCreateResult != null) pane.doCreateResult(); // ========TPCCTest // if(strTPCCLoad != null) { // int n_ware = 1; // StringTokenizer runTokens = new StringTokenizer(strTPCCLoad,",;/"); // // System.out.println("tpcload = " + strTPCCLoad); // if(runTokens.hasMoreTokens()) { // n_ware = Integer.valueOf(runTokens.nextToken()).intValue(); // // System.out.println("N_ware = " + n_ware); // } // pane.doTpccLoadData(pane.pool.getConnection(0), // n_ware,Bench.TPCCBench.DIST_PER_WARE,Bench.TPCCBench.CUST_PER_DIST,Bench.TPCCBench.MAXITEMS,Bench.TPCCBench.ORD_PER_DIST); // } // if(strTPCCRun != null) { // int n_rounds = 1, local_w_id = 1, n_ware = 1, n_threads = 1; // StringTokenizer runTokens = new StringTokenizer(strTPCCRun,",;/"); // if(runTokens.hasMoreTokens()) // n_rounds = Integer.valueOf(runTokens.nextToken()).intValue(); // if(runTokens.hasMoreTokens()) // local_w_id = Integer.valueOf(runTokens.nextToken()).intValue(); // if(runTokens.hasMoreTokens()) // n_ware = Integer.valueOf(runTokens.nextToken()).intValue(); // if(runTokens.hasMoreTokens()) // n_threads = Integer.valueOf(runTokens.nextToken()).intValue(); // pane.doTpccRun(n_threads, n_rounds,local_w_id,n_ware); // } pane.closeConnection(true); System.exit(0); } } catch (Exception e) { System.out.println(e.getMessage()); } // go interactive JFrame frame = new JFrame("JBench - Generic JDBC Benchmark Utility"); WindowListener l = new WindowAdapter() { public void windowClosing(WindowEvent e) { BenchMain.bench.m_pane.closeConnection(true); System.exit(0); } }; frame.addWindowListener(l); bench.m_parentFrame = frame; bench.init(); frame.getContentPane().add(bench); frame.setSize(675, 400); frame.validate(); frame.setVisible(true); }
@After public void cleanUpStreams() { System.setOut(null); System.setErr(null); }
public static void main(String[] arg) { Vector<Boolean> containerTypes = new Vector<Boolean>(); Vector<String> environmentTypes = new Vector<String>(); Vector<String> testNames = new Vector<String>(); Vector<Class> argTests = new Vector<Class>(); Class[] tests = {}; for (int i = 0; i < arg.length; i++) { if (arg[i].startsWith("-")) { switch (arg[i].charAt(1)) { case 'c': String cType = arg[++i]; if (cType.equalsIgnoreCase(NODE)) containerTypes.add(true); else if (cType.equalsIgnoreCase(WHOLE)) containerTypes.add(false); else if (cType.equalsIgnoreCase(ALL)) { containerTypes.add(true); containerTypes.add(false); } else usage(); break; case 'e': String eType = arg[++i]; if (eType.equalsIgnoreCase(NONE) || eType.equalsIgnoreCase(TXN) || eType.equalsIgnoreCase(CDS)) environmentTypes.add(eType); else if (eType.equalsIgnoreCase(ALL)) { environmentTypes.add(NONE); environmentTypes.add(TXN); environmentTypes.add(CDS); } else usage(); break; default: usage(); } } else testNames.add(arg[i]); } if (containerTypes.size() == 0) { containerTypes.add(true); containerTypes.add(false); } if (environmentTypes.size() == 0) { environmentTypes.add(NONE); environmentTypes.add(TXN); environmentTypes.add(CDS); } // Get the tests to run if (testNames.size() != 0) { for (int i = 0; i < testNames.size(); i++) { Class testClass = null; try { testClass = Class.forName("dbxmltest." + testNames.get(i)); } catch (ClassNotFoundException e) { System.out.println("Skipping test " + testClass + ". Test not found."); } if (testClass != null) argTests.add(testClass); } if (argTests.size() != 0) tests = argTests.toArray(tests); else tests = allTests; } else tests = allTests; // Run the tests int failureCount = 0; boolean success = true; File errorFile = new File(getEnvironmentPath() + "/errorLog.txt"); try { if (errorFile.exists()) errorFile.delete(); errorFile.createNewFile(); System.setErr(new PrintStream(new FileOutputStream(errorFile))); } catch (IOException e) { } for (int j = 0; j < environmentTypes.size(); j++) { System.out.println("Testing env type " + environmentTypes.get(j)); for (int i = 0; i < containerTypes.size(); i++) { System.out.println("\tContainer type " + (containerTypes.get(i) ? "node" : "whole")); NODE_CONTAINER = containerTypes.get(i); ENV_TYPE = environmentTypes.get(j); Result res = org.junit.runner.JUnitCore.runClasses(tests); if (!res.wasSuccessful()) { System.err.println( "Number of failures for environment type " + ENV_TYPE + " and is node container " + NODE_CONTAINER + " are " + res.getFailureCount()); List<Failure> testFailures = res.getFailures(); ListIterator<Failure> iter = testFailures.listIterator(); while (iter.hasNext()) { Failure fail = iter.next(); System.err.println(fail.getDescription()); Throwable e = fail.getException(); if (e != null) e.printStackTrace(); else System.err.println(fail.getTrace()); } failureCount += res.getFailureCount(); success = res.wasSuccessful(); } } } if (success) System.out.println("All tests successful."); else System.out.println(failureCount + " tests failed."); System.out.println("Failures printed to " + errorFile.getName()); }
public static void main(String[] args) { // Main frame = new JFrame("Java Playground"); frame.setSize(640, 480); // Make sure the divider is properly resized frame.addComponentListener( new ComponentAdapter() { public void componentResized(ComponentEvent c) { splitter.setDividerLocation(defaultSliderPosition); } }); // Make sure the JVM is reset on close frame.addWindowListener( new WindowAdapter() { public void windowClosed(WindowEvent w) { new FrameAction().kill(); } }); // Setting up the keybinding // Ctrl+r or Cmd+r -> compile/run bind(KeyEvent.VK_R); // Ctrl+k or Cmd+k -> kill JVM bind(KeyEvent.VK_K); // Ctrl+e or Cmd+e -> console bind(KeyEvent.VK_E); // Save, New file, Open file, Print. // Currently UNUSED until I figure out how normal java files and playground files will // interface. bind(KeyEvent.VK_S); bind(KeyEvent.VK_N); bind(KeyEvent.VK_O); // Rebound to options menu for now bind(KeyEvent.VK_P); // Ctrl+h or Cmd+h -> help menu bind(KeyEvent.VK_SLASH); // Binds the keys to the action defined in the FrameAction class. frame.getRootPane().getActionMap().put("console", new FrameAction()); // The main panel for typing code in. text = new JTextPane(); textScroll = new JScrollPane(text); textScroll.setBorder(null); textScroll.setPreferredSize(new Dimension(640, 480)); // Document with syntax highlighting. Currently unfinished. doc = text.getStyledDocument(); doc.addDocumentListener( new DocumentListener() { public void changedUpdate(DocumentEvent d) {} public void insertUpdate(DocumentEvent d) {} public void removeUpdate(DocumentEvent d) {} }); ((AbstractDocument) doc).setDocumentFilter(new NewLineFilter()); // The output log; a combination compiler warning/error/runtime error/output log. outputText = new JTextPane(); outputScroll = new JScrollPane(outputText); outputScroll.setBorder(null); // "Constant" for the error font error = new SimpleAttributeSet(); error.addAttribute(StyleConstants.CharacterConstants.Italic, Boolean.TRUE); error.addAttribute(StyleConstants.Foreground, Color.RED); // "Constant" for the warning message font warning = new SimpleAttributeSet(); warning.addAttribute(StyleConstants.CharacterConstants.Italic, Boolean.TRUE); warning.addAttribute(StyleConstants.Foreground, Color.PINK); // "Constant" for the debugger error font progErr = new SimpleAttributeSet(); progErr.addAttribute(StyleConstants.Foreground, Color.BLUE); // Print streams to redirect System.out and System.err. out = new TextOutputStream(outputText, null); err = new TextOutputStream(outputText, error); System.setOut(new PrintStream(out)); System.setErr(new PrintStream(err)); // Sets up the output log outputText.setEditable(false); outputScroll.setVisible(true); // File input/output setup chooser = new JFileChooser(); // Setting up miscellaneous stuff compiler = ToolProvider.getSystemJavaCompiler(); JVMrunning = false; redirectErr = null; redirectOut = null; redirectIn = null; // Options initial values defaultSliderPosition = .8; // Sets up the splitter pane and opens the program up splitter = new JSplitPane(JSplitPane.VERTICAL_SPLIT, textScroll, outputScroll); consoleDisplayed = false; splitter.remove(outputScroll); // Initially hides terminal until it is needed splitter.setOneTouchExpandable(true); frame.add(splitter); frame.setVisible(true); // Sets the divider to the proper one, for debugging // splitter.setDividerLocation(.8); }