Example usage for org.apache.commons.vfs.provider.webdav WebdavMethodRetryHandler getInstance

List of usage examples for org.apache.commons.vfs.provider.webdav WebdavMethodRetryHandler getInstance

Introduction

In this page you can find the example usage for org.apache.commons.vfs.provider.webdav WebdavMethodRetryHandler getInstance.

Prototype

public static WebdavMethodRetryHandler getInstance() 

Source Link

Usage

From source file:org.docx4all.util.AuthenticationUtil.java

public final static int getAuthorisationStatus(WebdavFileObject fo) throws FileSystemException {
    int status = 401; //unauthorised and retry.

    org.apache.webdav.lib.methods.OptionsMethod optionsMethod = null;
    try {/*ww w.  j  av  a  2  s  . c o m*/
        String urlCharset = WebdavFileSystemConfigBuilder.getInstance()
                .getUrlCharset(fo.getFileSystem().getFileSystemOptions());
        URLFileName urlFileName = (URLFileName) fo.getName();
        optionsMethod = new org.apache.webdav.lib.methods.OptionsMethod(
                urlFileName.getPathQueryEncoded(urlCharset));

        optionsMethod.setMethodRetryHandler(WebdavMethodRetryHandler.getInstance());
        optionsMethod.setFollowRedirects(true);

        char[] username = null;
        if (urlFileName.getUserName() != null) {
            username = urlFileName.getUserName().toCharArray();
        }
        char[] password = null;
        if (urlFileName.getPassword() != null) {
            password = urlFileName.getPassword().toCharArray();
        }

        WebdavClientFactory factory = new WebdavClientFactory();
        HttpClient client = factory.createConnection(urlFileName.getHostName(), urlFileName.getPort(), username,
                password, fo.getFileSystem().getFileSystemOptions());
        status = client.executeMethod(optionsMethod);
    } catch (Exception exc) {
        throw new FileSystemException("Cannot get authorisation status", exc);
    } finally {
        if (optionsMethod != null) {
            optionsMethod.releaseConnection();
        }
    }

    return status;
}