Changeset d61af12


Ignore:
Timestamp:
Jan 2, 2009 8:09:20 PM (12 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
53ce3c4
Parents:
908c542
Message:

clean up and fix the possibly broken browser launcher config

File:
1 edited

Legend:

Unmodified
Added
Removed
  • apps/routerconsole/java/src/net/i2p/router/web/ConfigServiceHandler.java

    r908c542 rd61af12  
    44import java.io.FileWriter;
    55import java.io.IOException;
    6 import java.util.Iterator;
    7 import java.util.Properties;
    8 import java.util.TreeMap;
     6import java.util.List;
    97
    108import net.i2p.apps.systray.SysTray;
     
    1210import net.i2p.data.DataHelper;
    1311import net.i2p.router.Router;
     12import net.i2p.router.startup.ClientAppConfig;
    1413
    1514import org.tanukisoftware.wrapper.WrapperManager;
     
    144143    }
    145144
    146     private final static String NL = System.getProperty("line.separator");
    147145    private void browseOnStartup(boolean shouldLaunchBrowser) {
    148         File f = new File("clients.config");
    149         Properties p = new Properties();
    150         try {
    151             DataHelper.loadProps(p, f);
    152            
    153             int i = 0;
    154             int launchIndex = -1;
    155             while (true) {
    156                 String className = p.getProperty("clientApp." + i + ".main");
    157                 if (className == null) break;
    158                 if (UrlLauncher.class.getName().equals(className)) {
    159                     launchIndex = i;
    160                     break;
    161                 }
    162                 i++;
     146        List clients = ClientAppConfig.getClientApps(_context);
     147        boolean found = false;
     148        for (int cur = 0; cur < clients.size(); cur++) {
     149            ClientAppConfig ca = (ClientAppConfig) clients.get(cur);
     150            if (UrlLauncher.class.getName().equals(ca.className)) {
     151                ca.disabled = !shouldLaunchBrowser;
     152                found = true;
     153                break;
    163154            }
    164            
    165             if ((launchIndex >= 0) && shouldLaunchBrowser)
    166                 return;
    167             if ((launchIndex < 0) && !shouldLaunchBrowser)
    168                 return;
    169            
    170             if (shouldLaunchBrowser) {
    171                 p.setProperty("clientApp." + i + ".main", UrlLauncher.class.getName());
    172                 p.setProperty("clientApp." + i + ".name", "BrowserLauncher");
    173                 p.setProperty("clientApp." + i + ".args", "http://localhost:7657/index.jsp");
    174                 p.setProperty("clientApp." + i + ".delay", "5");
    175             } else {
    176                 p.remove("clientApp." + launchIndex + ".main");
    177                 p.remove("clientApp." + launchIndex + ".name");
    178                 p.remove("clientApp." + launchIndex + ".args");
    179                 p.remove("clientApp." + launchIndex + ".onBoot");
    180                 p.remove("clientApp." + launchIndex + ".delay");
    181 
    182                 i = launchIndex + 1;
    183                 while (true) {
    184                     String main = p.getProperty("clientApp." + i + ".main");
    185                     String name = p.getProperty("clientApp." + i + ".name");
    186                     String args = p.getProperty("clientApp." + i + ".args");
    187                     String boot = p.getProperty("clientApp." + i + ".onBoot");
    188                     String delay= p.getProperty("clientApp." + i + ".delay");
    189 
    190                     if (main == null) break;
    191 
    192                     p.setProperty("clientApp." + (i-1) + ".main", main);
    193                     p.setProperty("clientApp." + (i-1) + ".name", name);
    194                     p.setProperty("clientApp." + (i-1) + ".args", args);
    195                     if (boot != null)
    196                         p.setProperty("clientApp." + (i-1) + ".onBoot", boot);
    197                     if (delay != null)
    198                         p.setProperty("clientApp." + (i-1) + ".delay", delay);
    199 
    200                     p.remove("clientApp." + i + ".main");
    201                     p.remove("clientApp." + i + ".name");
    202                     p.remove("clientApp." + i + ".args");
    203                     p.remove("clientApp." + i + ".onBoot");
    204                     p.remove("clientApp." + i + ".delay");
    205 
    206                     i++;
    207                 }
    208             }
    209            
    210             TreeMap sorted = new TreeMap(p);
    211             FileWriter out = new FileWriter(f);
    212             for (Iterator iter = sorted.keySet().iterator(); iter.hasNext(); ) {
    213                 String name = (String)iter.next();
    214                 String val = (String)sorted.get(name);
    215                 out.write(name + "=" + val + NL);
    216             }
    217             out.close();
    218         } catch (IOException ioe) {
    219             addFormError("Error updating the client config");
    220155        }
     156        // releases <= 0.6.5 deleted the entry completely
     157        if (shouldLaunchBrowser && !found) {
     158            ClientAppConfig ca = new ClientAppConfig(UrlLauncher.class.getName(), "consoleBrowser", "http://localhost:7657", 5, false);
     159            clients.add(ca);
     160        }
     161        ClientAppConfig.writeClientAppConfig(_context, clients);
    221162    }
    222163}
Note: See TracChangeset for help on using the changeset viewer.