Changeset b31ebfe for apps


Ignore:
Timestamp:
May 3, 2018 7:29:13 PM (2 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
7b2355a8
Parents:
9a7b582
Message:

SSL Wizard: Stop and restart Jetty if running
Make JettyStart? restartable
RouterAppManager? workaround for JettyStart? becoming untracked after stop

Location:
apps
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • apps/i2ptunnel/jsp/ssl.jsp

    r9a7b582 rb31ebfe  
    300300
    301301                // stop and restart jetty
    302 
     302                // this only works if running already, else it isn't registered
     303                net.i2p.app.ClientAppManager cmgr = ctx.clientAppManager();
     304                net.i2p.app.ClientApp jstart = cmgr.getRegisteredApp("Jetty");
     305                if (ok && jstart != null) {
     306                    String fullname = jstart.getDisplayName();
     307                    if (fullname.contains(jettySSLConfigPath) ||
     308                        fullname.contains(jettySSLConfigPath.replace("jetty-ssl.xml", "jetty.xml"))) {
     309                        // ok, this is probably the right ClientApp
     310                        net.i2p.app.ClientAppState state = jstart.getState();
     311                        if (state == net.i2p.app.ClientAppState.RUNNING) {
     312                            try {
     313                                // app becomes untracked,
     314                                // see workaround in RouterAppManager
     315                                jstart.shutdown(null);
     316                                for (int i = 0; i < 20; i++) {
     317                                    state = jstart.getState();
     318                                    if (state == net.i2p.app.ClientAppState.STOPPED) {
     319                                        if (i < 4) {
     320                                            try { Thread.sleep(1000); } catch (InterruptedException ie) { break; }
     321                                        }
     322                                        out.println("Jetty server stopped");
     323                                        break;
     324                                    }
     325                                    try { Thread.sleep(250); } catch (InterruptedException ie) { break; }
     326                                }
     327                                if (state != net.i2p.app.ClientAppState.STOPPED)
     328                                    out.println("Jetty server stop failed");
     329                            } catch (Throwable t) {
     330                                out.println("Jetty server stop failed: " + t);
     331                            }
     332                        }
     333                        if (state == net.i2p.app.ClientAppState.STOPPED) {
     334                            try {
     335                                jstart.startup();
     336                                for (int i = 0; i < 20; i++) {
     337                                    state = jstart.getState();
     338                                    if (state == net.i2p.app.ClientAppState.RUNNING) {
     339                                        out.println("Jetty server started");
     340                                        break;
     341                                    }
     342                                    try { Thread.sleep(250); } catch (InterruptedException ie) { break; }
     343                                }
     344                                if (state != net.i2p.app.ClientAppState.RUNNING)
     345                                    out.println("Jetty server start failed");
     346                            } catch (Throwable t) {
     347                                out.println("Jetty server start failed: " + t);
     348                                ok = false;
     349                            }
     350                        }
     351                    } else {
     352                        out.println("Unable to restart Jetty server");
     353                        out.println("You must start (or stop and restart) the Jetty server on <a href=\"/configclients\">the configure clients page</a>");
     354                    }
     355                } else if (ok) {
     356                    out.println("Unable to restart Jetty server");
     357                    out.println("You must start (or stop and restart) the Jetty server on <a href=\"/configclients\">the configure clients page</a>");
     358                }
    303359
    304360                // rewrite i2ptunnel.config
  • apps/jetty/java/src/net/i2p/jetty/JettyStart.java

    r9a7b582 rb31ebfe  
    114114
    115115    public synchronized void startup() {
    116         if (_state != INITIALIZED)
     116        if (_state != INITIALIZED && _state != STOPPED && _state != START_FAILED)
    117117            return;
    118118        if (_jettys.isEmpty()) {
Note: See TracChangeset for help on using the changeset viewer.