com.ewcms.publication.deploy.provider.FtpDeployOperator.java Source code

Java tutorial

Introduction

Here is the source code for com.ewcms.publication.deploy.provider.FtpDeployOperator.java

Source

/**
 * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
 * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 * http://www.ewcms.com
 */

package com.ewcms.publication.deploy.provider;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.FileSystemException;
import org.apache.commons.vfs2.FileSystemManager;
import org.apache.commons.vfs2.FileSystemOptions;
import org.apache.commons.vfs2.provider.ftp.FtpFileSystemConfigBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.ewcms.publication.deploy.DeployOperatorable;

/**
 * ??ftp?
 * 
 * @author wangwei
 */
public class FtpDeployOperator extends DeployOperatorBase {

    private static final Logger logger = LoggerFactory.getLogger(FtpDeployOperator.class);
    protected static final String DEFAULT_PORT = "21";

    public static class Builder extends BuilderBase {

        public Builder(String hostname, String path) {
            this.hostname = hostname;
            this.path = path;
        }

        @Override
        public DeployOperatorable build() {
            return new FtpDeployOperator(this);
        }
    }

    public FtpDeployOperator(Builder builder) {
        super(builder);
    }

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