Example usage for org.apache.commons.io LineIterator hasNext

List of usage examples for org.apache.commons.io LineIterator hasNext

Introduction

In this page you can find the example usage for org.apache.commons.io LineIterator hasNext.

Prototype

public boolean hasNext() 

Source Link

Document

Indicates whether the Reader has more lines.

Usage

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;
}