List of usage examples for org.apache.commons.vfs.provider.sftp SftpFileNameParser getInstance
public static FileNameParser getInstance()
From source file:org.pentaho.di.core.vfs.configuration.KettleSftpFileSystemConfigBuilder.java
/** * Publicly expose a generic way to set parameters *///from ww w. j a v a 2s. c o m @Override public void setParameter(FileSystemOptions opts, String name, String value, String fullParameterName, String vfsUrl) throws IOException { if (!fullParameterName.startsWith("vfs.sftp")) { // This is not an SFTP parameter. Delegate to the generic handler super.setParameter(opts, name, value, fullParameterName, vfsUrl); } else { // Check for the presence of a host in the full variable name try { // Parse server name from vfsFilename FileNameParser sftpFilenameParser = SftpFileNameParser.getInstance(); URLFileName file = (URLFileName) sftpFilenameParser.parseUri(null, null, vfsUrl); if (!parameterContainsHost(fullParameterName) || fullParameterName.endsWith(file.getHostName())) { // Match special cases for parameter names if (name.equalsIgnoreCase("AuthKeyPassphrase")) { setParam(opts, UserInfo.class.getName(), new PentahoUserInfo(value)); } else if (name.equals("identity")) { File[] identities = (File[]) this.getParam(opts, "identities"); if (identities == null) { identities = new File[] { new File(value) }; } else { // Copy, in a Java 5 friendly manner, identities into a larger array File[] temp = new File[identities.length + 1]; System.arraycopy(identities, 0, temp, 0, identities.length); identities = temp; identities[identities.length - 1] = new File(value); } setParam(opts, "identities", identities); } else { setParam(opts, name, value); } } else { // No host match found log.logDebug("No host match found for: " + fullParameterName); } } catch (IOException e) { log.logError("Failed to set VFS parameter: [" + fullParameterName + "] " + value, e); } } }