private FileSystem createWebFileSystem( final LayeredFileName genericRootName,
final FileSystemOptions fileSystemOptions ) throws FileSystemException {
final GenericFileName outerName = (GenericFileName) genericRootName.getOuterName();
String scheme = outerName.getScheme();
String hostName = outerName.getHostName();
int port = outerName.getPort();
String userName = outerName.getUserName();
String password = outerName.getPassword();
HttpClientManager.HttpClientBuilderFacade clientBuilder = HttpClientManager.getInstance().createBuilder();
if ( !StringUtil.isEmpty( hostName ) ) {
clientBuilder.setProxy( hostName, port, scheme );
}
if ( !StringUtil.isEmpty( userName ) ) {
clientBuilder.setCredentials( userName, password );
}
final PentahoSolutionsFileSystemConfigBuilder configBuilder = new PentahoSolutionsFileSystemConfigBuilder();
final int timeOut = configBuilder.getTimeOut( fileSystemOptions );
clientBuilder.setSocketTimeout( Math.max( 0, timeOut ) );
return new WebSolutionFileSystem( genericRootName, fileSystemOptions,
new LocalFileModel( outerName.getURI(), clientBuilder, userName, password, hostName, port )
);
}