Example usage for org.apache.commons.vfs FileObject close

List of usage examples for org.apache.commons.vfs FileObject close

Introduction

In this page you can find the example usage for org.apache.commons.vfs FileObject close.

Prototype

public void close() throws FileSystemException;

Source Link

Document

Closes this file, and its content.

Usage

From source file:functionalTests.vfsprovider.TestProActiveProviderAutoclosing.java

@Test
public void testRandomReadOnlyAccessOpenAutocloseRead() throws Exception {
    final FileObject fo = openFileObject(TEST_FILENAME);
    final RandomAccessContent rac = openRandomAccessContent(fo, RandomAccessMode.READ);
    try {//from   www.ja va  2s.c  o m
        Thread.sleep(SLEEP_TIME);
        for (int i = 0; i < TEST_FILE_A_CHARS_NUMBER; i++) {
            assertTrue('a' == rac.readByte());
        }
    } finally {
        rac.close();
    }
    fo.close();
}

From source file:com.panet.imeta.core.row.ValueDataUtil.java

public static Long ChecksumAdler32(ValueMetaInterface metaA, Object dataA) {
    long checksum = 0;
    FileObject file = null;
    try {//w  w  w.  j  a v a  2  s  . c o m
        file = KettleVFS.getFileObject(dataA.toString());
        CheckedInputStream cis = null;

        // Computer Adler-32 checksum
        cis = new CheckedInputStream((FileInputStream) ((LocalFile) file).getInputStream(), new Adler32());

        byte[] buf = new byte[128];
        while (cis.read(buf) >= 0) {
        }
        checksum = cis.getChecksum().getValue();

    } catch (Exception e) {
        //throw new Exception(e);
    } finally {
        if (file != null)
            try {
                file.close();
            } catch (Exception e) {
            }
        ;
    }
    return checksum;
}

From source file:functionalTests.vfsprovider.TestProActiveProviderAutoclosing.java

@Test
public void testInputStreamOpenSkipAutocloseRead() throws Exception {
    final FileObject fo = openFileObject(TEST_FILENAME);
    // we have to use input stream to avoid Readers buffering (input stream buffering is ok) 
    final InputStream is = openInputStream(fo);
    try {// w  w w  .j a v  a 2s  .  c o  m
        is.skip(TEST_FILE_A_CHARS_NUMBER);
        Thread.sleep(SLEEP_TIME);
        assertTrue('b' == is.read());
    } finally {
        is.close();
    }
    fo.close();
}

From source file:functionalTests.vfsprovider.TestProActiveProviderAutoclosing.java

@Test
public void testRandomReadOnlyAccessOpenReadSeekAutocloseGetPosRead() throws Exception {
    final FileObject fo = openFileObject(TEST_FILENAME);
    final RandomAccessContent rac = openRandomAccessContent(fo, RandomAccessMode.READ);
    try {//from  ww w .j a v a  2  s.c  o  m
        rac.readByte();
        rac.seek(TEST_FILE_A_CHARS_NUMBER);
        Thread.sleep(SLEEP_TIME);
        assertEquals(TEST_FILE_A_CHARS_NUMBER, rac.getFilePointer());
        assertTrue('b' == rac.readByte());
    } finally {
        rac.close();
    }
    fo.close();
}

From source file:functionalTests.vfsprovider.TestProActiveProviderAutoclosing.java

@Test
public void testRandomReadOnlyAccessInputStreamOpenAutocloseRead() throws Exception {
    final FileObject fo = openFileObject(TEST_FILENAME);
    final RandomAccessContent rac = openRandomAccessContent(fo, RandomAccessMode.READ);
    final BufferedReader reader = getBufferedReader(rac.getInputStream());
    try {/*w  ww . j ava2 s.  c  om*/
        Thread.sleep(SLEEP_TIME);
        for (int i = 0; i < TEST_FILE_A_CHARS_NUMBER; i++) {
            assertTrue('a' == reader.read());
        }
    } finally {
        rac.close();
    }
    fo.close();
}

From source file:functionalTests.vfsprovider.TestProActiveProviderAutoclosing.java

@Test
public void testRandomReadWriteAccessOpenWriteAutocloseGetPosWrite() throws Exception {
    final FileObject fo = openFileObject("out.txt");
    fo.createFile();/*from   www .jav a2  s . c o m*/
    final RandomAccessContent rac = openRandomAccessContent(fo, RandomAccessMode.READWRITE);
    try {
        rac.write("abc".getBytes());
        Thread.sleep(SLEEP_TIME);
        assertEquals("abc".getBytes().length, rac.getFilePointer());
        rac.write("def".getBytes());
    } finally {
        rac.close();
    }
    assertContentEquals(fo, "abcdef");
    fo.close();
}

From source file:functionalTests.vfsprovider.TestProActiveProviderAutoclosing.java

@Test
public void testInputStreamOpenReadAutocloseRead() throws Exception {
    final FileObject fo = openFileObject(TEST_FILENAME);
    final BufferedReader reader = openBufferedReader(fo);
    try {//from   w w w  .  j  a v a 2s . co  m
        for (int i = 0; i < TEST_FILE_A_CHARS_NUMBER; i++) {
            assertTrue('a' == reader.read());
        }
        Thread.sleep(SLEEP_TIME);
        for (int i = 0; i < TEST_FILE_B_CHARS_NUMBER; i++) {
            assertTrue('b' == reader.read());
        }
    } finally {
        reader.close();
    }
    fo.close();
}

From source file:functionalTests.vfsprovider.TestProActiveProviderAutoclosing.java

@Test
public void testRandomReadOnlyAccessOpenReadAutocloseRead() throws Exception {
    final FileObject fo = openFileObject(TEST_FILENAME);
    final RandomAccessContent rac = openRandomAccessContent(fo, RandomAccessMode.READ);
    try {/*from w  w  w.  ja  v  a  2s  .c  om*/
        for (int i = 0; i < TEST_FILE_A_CHARS_NUMBER; i++) {
            assertTrue('a' == rac.readByte());
        }
        Thread.sleep(SLEEP_TIME);
        for (int i = 0; i < TEST_FILE_B_CHARS_NUMBER; i++) {
            assertTrue('b' == rac.readByte());
        }
    } finally {
        rac.close();
    }
    fo.close();
}

From source file:functionalTests.vfsprovider.TestProActiveProviderAutoclosing.java

@Test
public void testRandomReadWriteAccessOpenWriteSeekAutocloseGetPosWrite() throws Exception {
    final FileObject fo = openFileObject("out.txt");
    fo.createFile();//from  www  .j  av  a  2s. c om
    final RandomAccessContent rac = openRandomAccessContent(fo, RandomAccessMode.READWRITE);
    try {
        rac.write("abcdef".getBytes());
        rac.seek("abc".getBytes().length);
        Thread.sleep(SLEEP_TIME);
        assertEquals("abc".getBytes().length, rac.getFilePointer());
        rac.write("ghi".getBytes());
    } finally {
        rac.close();
    }
    assertContentEquals(fo, "abcghi");
    fo.close();
}

From source file:com.panet.imeta.trans.steps.processfiles.ProcessFiles.java

public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {
    meta = (ProcessFilesMeta) smi;/*from   w  w  w  .  java  2s.  c  o  m*/
    data = (ProcessFilesData) sdi;

    Object[] r = getRow(); // Get row from input rowset & set row busy!
    if (r == null) // no more input to be expected...
    {
        setOutputDone();
        return false;
    }
    if (first) {
        first = false;
        // Check is source filename field is provided
        if (Const.isEmpty(meta.getDynamicSourceFileNameField())) {
            throw new KettleException(Messages.getString("ProcessFiles.Error.SourceFilenameFieldMissing"));
        }
        // Check is target filename field is provided
        if (meta.getOperationType() != ProcessFilesMeta.OPERATION_TYPE_DELETE
                && Const.isEmpty(meta.getDynamicTargetFileNameField())) {
            throw new KettleException(Messages.getString("ProcessFiles.Error.TargetFilenameFieldMissing"));
        }

        // cache the position of the source filename field         
        if (data.indexOfSourceFilename < 0) {
            data.indexOfSourceFilename = getInputRowMeta().indexOfValue(meta.getDynamicSourceFileNameField());
            if (data.indexOfSourceFilename < 0) {
                // The field is unreachable !
                throw new KettleException(Messages.getString("ProcessFiles.Exception.CouldnotFindField", //$NON-NLS-1$
                        meta.getDynamicSourceFileNameField())); //$NON-NLS-2$
            }
        }
        // cache the position of the source filename field         
        if (meta.getOperationType() != ProcessFilesMeta.OPERATION_TYPE_DELETE
                && data.indexOfTargetFilename < 0) {
            data.indexOfTargetFilename = getInputRowMeta().indexOfValue(meta.getDynamicTargetFileNameField());
            if (data.indexOfTargetFilename < 0) {
                // The field is unreachable !
                throw new KettleException(Messages.getString("ProcessFiles.Exception.CouldnotFindField", //$NON-NLS-1$
                        meta.getDynamicTargetFileNameField())); //$NON-NLS-2$
            }
        }

        if (meta.simulate) {
            if (log.isBasic())
                log.logBasic(toString(), Messages.getString("ProcessFiles.Log.SimulationModeON"));
        }
    } // End If first 
    try {
        // get source filename
        String sourceFilename = getInputRowMeta().getString(r, data.indexOfSourceFilename);

        if (Const.isEmpty(sourceFilename)) {
            log.logError(toString(), Messages.getString("ProcessFiles.Error.SourceFileEmpty"));
            throw new KettleException(Messages.getString("ProcessFiles.Error.SourceFileEmpty"));
        }
        data.sourceFile = KettleVFS.getFileObject(sourceFilename);
        boolean targetFileExists = false;

        if (!data.sourceFile.exists()) {
            log.logError(toString(),
                    Messages.getString("ProcessFiles.Error.SourceFileNotExist", sourceFilename));
            throw new KettleException(
                    Messages.getString("ProcessFiles.Error.SourceFileNotExist", sourceFilename));
        }
        if (data.sourceFile.getType() != FileType.FILE) {
            log.logError(toString(),
                    Messages.getString("ProcessFiles.Error.SourceFileNotFile", sourceFilename));
            throw new KettleException(
                    Messages.getString("ProcessFiles.Error.SourceFileNotFile", sourceFilename));
        }
        String targetFilename = null;
        if (meta.getOperationType() != ProcessFilesMeta.OPERATION_TYPE_DELETE) {
            // get value for target filename
            targetFilename = getInputRowMeta().getString(r, data.indexOfTargetFilename);

            if (Const.isEmpty(targetFilename)) {
                log.logError(toString(), Messages.getString("ProcessFiles.Error.TargetFileEmpty"));
                throw new KettleException(Messages.getString("ProcessFiles.Error.TargetFileEmpty"));
            }
            data.targetFile = KettleVFS.getFileObject(targetFilename);
            if (data.targetFile.exists()) {
                if (log.isDetailed())
                    log.logDetailed(toString(),
                            Messages.getString("ProcessFiles.Log.TargetFileExists", targetFilename));
            } else {
                // let's check parent folder
                FileObject parentFolder = data.targetFile.getParent();
                if (!parentFolder.exists()) {
                    if (!meta.isCreateParentFolder())
                        throw new KettleException(Messages.getString(
                                "ProcessFiles.Error.TargetParentFolderNotExists", parentFolder.toString()));
                    else
                        parentFolder.createFolder();
                }
                if (parentFolder != null)
                    parentFolder.close();
            }
        }

        switch (meta.getOperationType()) {
        case ProcessFilesMeta.OPERATION_TYPE_COPY:
            if (((meta.isOverwriteTargetFile() && targetFileExists) || !targetFileExists) && !meta.simulate)
                data.targetFile.copyFrom(data.sourceFile, new TextOneToOneFileSelector());
            if (log.isDetailed())
                log.logDetailed(toString(), Messages.getString("ProcessFiles.Log.SourceFileCopied",
                        sourceFilename, targetFilename));
            break;
        case ProcessFilesMeta.OPERATION_TYPE_MOVE:
            if (((meta.isOverwriteTargetFile() && targetFileExists) || !targetFileExists) && !meta.simulate)
                data.sourceFile.moveTo(KettleVFS.getFileObject(targetFilename));
            if (log.isDetailed())
                log.logDetailed(toString(),
                        Messages.getString("ProcessFiles.Log.SourceFileMoved", sourceFilename, targetFilename));
            break;
        case ProcessFilesMeta.OPERATION_TYPE_DELETE:
            if (!meta.simulate) {
                if (!data.sourceFile.delete())
                    throw new KettleException(Messages.getString("ProcessFiles.Error.CanNotDeleteFile",
                            data.sourceFile.toString()));
            }
            if (log.isDetailed())
                log.logDetailed(toString(),
                        Messages.getString("ProcessFiles.Log.SourceFileDeleted", sourceFilename));
            break;
        default:

            break;
        }

        // add filename to result filenames?
        if (meta.isaddTargetFileNametoResult()
                && meta.getOperationType() != ProcessFilesMeta.OPERATION_TYPE_DELETE
                && data.sourceFile.getType() == FileType.FILE) {
            // Add this to the result file names...
            ResultFile resultFile = new ResultFile(ResultFile.FILE_TYPE_GENERAL, data.targetFile,
                    getTransMeta().getName(), getStepname());
            resultFile.setComment(Messages.getString("ProcessFiles.Log.FileAddedResult"));
            addResultFile(resultFile);

            if (log.isDetailed())
                log.logDetailed(toString(),
                        Messages.getString("ProcessFiles.Log.FilenameAddResult", data.sourceFile.toString()));
        }

        putRow(getInputRowMeta(), r); // copy row to possible alternate rowset(s).

        if (checkFeedback(getLinesRead())) {
            if (log.isBasic())
                logBasic(Messages.getString("ProcessFiles.LineNumber") + getLinesRead()); //$NON-NLS-1$
        }
    } catch (Exception e) {
        boolean sendToErrorRow = false;
        String errorMessage = null;

        if (getStepMeta().isDoingErrorHandling()) {
            sendToErrorRow = true;
            errorMessage = e.toString();
        } else {
            logError(Messages.getString("ProcessFiles.ErrorInStepRunning") + e.getMessage()); //$NON-NLS-1$
            setErrors(1);
            stopAll();
            setOutputDone(); // signal end to receiver(s)
            return false;
        }
        if (sendToErrorRow) {
            // Simply add this row to the error row
            putError(getInputRowMeta(), r, 1, errorMessage, null, "ProcessFiles001");
        }
    }

    return true;
}