Changeset 832:bc7154271a98


Ignore:
Timestamp:
01/29/12 23:33:01 (4 months ago)
Author:
xeraph
Branch:
default
Message:

added  http:// support for bundle.install command

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kraken-core/src/main/java/org/krakenapps/bundle/BundleScript.java

    r732 r832  
    1818import java.io.File; 
    1919import java.io.FileNotFoundException; 
     20import java.io.FileOutputStream; 
    2021import java.io.IOException; 
    2122import java.net.MalformedURLException; 
     
    4142import org.krakenapps.api.ScriptUsage; 
    4243import org.krakenapps.main.Kraken; 
     44import org.krakenapps.pkg.HttpWagon; 
    4345import org.krakenapps.pkg.MavenMetadata; 
    4446import org.krakenapps.pkg.ProgressMonitorImpl; 
     
    218220                                        String path = args[0].replace('\\', '/'); 
    219221                                        bundleId = manager.installBundle(path); 
     222                                } else if (args[0].startsWith("http://")) { 
     223                                        URL url = new URL(args[0]); 
     224                                        String dir = System.getProperty("kraken.download.dir"); 
     225                                        String[] pathTokens = url.getPath().split("/"); 
     226                                        File f = new File(dir, pathTokens[pathTokens.length - 1]); 
     227                                        f.getParentFile().mkdirs(); 
     228                                        context.println("trying download to " + f.getAbsolutePath()); 
     229 
     230                                        if (f.createNewFile()) { 
     231                                                byte[] b = HttpWagon.download(url); 
     232                                                FileOutputStream os = new FileOutputStream(f); 
     233                                                try { 
     234                                                        os.write(b); 
     235                                                } finally { 
     236                                                        os.close(); 
     237                                                } 
     238 
     239                                                bundleId = manager.installBundle("file:///" + f.getAbsolutePath()); 
     240                                        } else { 
     241                                                context.println("cannot download file, file already exists"); 
     242                                                return; 
     243                                        } 
    220244                                } else { 
    221245                                        context.println("local path should starts with file:// or file:\\\\"); 
     
    244268                        context.println("        bundle.install groupId artifactId version"); 
    245269                        context.println("    bundlePath example: file:///C:\\bundle\\sample.jar or file:///root/kraken/sample.jar"); 
     270                } catch (MalformedURLException e) { 
     271                        context.println("Invalid bundle download URL"); 
     272                } catch (IOException e) { 
     273                        context.println(e.getMessage()); 
    246274                } 
    247275        } 
Note: See TracChangeset for help on using the changeset viewer.