in archiva-jarinfo/archiva-jarinfo-cli/src/main/java/org/apache/archiva/jarinfo/scanner/LibLocator.java [44:79]
public String fromURI( String uri )
{
URL url = null;
try
{
url = new URL( uri );
}
catch ( MalformedURLException ignore )
{
/* ignore */
}
if ( url == null || !( "file".equals( url.getProtocol() ) ) )
{
throw new IllegalArgumentException( "Can only handle valid file: URIs" );
}
StringBuffer buf = new StringBuffer( url.getHost() );
if ( buf.length() > 0 )
{
buf.insert( 0, File.separatorChar ).insert( 0, File.separatorChar );
}
String file = url.getFile();
int queryPos = file.indexOf( '?' );
buf.append( ( queryPos < 0 ) ? file : file.substring( 0, queryPos ) );
String tmpUri = buf.toString().replace( '/', File.separatorChar );
if ( File.pathSeparatorChar == ';' && uri.startsWith( "\\" ) && uri.length() > 2
&& Character.isLetter( uri.charAt( 1 ) ) && uri.lastIndexOf( ':' ) > -1 )
{
tmpUri = uri.substring( 1 );
}
String path = decodeUri( tmpUri );
return path;
}