VisClient/org/hfbk/util/Updater.java

Go to the documentation of this file.
00001 package org.hfbk.util;
00002 
00003 import java.io.File;
00004 import java.io.IOException;
00005 import java.net.URL;
00006 
00007 import org.dronus.graph.Node;
00008 import org.hfbk.vis.Prefs;
00009 import org.hfbk.vis.source.Source;
00010 
00011 public class Updater {
00012 
00013         static final String visPath = "VisClient/";
00014 
00015         static final String sourcePath = "org/hfbk/vis/source";
00016 
00017         public static void update() {
00018                 System.out.print("Checking for sources update.. ");
00019                 Source s= Source.getSource(Prefs.current.baseURL
00020                                 + "graph.php?action=getgraph&source=files&path=" + visPath
00021                                 + sourcePath);
00022                 try {
00023                         s.join();
00024                 } catch (InterruptedException e) {
00025                         throw new RuntimeException(e);
00026                 }
00027 
00028                 Node root = s.graph.getRoot();
00029                 
00030                 boolean updated=false;
00031                 
00032                 for (Node file : root.getFromNodes())
00033                         if (file.type.equals("URL")
00034                                         && file.text.matches("Source.*\\.class")) {
00035                                 File target = new File(sourcePath + "/" + file.text);
00036                                 if (!target.exists()|| target.lastModified() / 1000 < Long.parseLong(file.getSubNodeText("date")))
00037                                         try {
00038                                                 updated=true;
00039                                                 URL url = new URL(Prefs.current.baseURL + visPath + sourcePath + "/" + file.text);
00040                                                 HTTPUtils.download(url, target);
00041                                         } catch (IOException e) {
00042                                                 throw new RuntimeException(e);
00043                                         }
00044                         }
00045                 if(!updated) System.out.println("already up to date!");         
00046         }
00047 
00048         public static void main(String[] args) {
00049                 Updater.update();
00050         }
00051 
00052 }

Generated on Tue Apr 7 17:57:20 2009 for visclient by  doxygen 1.5.1