Changeset be7623a4


Ignore:
Timestamp:
Dec 29, 2011 11:25:27 PM (8 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
03e86fcb
Parents:
07162b5
Message:
  • Start webapps after console for faster startup
  • Add delay in systray port checker to ensure console is up
  • Move I2PRequestLog to net.i2p.jetty package
Files:
3 edited
1 moved

Legend:

Unmodified
Added
Removed
  • apps/jetty/java/src/net/i2p/jetty/I2PRequestLog.java

    r07162b5 rbe7623a4  
    1313//========================================================================
    1414
    15 package org.mortbay.http;
     15package net.i2p.jetty;
    1616
    1717import java.io.IOException;
  • apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java

    r07162b5 rbe7623a4  
    276276            _webAppsDir += '/';
    277277
    278         List<String> notStarted = new ArrayList();
    279278        WebAppContext rootWebApp = null;
    280279        ServletHandler rootServletHandler = null;
     
    370369            chColl.addHandler(rootWebApp);
    371370
    372             File dir = new File(_webAppsDir);
    373             String fileNames[] = dir.list(WarFilenameFilter.instance());
    374             if (fileNames != null) {
    375                 for (int i = 0; i < fileNames.length; i++) {
    376                     try {
    377                         String appName = fileNames[i].substring(0, fileNames[i].lastIndexOf(".war"));
    378                         String enabled = props.getProperty(PREFIX + appName + ENABLED);
    379                         if (! "false".equals(enabled)) {
    380                             String path = new File(dir, fileNames[i]).getCanonicalPath();
    381                             tmpdir = new SecureDirectory(workDir, appName + "-" +
    382                                                                   (_listenPort != null ? _listenPort : _sslListenPort));
    383                             WebAppStarter.addWebApp(I2PAppContext.getGlobalContext(), chColl, appName, path, tmpdir);
    384 
    385                             if (enabled == null) {
    386                                 // do this so configclients.jsp knows about all apps from reading the config
    387                                 props.setProperty(PREFIX + appName + ENABLED, "true");
    388                                 rewrite = true;
    389                             }
    390                         } else {
    391                             notStarted.add(appName);
    392                         }
    393                     } catch (IOException ioe) {
    394                         System.err.println("Error resolving '" + fileNames[i] + "' in '" + dir);
    395                     }
    396                 }
    397             }
    398371        } catch (Exception ioe) {
    399372            ioe.printStackTrace();
    400373        }
    401374
    402         if (rewrite)
    403             storeWebAppProperties(props);
    404375        try {
    405376            // start does a mapContexts()
     
    415386            me.printStackTrace();
    416387        }
     388
     389        // Start all the other webapps after the server is up,
     390        // so things start faster.
     391        // Jetty 6 starts the connector before the router console is ready
     392        // This also prevents one webapp from breaking the whole thing
     393        List<String> notStarted = new ArrayList();
     394        if (_server.isRunning()) {
     395            File dir = new File(_webAppsDir);
     396            String fileNames[] = dir.list(WarFilenameFilter.instance());
     397            if (fileNames != null) {
     398                for (int i = 0; i < fileNames.length; i++) {
     399                    String appName = fileNames[i].substring(0, fileNames[i].lastIndexOf(".war"));
     400                    String enabled = props.getProperty(PREFIX + appName + ENABLED);
     401                    if (! "false".equals(enabled)) {
     402                        try {
     403                            String path = new File(dir, fileNames[i]).getCanonicalPath();
     404                            WebAppStarter.startWebApp(I2PAppContext.getGlobalContext(), chColl, appName, path);
     405                            if (enabled == null) {
     406                                // do this so configclients.jsp knows about all apps from reading the config
     407                                props.setProperty(PREFIX + appName + ENABLED, "true");
     408                                rewrite = true;
     409                            }
     410                        } catch (Throwable t) {
     411                            System.err.println("ERROR: Failed to start " + appName + ' ' + t);
     412                            t.printStackTrace();
     413                            notStarted.add(appName);
     414                        }
     415                    } else {
     416                        notStarted.add(appName);
     417                    }
     418                }
     419            }
     420        } else {
     421            System.err.println("ERROR: Router console did not start, not starting webapps");
     422        }
     423
     424        if (rewrite)
     425            storeWebAppProperties(props);
    417426
    418427        if (rootServletHandler != null && notStarted.size() > 0) {
  • apps/systray/java/src/net/i2p/apps/systray/UrlLauncher.java

    r07162b5 rbe7623a4  
    7878                   test.close();
    7979                } catch (IOException ioe) {}
     80                // Jetty 6 seems to start the Connector before the
     81                // webapp is completely ready
     82                try {
     83                   Thread.sleep(2*1000);
     84                } catch (InterruptedException ie) {}
    8085                return true;
    8186            } catch (Exception e) {}
  • installer/resources/eepsite/jetty.xml

    r07162b5 rbe7623a4  
    239239    <Ref id="RequestLog">
    240240      <Set name="requestLog">
    241         <New id="RequestLogImpl" class="org.mortbay.http.I2PRequestLog">
     241        <New id="RequestLogImpl" class="net.i2p.jetty.I2PRequestLog">
    242242          <Set name="filename">./eepsite/logs/yyyy_mm_dd.request.log</Set>
    243243          <Set name="filenameDateFormat">yyyy_MM_dd</Set>
Note: See TracChangeset for help on using the changeset viewer.