Example usage for org.apache.commons.io.monitor FileAlterationObserver getDirectory

List of usage examples for org.apache.commons.io.monitor FileAlterationObserver getDirectory

Introduction

In this page you can find the example usage for org.apache.commons.io.monitor FileAlterationObserver getDirectory.

Prototype

public File getDirectory() 

Source Link

Document

Return the directory being observed.

Usage

From source file:net.ion.radon.cload.listeners.CompilingListener.java

public ResourceReader getReader(final FileAlterationObserver pObserver) {
    return new FileResourceReader(pObserver.getDirectory());
}

From source file:ddf.security.pdp.realm.xacml.processor.PollingPolicyFinderModule.java

public void onStart(FileAlterationObserver observer) {
    try {//from   w  ww .  j av  a  2  s  . c o m
        String directoryPath = observer.getDirectory().getCanonicalPath();
        LOGGER.trace("starting to check directory for xacml policy update(s) " + directoryPath);

        if (!xacmlPolicyDirectories.isEmpty()
                && isXacmlPoliciesDirectoryEmpty(xacmlPolicyDirectories.iterator().next())) {
            LOGGER.warn("No XACML Policies found in: {}", directoryPath);
        }
    } catch (IOException e) {
        LOGGER.error(e.getMessage(), e);
    }
}

From source file:ddf.security.pdp.realm.xacml.processor.PollingPolicyFinderModule.java

public void onStop(FileAlterationObserver observer) {
    try {//w w w .j  a v  a 2 s .  com
        LOGGER.trace("Done checking directory " + observer.getDirectory().getCanonicalPath());
    } catch (IOException e) {
        LOGGER.error(e.getMessage(), e);
    }
}

From source file:net.ion.radon.cload.listeners.CompilingListener.java

public String getSourceNameFromFile(final FileAlterationObserver pObserver, final File pFile) {
    return ConversionUtils
            .stripExtension(ConversionUtils
                    .getResourceNameFromFileName(ConversionUtils.relative(pObserver.getDirectory(), pFile)))
            + getSourceFileExtension();/* ww  w  . j av  a  2 s. c  o  m*/
}

From source file:net.ion.radon.cload.listeners.ReloadingListener.java

public boolean isReloadRequired(final FileAlterationObserver pObserver) {
    boolean reload = false;

    final Collection<File> created = getCreatedFiles();
    final Collection<File> changed = getChangedFiles();
    final Collection<File> deleted = getDeletedFiles();

    log.debug("created:" + created.size() + " changed:" + changed.size() + " deleted:" + deleted.size()
            + " resources");

    if (deleted.size() > 0) {
        for (File file : deleted) {
            final String resourceName = ConversionUtils
                    .getResourceNameFromFileName(ConversionUtils.relative(pObserver.getDirectory(), file));
            store.remove(resourceName);/*  w  w w.j a va 2  s.  c  o m*/
        }
        reload = true;
    }

    if (created.size() > 0) {
        for (File file : created) {
            FileInputStream is = null;
            try {
                is = new FileInputStream(file);
                final byte[] bytes = IOUtils.toByteArray(is);
                final String resourceName = ConversionUtils
                        .getResourceNameFromFileName(ConversionUtils.relative(pObserver.getDirectory(), file));
                store.write(resourceName, bytes);
            } catch (final Exception e) {
                log.error("could not load " + file, e);
            } finally {
                IOUtils.closeQuietly(is);
            }
        }
    }

    if (changed.size() > 0) {
        for (File file : changed) {
            FileInputStream is = null;
            try {
                is = new FileInputStream(file);
                final byte[] bytes = IOUtils.toByteArray(is);
                final String resourceName = ConversionUtils
                        .getResourceNameFromFileName(ConversionUtils.relative(pObserver.getDirectory(), file));
                store.write(resourceName, bytes);
            } catch (final Exception e) {
                log.error("could not load " + file, e);
            } finally {
                IOUtils.closeQuietly(is);
            }
        }
        reload = true;
    }

    return reload;
}

From source file:net.ion.radon.cload.listeners.CompilingListener.java

@Override
public boolean isReloadRequired(final FileAlterationObserver pObserver) {
    boolean reload = false;

    final Collection<File> created = getCreatedFiles();
    final Collection<File> changed = getChangedFiles();
    final Collection<File> deleted = getDeletedFiles();

    log.debug("created:" + created.size() + " changed:" + changed.size() + " deleted:" + deleted.size()
            + " resources");

    if (deleted.size() > 0) {
        for (File deletedFile : deleted) {
            final String resourceName = ConversionUtils.getResourceNameFromFileName(
                    ConversionUtils.relative(pObserver.getDirectory(), deletedFile));

            if (resourceName.endsWith(getSourceFileExtension())) {
                // if source resource got removed delete the corresponding class 
                transactionalStore.remove(ConversionUtils.stripExtension(resourceName) + ".class");
            } else {
                // ordinary resource to be removed
                transactionalStore.remove(resourceName);
            }/*from w ww. jav a 2s  .c  om*/

            // FIXME: does not remove nested classes

        }
        reload = true;
    }

    final String[] resourcesToCompile = getResourcesToCompile(pObserver);

    if (resourcesToCompile.length > 0) {

        log.debug(resourcesToCompile.length + " classes to compile");

        final CompilationResult result = compiler.compile(resourcesToCompile, reader, transactionalStore);

        synchronized (this) {
            lastResult = result;
        }

        final CompilationProblem[] errors = result.getErrors();
        final CompilationProblem[] warnings = result.getWarnings();

        log.debug(errors.length + " errors, " + warnings.length + " warnings");

        if (errors.length > 0) {
            // FIXME: they need to be marked for re-compilation
            // and then added as compileables again
            for (int j = 0; j < resourcesToCompile.length; j++) {
                transactionalStore.remove(resourcesToCompile[j]);
            }
        }

        reload = true;
    }

    return reload;
}