List of usage examples for org.apache.commons.io LineIterator hasNext
public boolean hasNext()
Reader
has more lines. From source file:org.aludratest.service.gitclient.GitClient.java
private void parseLogItem(LineIterator iterator, LogData data) { String commit = null;/*from w w w .j a va 2 s . c o m*/ String merge = null; String author = null; String date = null; // parse headers while (iterator.hasNext()) { String line = iterator.next(); if (line.startsWith("commit ")) { commit = parseKeyValuePair("commit ", line); } else if (line.startsWith("Merge: ")) { merge = parseKeyValuePair("Merge: ", line); } else if (line.startsWith("Author: ")) { author = parseKeyValuePair("Author: ", line); } else if (line.startsWith("Date: ")) { date = parseKeyValuePair("Date: ", line); } else if (StringUtil.isEmpty(line)) { break; } else { LOGGER.warn("Unrecognized log line: " + line); } } // parse message String message = parseMessage(iterator); // add log item LogItemData item = new LogItemData(commit, merge, author, date, message); data.getItems().add(item); }
From source file:org.aludratest.service.gitclient.GitClient.java
private String parseMessage(LineIterator iterator) { if (!iterator.hasNext()) { throw new TechnicalException("Expected commit message not available"); }/*from w ww. j a va 2s . com*/ StringBuilder message = new StringBuilder(); while (iterator.hasNext()) { String line = iterator.next(); if (!StringUtil.isEmpty(line)) { if (message.length() > 0) { message.append(LF); } message.append(line.trim()); } else { return message.toString(); } } return message.toString(); }
From source file:org.apache.accumulo.test.AuditMessageIT.java
/** * Returns a List of Audit messages that have been grep'd out of the MiniAccumuloCluster output. * * @param stepName// w w w. ja va 2 s .co m * A unique name for the test being executed, to identify the System.out messages. * @return A List of the Audit messages, sorted (so in chronological order). */ private ArrayList<String> getAuditMessages(String stepName) throws IOException { // ACCUMULO-3144 Make sure we give the processes enough time to flush the write buffer try { Thread.sleep(2000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new IOException("Interrupted waiting for data to be flushed to output streams"); } for (MiniAccumuloClusterImpl.LogWriter lw : getCluster().getLogWriters()) { lw.flush(); } // Grab the audit messages System.out.println("Start of captured audit messages for step " + stepName); ArrayList<String> result = new ArrayList<String>(); File[] files = getCluster().getConfig().getLogDir().listFiles(); assertNotNull(files); for (File file : files) { // We want to grab the files called .out if (file.getName().contains(".out") && file.isFile() && file.canRead()) { LineIterator it = FileUtils.lineIterator(file, UTF_8.name()); try { while (it.hasNext()) { String line = it.nextLine(); if (line.matches(".* \\[" + AuditedSecurityOperation.AUDITLOG + "\\s*\\].*")) { // Only include the message if startTimestamp is null. or the message occurred after the startTimestamp value if ((lastAuditTimestamp == null) || (line.substring(0, 23).compareTo(lastAuditTimestamp) > 0)) result.add(line); } } } finally { LineIterator.closeQuietly(it); } } } Collections.sort(result); for (String s : result) { System.out.println(s); } System.out.println("End of captured audit messages for step " + stepName); if (result.size() > 0) lastAuditTimestamp = (result.get(result.size() - 1)).substring(0, 23); return result; }
From source file:org.apache.accumulo.test.AuditMessageIT.java
@Test public void testImportExportOperationsAudits() throws AccumuloSecurityException, AccumuloException, TableExistsException, TableNotFoundException, IOException, InterruptedException { conn.securityOperations().createLocalUser(AUDIT_USER_1, new PasswordToken(PASSWORD)); conn.securityOperations().grantSystemPermission(AUDIT_USER_1, SystemPermission.SYSTEM); conn.securityOperations().changeUserAuthorizations(AUDIT_USER_1, auths); grantEverySystemPriv(conn, AUDIT_USER_1); // Connect as Audit User and do a bunch of stuff. // Start testing activities here auditConnector = getCluster().getConnector(AUDIT_USER_1, new PasswordToken(PASSWORD)); auditConnector.tableOperations().create(OLD_TEST_TABLE_NAME); // Insert some play data BatchWriter bw = auditConnector.createBatchWriter(OLD_TEST_TABLE_NAME, new BatchWriterConfig()); Mutation m = new Mutation("myRow"); m.put("cf1", "cq1", "v1"); m.put("cf1", "cq2", "v3"); bw.addMutation(m);// www .ja va 2 s . c om bw.close(); // Prepare to export the table File exportDir = new File(getCluster().getConfig().getDir().toString() + "/export"); auditConnector.tableOperations().offline(OLD_TEST_TABLE_NAME); auditConnector.tableOperations().exportTable(OLD_TEST_TABLE_NAME, exportDir.toString()); // We've exported the table metadata to the MiniAccumuloCluster root dir. Grab the .rf file path to re-import it File distCpTxt = new File(exportDir.toString() + "/distcp.txt"); File importFile = null; LineIterator it = FileUtils.lineIterator(distCpTxt, UTF_8.name()); // Just grab the first rf file, it will do for now. String filePrefix = "file:"; try { while (it.hasNext() && importFile == null) { String line = it.nextLine(); if (line.matches(".*\\.rf")) { importFile = new File(line.replaceFirst(filePrefix, "")); } } } finally { LineIterator.closeQuietly(it); } FileUtils.copyFileToDirectory(importFile, exportDir); auditConnector.tableOperations().importTable(NEW_TEST_TABLE_NAME, exportDir.toString()); // Now do a Directory (bulk) import of the same data. auditConnector.tableOperations().create(THIRD_TEST_TABLE_NAME); File failDir = new File(exportDir + "/tmp"); assertTrue(failDir.mkdirs() || failDir.isDirectory()); auditConnector.tableOperations().importDirectory(THIRD_TEST_TABLE_NAME, exportDir.toString(), failDir.toString(), false); auditConnector.tableOperations().online(OLD_TEST_TABLE_NAME); // Stop testing activities here ArrayList<String> auditMessages = getAuditMessages("testImportExportOperationsAudits"); assertEquals(1, findAuditMessage(auditMessages, String .format(AuditedSecurityOperation.CAN_CREATE_TABLE_AUDIT_TEMPLATE, OLD_TEST_TABLE_NAME)) .size()); assertEquals(1, findAuditMessage(auditMessages, String.format(AuditedSecurityOperation.CAN_ONLINE_OFFLINE_TABLE_AUDIT_TEMPLATE, "offlineTable", OLD_TEST_TABLE_NAME)).size()); assertEquals(1, findAuditMessage(auditMessages, String.format(AuditedSecurityOperation.CAN_EXPORT_AUDIT_TEMPLATE, OLD_TEST_TABLE_NAME, exportDir.toString())).size()); assertEquals(1, findAuditMessage(auditMessages, String.format(AuditedSecurityOperation.CAN_IMPORT_AUDIT_TEMPLATE, NEW_TEST_TABLE_NAME, filePrefix + exportDir.toString())).size()); assertEquals(1, findAuditMessage(auditMessages, String .format(AuditedSecurityOperation.CAN_CREATE_TABLE_AUDIT_TEMPLATE, THIRD_TEST_TABLE_NAME)) .size()); assertEquals(1, findAuditMessage(auditMessages, String.format(AuditedSecurityOperation.CAN_BULK_IMPORT_AUDIT_TEMPLATE, THIRD_TEST_TABLE_NAME, filePrefix + exportDir.toString(), filePrefix + failDir.toString())).size()); assertEquals(1, findAuditMessage(auditMessages, String.format(AuditedSecurityOperation.CAN_ONLINE_OFFLINE_TABLE_AUDIT_TEMPLATE, "onlineTable", OLD_TEST_TABLE_NAME)).size()); }
From source file:org.apache.accumulo.test.AuditMessageTest.java
/** * Returns a List of Audit messages that have been grep'd out of the MiniAccumuloCluster output. * //w w w . j a v a2 s .com * @param stepName * A unique name for the test being executed, to identify the System.out messages. * @return A List of the Audit messages, sorted (so in chronological order). */ private ArrayList<String> getAuditMessages(String stepName) throws IOException { for (MiniAccumuloCluster.LogWriter lw : logWriters) { lw.flush(); } // Grab the audit messages System.out.println("Start of captured audit messages for step " + stepName); ArrayList<String> result = new ArrayList<String>(); for (File file : logDir.listFiles()) { // We want to grab the files called .out if (file.getName().contains(".out") && file.isFile() && file.canRead()) { LineIterator it = FileUtils.lineIterator(file, Constants.UTF8.name()); try { while (it.hasNext()) { String line = it.nextLine(); if (line.matches(".* \\[" + AuditedSecurityOperation.AUDITLOG + "\\s*\\].*")) { // Only include the message if startTimestamp is null. or the message occurred after the startTimestamp value if ((lastAuditTimestamp == null) || (line.substring(0, 23).compareTo(lastAuditTimestamp) > 0)) result.add(line); } } } finally { LineIterator.closeQuietly(it); } } } Collections.sort(result); for (String s : result) { System.out.println(s); } System.out.println("End of captured audit messages for step " + stepName); if (result.size() > 0) lastAuditTimestamp = (result.get(result.size() - 1)).substring(0, 23); return result; }
From source file:org.apache.accumulo.test.AuditMessageTest.java
@Test(timeout = 60 * 1000) public void testImportExportOperationsAudits() throws AccumuloSecurityException, AccumuloException, TableExistsException, TableNotFoundException, IOException, InterruptedException { conn.securityOperations().createLocalUser(AUDIT_USER_1, new PasswordToken(PASSWORD)); conn.securityOperations().grantSystemPermission(AUDIT_USER_1, SystemPermission.SYSTEM); conn.securityOperations().changeUserAuthorizations(AUDIT_USER_1, auths); grantEverySystemPriv(conn, AUDIT_USER_1); // Connect as Audit User and do a bunch of stuff. // Start testing activities here auditConnector = accumulo.getConnector(AUDIT_USER_1, PASSWORD); auditConnector.tableOperations().create(OLD_TEST_TABLE_NAME); // Insert some play data BatchWriter bw = auditConnector.createBatchWriter(OLD_TEST_TABLE_NAME, new BatchWriterConfig()); Mutation m = new Mutation("myRow"); m.put("cf1", "cq1", "v1"); m.put("cf1", "cq2", "v3"); bw.addMutation(m);/*from w w w. ja v a2s . com*/ bw.close(); // Prepare to export the table File exportDir = new File(accumulo.getConfig().getDir().toString() + "/export"); auditConnector.tableOperations().offline(OLD_TEST_TABLE_NAME); auditConnector.tableOperations().exportTable(OLD_TEST_TABLE_NAME, exportDir.toString()); // We've exported the table metadata to the MiniAccumuloCluster root dir. Grab the .rf file path to re-import it File distCpTxt = new File(exportDir.toString() + "/distcp.txt"); File importFile = null; LineIterator it = FileUtils.lineIterator(distCpTxt, Constants.UTF8.name()); // Just grab the first rf file, it will do for now. String filePrefix = "file:"; try { while (it.hasNext() && importFile == null) { String line = it.nextLine(); if (line.matches(".*\\.rf")) { importFile = new File(line.replaceFirst(filePrefix, "")); } } } finally { LineIterator.closeQuietly(it); } FileUtils.copyFileToDirectory(importFile, exportDir); auditConnector.tableOperations().importTable(NEW_TEST_TABLE_NAME, exportDir.toString()); // Now do a Directory (bulk) import of the same data. auditConnector.tableOperations().create(THIRD_TEST_TABLE_NAME); File failDir = new File(exportDir + "/tmp"); failDir.mkdirs(); auditConnector.tableOperations().importDirectory(THIRD_TEST_TABLE_NAME, exportDir.toString(), failDir.toString(), false); auditConnector.tableOperations().online(OLD_TEST_TABLE_NAME); // Stop testing activities here ArrayList<String> auditMessages = getAuditMessages("testImportExportOperationsAudits"); assertEquals(1, findAuditMessage(auditMessages, String .format(AuditedSecurityOperation.CAN_CREATE_TABLE_AUDIT_TEMPLATE, OLD_TEST_TABLE_NAME)) .size()); assertEquals(1, findAuditMessage(auditMessages, String.format(AuditedSecurityOperation.CAN_ONLINE_OFFLINE_TABLE_AUDIT_TEMPLATE, "offlineTable", OLD_TEST_TABLE_NAME)).size()); assertEquals(1, findAuditMessage(auditMessages, String.format(AuditedSecurityOperation.CAN_EXPORT_AUDIT_TEMPLATE, OLD_TEST_TABLE_NAME, exportDir.toString())).size()); assertEquals(1, findAuditMessage(auditMessages, String.format(AuditedSecurityOperation.CAN_IMPORT_AUDIT_TEMPLATE, NEW_TEST_TABLE_NAME, exportDir.toString())).size()); assertEquals(1, findAuditMessage(auditMessages, String .format(AuditedSecurityOperation.CAN_CREATE_TABLE_AUDIT_TEMPLATE, THIRD_TEST_TABLE_NAME)) .size()); assertEquals(1, findAuditMessage(auditMessages, String.format(AuditedSecurityOperation.CAN_BULK_IMPORT_AUDIT_TEMPLATE, THIRD_TEST_TABLE_NAME, filePrefix + exportDir.toString(), filePrefix + failDir.toString())).size()); assertEquals(1, findAuditMessage(auditMessages, String.format(AuditedSecurityOperation.CAN_ONLINE_OFFLINE_TABLE_AUDIT_TEMPLATE, "onlineTable", OLD_TEST_TABLE_NAME)).size()); }
From source file:org.apache.camel.component.exec.ExecutableJavaProgram.java
public static void main(String[] args) throws Exception { if (args == null || args.length == 0) { throw new IllegalArgumentException("Empty args are not allowed."); }/* w ww . j ava 2s .co m*/ if (args[0].equals(PRINT_IN_STDOUT)) { System.out.print(PRINT_IN_STDOUT); System.exit(0); } else if (args[0].equals(PRINT_ARGS_STDOUT)) { for (int i = 0; i < args.length; i++) { String arg = args[i]; System.out.println(i + arg); } System.exit(0); } else if (args[0].equals(PRINT_IN_STDERR)) { System.err.print(PRINT_IN_STDERR); System.exit(1); } else if (args[0].equals(String.valueOf(EXIT_WITH_VALUE_0))) { System.exit(0); } else if (args[0].equals(String.valueOf(EXIT_WITH_VALUE_1))) { System.exit(1); } else if (args[0].equals(THREADS)) { Thread stderrPrinterThread = new Thread(new ErrPrinter()); Thread stdoutPrinterThread = new Thread(new OutPrinter()); stderrPrinterThread.start(); stdoutPrinterThread.start(); stderrPrinterThread.join(); stdoutPrinterThread.join(); } else if (args[0].equals(SLEEP_WITH_TIMEOUT)) { doSleep(); System.exit(0); } else if (READ_INPUT_LINES_AND_PRINT_THEM.equals(args[0])) { LineIterator iterator = IOUtils.lineIterator(System.in, "UTF-8"); while (iterator.hasNext()) { String line = iterator.nextLine(); System.out.println(line); } } else { System.out.println(args[0]); } }
From source file:org.apache.http.nio.client.methods.TestZeroCopy.java
@Test public void testTwoWayZeroCopy() throws Exception { this.serverBootstrap.registerHandler("*", new BasicAsyncRequestHandler(new TestHandler(false))); final HttpHost target = start(); final File tmpdir = FileUtils.getTempDirectory(); this.tmpfile = new File(tmpdir, "dst.test"); final TestZeroCopyPost httppost = new TestZeroCopyPost(target.toURI() + "/bounce", false); final TestZeroCopyConsumer consumer = new TestZeroCopyConsumer(this.tmpfile); final Future<Integer> future = this.httpclient.execute(httppost, consumer, null); final Integer status = future.get(); Assert.assertNotNull(status);/*from w w w . ja v a 2 s . com*/ Assert.assertEquals(HttpStatus.SC_OK, status.intValue()); final InputStream instream = new FileInputStream(this.tmpfile); try { final LineIterator it = IOUtils.lineIterator(instream, ASCII.name()); int count = 0; while (it.hasNext()) { final String line = it.next(); final int i = count % TEXT.length; final String expected = TEXT[i]; Assert.assertEquals(expected, line); count++; } } finally { instream.close(); } }
From source file:org.apache.http.nio.client.methods.TestZeroCopy.java
@Test public void testZeroCopyFallback() throws Exception { this.serverBootstrap.registerHandler("*", new BasicAsyncRequestHandler(new TestHandler(true))); final HttpHost target = start(); final File tmpdir = FileUtils.getTempDirectory(); this.tmpfile = new File(tmpdir, "dst.test"); final TestZeroCopyPost httppost = new TestZeroCopyPost(target.toURI() + "/bounce", true); final TestZeroCopyConsumer consumer = new TestZeroCopyConsumer(this.tmpfile); final Future<Integer> future = this.httpclient.execute(httppost, consumer, null); final Integer status = future.get(); Assert.assertNotNull(status);//from w ww .j a va 2 s .c o m Assert.assertEquals(HttpStatus.SC_OK, status.intValue()); final InputStream instream = new FileInputStream(this.tmpfile); try { final LineIterator it = IOUtils.lineIterator(instream, ASCII.name()); int count = 0; while (it.hasNext()) { final String line = it.next(); final int i = count % TEXT.length; final String expected = TEXT[i]; Assert.assertEquals(expected, line); count++; } } finally { instream.close(); } }
From source file:org.apache.ignite.internal.client.impl.ClientPropertiesConfigurationSelfTest.java
/** * Uncomment properties.//from ww w .j av a2 s. c om * * @param url Source to uncomment client properties for. * @return Temporary file with uncommented client properties. * @throws IOException In case of IO exception. */ private File uncommentProperties(URL url) throws IOException { InputStream in = url.openStream(); assertNotNull(in); LineIterator it = IOUtils.lineIterator(in, "UTF-8"); Collection<String> lines = new ArrayList<>(); while (it.hasNext()) lines.add(it.nextLine().replace("#ignite.client.", "ignite.client.")); IgniteUtils.closeQuiet(in); File tmp = File.createTempFile(UUID.randomUUID().toString(), "properties"); tmp.deleteOnExit(); FileUtils.writeLines(tmp, lines); return tmp; }