Example usage for org.apache.commons.vfs2 FileSystemManager resolveFile

List of usage examples for org.apache.commons.vfs2 FileSystemManager resolveFile

Introduction

In this page you can find the example usage for org.apache.commons.vfs2 FileSystemManager resolveFile.

Prototype

FileObject resolveFile(File baseFile, String name) throws FileSystemException;

Source Link

Document

Locates a file by name.

Usage

From source file:cz.lbenda.dataman.db.DbStructureFactory.java

public static void loadDatabaseStructureFromXML(DatabaseStructureType databaseStructure, DbConfig dbConfig) {
    if (databaseStructure == null) {
        return;/*w ww.j  a v a  2  s .c  om*/
    }
    if (!StringUtils.isBlank(databaseStructure.getSrc())) {
        new Thread(() -> {
            try {
                FileSystemManager fsManager = VFS.getManager();
                FileObject fileObject = fsManager.resolveFile((FileObject) null, databaseStructure.getSrc());
                InputStream is = fileObject.getContent().getInputStream();
                loadDatabaseStructureFromXML(is, dbConfig);
            } catch (FileSystemException e) {
                LOG.error("Problem with getting FS manager or read data from file", e);
                ExceptionMessageFrmController
                        .showException("Problem with getting FS manager or read data from file", e);
            }
        }).start();
    } else {
        new Thread(() -> {
            dbConfig.getCatalogs().clear();
            Map<Object, TableDesc> tableDescFromTableType = new HashMap<>();
            Map<Object, ColumnDesc> columnDescFromColumnType = new HashMap<>();

            databaseStructure.getCatalog().forEach(catalogType -> {
                CatalogDesc catalogDesc = new CatalogDesc(catalogType.getName());
                dbConfig.getCatalogs().add(catalogDesc);
                catalogType.getSchema().forEach(schemaType -> {
                    SchemaDesc schemaDesc = new SchemaDesc(catalogDesc, schemaType.getName());
                    catalogDesc.getSchemas().add(schemaDesc);
                    schemaType.getTable().forEach(tableType -> {
                        TableDesc tableDesc = new TableDesc(schemaDesc, tableType.getTableType(),
                                tableType.getName());
                        tableDesc.setDbConfig(dbConfig);
                        tableDescFromTableType.put(tableType, tableDesc);
                        schemaDesc.getTables().add(tableDesc);
                        tableType.getColumn().forEach(columnType -> {
                            ColumnDesc columnDesc = new ColumnDesc(tableDesc, columnType.getName(),
                                    columnType.getLabel(), dataTypeTypeToColumnType(columnType.getDataType()),
                                    columnType.getSize(), columnType.getScale(), columnType.isNullable(),
                                    columnType.isAutoincrement(), columnType.isGenerated(),
                                    columnType.getDefaultValue());
                            columnDescFromColumnType.put(columnType, columnDesc);
                            columnDesc.setPosition(tableDesc.getColumns().size() + 1);
                            columnDesc.setPK(columnType.isIsPK());
                            tableDesc.getColumns().add(columnDesc);
                        });
                    });
                });
            });

            databaseStructure.getCatalog()
                    .forEach(catalogType -> catalogType.getSchema().forEach(schemaType -> schemaType.getTable()
                            .forEach(tableType -> tableType.getForeignKey().forEach(foreignKeyType -> {
                                ForeignKey foreignKey = new ForeignKey(foreignKeyType.getName(),
                                        tableDescFromTableType.get(foreignKeyType.getMasterTable()),
                                        columnDescFromColumnType
                                                .get(foreignKeyType.getMasterColumn().get(0).getColumn()),
                                        tableDescFromTableType.get(tableType),
                                        columnDescFromColumnType
                                                .get(foreignKeyType.getSlaveColumn().get(0).getColumn()),
                                        foreignKeyType.getUpdateRule(), foreignKeyType.getDeleteRule());
                                foreignKey.getMasterTable().getForeignKeys().add(foreignKey);
                                foreignKey.getSlaveTable().getForeignKeys().add(foreignKey);
                            }))));
        }).run();
    }
}

From source file:com.sonicle.webtop.vfs.sfs.StoreFileSystem.java

private void initRootFileObject() throws FileSystemException {
    configureOptions();//from   ww w.  j  a  v a2s . c o  m
    FileSystemManager fsm = VFS.getManager();
    FileObject fo = fsm.resolveFile(uri.toString(), fso);
    if (autoCreateRoot && !fo.exists())
        fo.createFolder();
    if (fo.exists())
        rootFo = fo;
}

From source file:mondrian.spi.impl.ApacheVfs2VirtualFileHandler.java

public InputStream readVirtualFile(String url) throws FileSystemException {
    // Treat catalogUrl as an Apache VFS (Virtual File System) URL.
    // VFS handles all of the usual protocols (http:, file:)
    // and then some.
    FileSystemManager fsManager = VFS.getManager();
    if (fsManager == null) {
        throw Util.newError("Cannot get virtual file system manager");
    }/* w  w  w  .ja va2s  .  c  o  m*/

    File userDir = new File("").getAbsoluteFile();
    FileObject file = fsManager.resolveFile(userDir, url);
    FileContent fileContent = null;
    try {
        if (!file.isReadable()) {
            throw Util.newError("Virtual file is not readable: " + url);
        }

        fileContent = file.getContent();
    } finally {
        file.close();
    }

    if (fileContent == null) {
        throw Util.newError("Cannot get virtual file content: " + url);
    }

    return fileContent.getInputStream();
}

From source file:cz.lbenda.dataman.rc.DatamanHeadless.java

private @Nonnull List<FileObject> files(CommandLine cmd, String singleFileOption, String multipleFileOption)
        throws FileSystemException {
    if (!cmd.hasOption(singleFileOption) && !cmd.hasOption(multipleFileOption)) {
        return Collections.emptyList();
    }//  ww  w .j  a  v  a 2 s.  c  om
    String script = cmd.getOptionValue(singleFileOption);
    FileSystemManager fsm = VFS.getManager();
    if (script != null) {
        return Collections.singletonList(fsm.resolveFile((FileObject) null, script));
    }
    String scripts = cmd.getOptionValue(multipleFileOption);
    String[] scrs = scripts.split(",");
    List<FileObject> result = new ArrayList<>();
    for (String scr : scrs) {
        result.add(fsm.resolveFile((FileObject) null, scr));
    }
    return result;
}

From source file:de.unioninvestment.portal.explorer.view.vfs.VFSMainView.java

public void scanDirectory(FileSystemManager fsManager, FileSystemOptions opts, String ftpconn)
        throws IOException {
    try {/*from   w  w  w .  j a  v  a2 s .c om*/
        FileObject fileObject = fsManager.resolveFile(ftpconn, opts);
        FileObject[] files = fileObject.findFiles(new FileTypeSelector(FileType.FOLDER));
        HashMap<String, String> parentMap = new HashMap<String, String>();
        for (FileObject fo : files) {
            String objectName = fo.getName().toString();
            tree.addItem(objectName);
            tree.setItemIcon(objectName, FOLDER);
            if (fo.getParent() != null) {
                String parentName = fo.getParent().getName().toString();
                parentMap.put(objectName, parentName);
            } else
                tree.setItemCaption(objectName, "/");
        }

        // set parents
        logger.log(Level.INFO, "parentMap " + parentMap.size());
        if (parentMap.size() > 0) {
            Iterator<Map.Entry<String, String>> it = parentMap.entrySet().iterator();
            while (it.hasNext()) {
                Map.Entry<String, String> pairs = it.next();
                tree.setParent(pairs.getKey(), pairs.getValue());
                String caption = pairs.getKey().toString().substring(pairs.getValue().toString().length());

                tree.setItemCaption(pairs.getKey(), removeSlash(caption));
                it.remove();
            }
        }
    } catch (FileSystemException e) {
        e.printStackTrace();
    }
}

From source file:com.ewcms.publication.deploy.provider.FtpsDeployOperator.java

@Override
protected FileObject getRootFileObject(FileSystemOptions opts, BuilderBase builder, FileSystemManager manager)
        throws FileSystemException {

    FtpsFileSystemConfigBuilder.getInstance().setUserDirIsRoot(opts, false);

    String port = StringUtils.isBlank(builder.getPort()) ? DEFAULT_PORT : builder.getPort();

    StringBuilder connBuilder = new StringBuilder();
    connBuilder.append("ftps://");
    connBuilder.append(builder.getHostname()).append(":").append(port);
    connBuilder.append(builder.getPath());

    String conn = connBuilder.toString();
    logger.debug("uri is  {}", conn);

    return manager.resolveFile(conn, opts);
}

From source file:com.ewcms.publication.deploy.provider.FtpDeployOperator.java

@Override
protected FileObject getRootFileObject(FileSystemOptions opts, BuilderBase builder, FileSystemManager manager)
        throws FileSystemException {

    FtpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(opts, false);

    String port = StringUtils.isBlank(builder.getPort()) ? DEFAULT_PORT : builder.getPort();

    StringBuilder connBuilder = new StringBuilder();
    connBuilder.append("ftp://");
    connBuilder.append(builder.getHostname()).append(":").append(port);
    connBuilder.append(builder.getPath());

    String conn = connBuilder.toString();
    logger.debug("uri is  {}", conn);

    return manager.resolveFile(conn, opts);
}

From source file:net.sf.jabb.web.action.VfsTreeAction.java

/**
 * AJAX tree functions/*from  ww w  .j av a  2  s  .c om*/
 */
public String execute() {
    normalizeTreeRequest();
    JsTreeResult result = new JsTreeResult();

    final AllFileSelector ALL_FILES = new AllFileSelector();
    FileSystemManager fsManager = null;
    FileObject rootFile = null;
    FileObject file = null;
    FileObject referenceFile = null;
    try {
        fsManager = VfsUtility.getManager();
        rootFile = fsManager.resolveFile(rootPath, fsOptions);

        if (JsTreeRequest.OP_GET_CHILDREN.equalsIgnoreCase(requestData.getOperation())) {
            String parentPath = requestData.getId();
            List<JsTreeNodeData> nodes = null;
            try {
                nodes = getChildNodes(rootFile, parentPath);
                if (requestData.isRoot() && rootNodeName != null) { // add root node
                    JsTreeNodeData rootNode = new JsTreeNodeData();
                    rootNode.setData(rootNodeName);
                    Map<String, Object> attr = new HashMap<String, Object>();
                    rootNode.setAttr(attr);
                    attr.put("id", ".");
                    attr.put("rel", "root");
                    attr.put("fileType", FileType.FOLDER.toString());
                    rootNode.setChildren(nodes);
                    rootNode.setState(JsTreeNodeData.STATE_OPEN);
                    nodes = new LinkedList<JsTreeNodeData>();
                    nodes.add(rootNode);
                }
            } catch (Exception e) {
                log.error("Cannot get child nodes for: " + parentPath, e);
                nodes = new LinkedList<JsTreeNodeData>();
            }
            responseData = nodes;
        } else if (JsTreeRequest.OP_REMOVE_NODE.equalsIgnoreCase(requestData.getOperation())) {
            String path = requestData.getId();
            try {
                file = rootFile.resolveFile(path, NameScope.DESCENDENT);
                boolean wasDeleted = false;
                if (file.getType() == FileType.FILE) {
                    wasDeleted = file.delete();
                } else {
                    wasDeleted = file.delete(ALL_FILES) > 0;
                }
                result.setStatus(wasDeleted);
            } catch (Exception e) {
                result.setStatus(false);
                log.error("Cannot delete: " + path, e);
            }
            responseData = result;
        } else if (JsTreeRequest.OP_CREATE_NODE.equalsIgnoreCase(requestData.getOperation())) {
            String parentPath = requestData.getReferenceId();
            String name = requestData.getTitle();
            try {
                referenceFile = rootFile.resolveFile(parentPath, NameScope.DESCENDENT_OR_SELF);
                file = referenceFile.resolveFile(name, NameScope.CHILD);
                file.createFolder();
                result.setStatus(true);
                result.setId(rootFile.getName().getRelativeName(file.getName()));
            } catch (Exception e) {
                result.setStatus(false);
                log.error("Cannot create folder '" + name + "' under '" + parentPath + "'", e);
            }
            responseData = result;
        } else if (JsTreeRequest.OP_RENAME_NODE.equalsIgnoreCase(requestData.getOperation())) {
            String path = requestData.getId();
            String name = requestData.getTitle();
            try {
                referenceFile = rootFile.resolveFile(path, NameScope.DESCENDENT);
                file = referenceFile.getParent().resolveFile(name, NameScope.CHILD);
                referenceFile.moveTo(file);
                result.setStatus(true);
            } catch (Exception e) {
                result.setStatus(false);
                log.error("Cannot rename '" + path + "' to '" + name + "'", e);
            }
            responseData = result;
        } else if (JsTreeRequest.OP_MOVE_NODE.equalsIgnoreCase(requestData.getOperation())) {
            String newParentPath = requestData.getReferenceId();
            String originalPath = requestData.getId();
            try {
                referenceFile = rootFile.resolveFile(originalPath, NameScope.DESCENDENT);
                file = rootFile.resolveFile(newParentPath, NameScope.DESCENDENT_OR_SELF)
                        .resolveFile(referenceFile.getName().getBaseName(), NameScope.CHILD);
                if (requestData.isCopy()) {
                    file.copyFrom(referenceFile, ALL_FILES);
                } else {
                    referenceFile.moveTo(file);
                }
                result.setStatus(true);
            } catch (Exception e) {
                result.setStatus(false);
                log.error("Cannot move '" + originalPath + "' to '" + newParentPath + "'", e);
            }
            responseData = result;
        }
    } catch (FileSystemException e) {
        log.error("Cannot perform file operation.", e);
    } finally {
        VfsUtility.close(fsManager, file, referenceFile, rootFile);
    }
    return SUCCESS;
}

From source file:com.ewcms.publication.deploy.provider.SftpDeployOperator.java

@Override
protected FileObject getRootFileObject(FileSystemOptions opts, BuilderBase builder, FileSystemManager manager)
        throws FileSystemException {

    SftpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(opts, false);
    SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(opts, "no");

    String port = StringUtils.isBlank(builder.getPort()) ? DEFAULT_PORT : builder.getPort();

    StringBuilder connBuilder = new StringBuilder();
    connBuilder.append("sftp://");
    connBuilder.append(builder.getHostname()).append(":").append(port);
    connBuilder.append(builder.getPath());

    String conn = connBuilder.toString();
    logger.debug("uri is  {}", conn);

    return manager.resolveFile(conn, opts);
}

From source file:de.unioninvestment.portal.explorer.view.vfs.TableView.java

private void fillTableData(String selectedDir, Table table, FileSystemManager fsManager, FileSystemOptions opts,
        String filterVal) throws IOException {
    table.removeAllItems();/*from ww  w .  j a  v a  2  s.  c  o  m*/

    FileObject fileObject = fsManager.resolveFile(selectedDir, opts);
    FileObject[] files = fileObject.getChildren();
    for (FileObject file : files) {

        if (filterVal == null) {
            addTableItem(table, file);
        } else {
            String regex = filterVal.replace("?", ".?").replace("*", ".*?");
            String name = getDisplayPath(file.getName().toString());
            if (name.matches(regex))
                addTableItem(table, file);
        }

    }
}