in gshell/gshell-obr/src/main/java/org/apache/servicemix/kernel/gshell/obr/FileUtil.java [36:95]
public static void downloadSource(
PrintWriter out, PrintWriter err,
URL srcURL, String dirStr, boolean extract)
{
// Get the file name from the URL.
String fileName = (srcURL.getFile().lastIndexOf('/') > 0)
? srcURL.getFile().substring(srcURL.getFile().lastIndexOf('/') + 1)
: srcURL.getFile();
try
{
out.println("Connecting...");
File dir = new File(dirStr);
if (!dir.exists())
{
err.println("Destination directory does not exist.");
}
File file = new File(dir, fileName);
OutputStream os = new FileOutputStream(file);
URLConnection conn = srcURL.openConnection();
int total = conn.getContentLength();
InputStream is = conn.getInputStream();
if (total > 0)
{
out.println("Downloading " + fileName
+ " ( " + total + " bytes ).");
}
else
{
out.println("Downloading " + fileName + ".");
}
byte[] buffer = new byte[4096];
int count = 0;
for (int len = is.read(buffer); len > 0; len = is.read(buffer))
{
count += len;
os.write(buffer, 0, len);
}
os.close();
is.close();
if (extract)
{
is = new FileInputStream(file);
JarInputStream jis = new JarInputStream(is);
out.println("Extracting...");
unjar(jis, dir);
jis.close();
file.delete();
}
}
catch (Exception ex)
{
err.println(ex);
}
}