Package net.i2p.router.web
Class RouterConsoleRunner
java.lang.Object
net.i2p.router.web.RouterConsoleRunner
public class RouterConsoleRunner extends Object implements RouterApp
Start the router console.
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_LISTEN_PORT
static String
ENABLED
static String
JETTY_REALM
static String
PREFIX
(package private) static String
PROP_ALLOWED_HOSTS
static String
PROP_CONSOLE_PW
static String
PROP_DTG_ENABLED
static String
PROP_KEY_PASSWORD
static String
PROP_KEYSTORE_PASSWORD
static String
PROP_PW_ENABLE
static String
ROUTERCONSOLE
(package private) static FileFilter
WAR_FILTER
-
Constructor Summary
Constructors Constructor Description RouterConsoleRunner(RouterContext ctx, ClientAppManager mgr, String[] args)
non-SSL: RouterConsoleRunner RouterConsoleRunner 7657 RouterConsoleRunner 7657 127.0.0.1 RouterConsoleRunner 7657 127.0.0.1,::1 RouterConsoleRunner 7657 127.0.0.1,::1 ./webapps/ SSL: RouterConsoleRunner -s 7657 RouterConsoleRunner -s 7657 127.0.0.1 RouterConsoleRunner -s 7657 127.0.0.1,::1 RouterConsoleRunner -s 7657 127.0.0.1,::1 ./webapps/ If using both, non-SSL must be first: RouterConsoleRunner 7657 127.0.0.1 -s 7667 RouterConsoleRunner 7657 127.0.0.1 -s 7667 127.0.0.1 RouterConsoleRunner 7657 127.0.0.1,::1 -s 7667 127.0.0.1,::1 RouterConsoleRunner 7657 127.0.0.1,::1 -s 7667 127.0.0.1,::1 ./webapps/ -
Method Summary
Modifier and Type Method Description (package private) Server
getConsoleServer()
To get to Jetty(package private) static Server
getConsoleServer(I2PAppContext ctx)
To get to Jetty.String
getDisplayName()
The display name of the ClientApp, used in user interfaces.String
getName()
The generic name of the ClientApp, used for registration, e.g.ClientAppState
getState()
The current state of the ClientApp.(package private) static void
initialize(RouterContext ctx, WebAppContext context)
Set up basic security constraints for the webapp.static String
jettyVersion()
static void
main(String[] args)
void
shutdown(String[] args)
Do not take a long time.void
startConsole()
http://irc.codehaus.org/display/JETTY/Porting+to+jetty6void
startup()
Do not take a long time.static void
storeWebAppProperties(RouterContext ctx, Properties props)
static Properties
webAppProperties(String dir)
static Properties
webAppProperties(I2PAppContext ctx)
-
Field Details
-
JETTY_REALM
- See Also:
- Constant Field Values
-
PROP_CONSOLE_PW
- See Also:
- Constant Field Values
-
PROP_PW_ENABLE
- See Also:
- Constant Field Values
-
ROUTERCONSOLE
- See Also:
- Constant Field Values
-
PREFIX
- See Also:
- Constant Field Values
-
ENABLED
- See Also:
- Constant Field Values
-
PROP_KEYSTORE_PASSWORD
- See Also:
- Constant Field Values
-
PROP_KEY_PASSWORD
- See Also:
- Constant Field Values
-
DEFAULT_LISTEN_PORT
public static final int DEFAULT_LISTEN_PORT- See Also:
- Constant Field Values
-
PROP_DTG_ENABLED
- See Also:
- Constant Field Values
-
PROP_ALLOWED_HOSTS
- See Also:
- Constant Field Values
-
WAR_FILTER
- Since:
- 0.9.34
-
-
Constructor Details
-
RouterConsoleRunner
non-SSL: RouterConsoleRunner RouterConsoleRunner 7657 RouterConsoleRunner 7657 127.0.0.1 RouterConsoleRunner 7657 127.0.0.1,::1 RouterConsoleRunner 7657 127.0.0.1,::1 ./webapps/ SSL: RouterConsoleRunner -s 7657 RouterConsoleRunner -s 7657 127.0.0.1 RouterConsoleRunner -s 7657 127.0.0.1,::1 RouterConsoleRunner -s 7657 127.0.0.1,::1 ./webapps/ If using both, non-SSL must be first: RouterConsoleRunner 7657 127.0.0.1 -s 7667 RouterConsoleRunner 7657 127.0.0.1 -s 7667 127.0.0.1 RouterConsoleRunner 7657 127.0.0.1,::1 -s 7667 127.0.0.1,::1 RouterConsoleRunner 7657 127.0.0.1,::1 -s 7667 127.0.0.1,::1 ./webapps/
- Parameters:
args
- second arg may be a comma-separated list of bind addresses, for example ::1,127.0.0.1 On XP, the other order (127.0.0.1,::1) fails the IPV6 bind, because 127.0.0.1 will bind ::1 also. But even though it's bound to both, we can't connect to [::1]:7657 for some reason. So the wise choice is ::1,127.0.0.1
-
-
Method Details
-
main
-
startup
public void startup()Description copied from interface:ClientApp
Do not take a long time. Do not block. Start threads here if necessary. Client must call ClientAppManager.notify() at least once within this method to change the state from INITIALIZED to something else. Will not be called multiple times on the same object. -
shutdown
Description copied from interface:ClientApp
Do not take a long time. Do not block. Use a thread if necessary. If previously running, client must call ClientAppManager.notify() at least once within this method to change the state to STOPPING or STOPPED. May be called multiple times on the same object, in any state. -
getState
Description copied from interface:ClientApp
The current state of the ClientApp. -
getName
Description copied from interface:ClientApp
The generic name of the ClientApp, used for registration, e.g. "console". Do not translate. -
getDisplayName
Description copied from interface:ClientApp
The display name of the ClientApp, used in user interfaces. The app must translate.- Specified by:
getDisplayName
in interfaceClientApp
- Returns:
- non-null
- Since:
- 0.9.4
-
getConsoleServer
Server getConsoleServer()To get to Jetty- Returns:
- may be null or stopped perhaps
- Since:
- Jetty 6 since it doesn't have Server.getServers()
-
getConsoleServer
To get to Jetty. Warning, this will NOT work during shutdown, because changeState(STOPPING) will unregister us first.- Returns:
- may be null or stopped perhaps
- Since:
- 0.9.38
-
jettyVersion
- Since:
- 0.8.13, moved from LogsHelper in 0.9.33
-
startConsole
public void startConsole()http://irc.codehaus.org/display/JETTY/Porting+to+jetty6Server HandlerCollection HostCheckHandler (extends GzipHandler) ContextHandlerCollection LocaleWebAppHandler (routerconsole) SessionHandler SecurityHandler ServletHandler servlets... WebAppContext (i2psnark) WebAppContext (i2ptunnel) WebAppContext (imagegen) WebAppContext (susidns) WebAppContext (susimail) WebAppContext (for each plugin with a .war) DefaultHandler RequestLogHandler (opt)
Porting to Jetty 9: http://dev.eclipse.org/mhonarc/lists/jetty-dev/msg01952.html You are missing a few facts about Jetty 9.1 ... First, there are no longer any blocking connectors. Its all async / nio connectors now. (mainly because that's the direction that the servlet api 3.1 is taking) Next, there is only 1 connector. The ServerConnector. However, it takes 1 or more ConnectionFactory implementations to know how to handle the incoming connection. We have factories for HTTP (0.9 thru 1.1), SPDY, SSL-http, and SSL-npn so far. This list of factories will expand as the future of connectivity to web servers is ever growing (think HTTP/2) Use the embedded examples for help understanding this. http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyConnectors.java?id=jetty-9.1.0.RC0 -
initialize
Set up basic security constraints for the webapp. Add all users and passwords. -
webAppProperties
- Since:
- 0.9.4
-
webAppProperties
-
storeWebAppProperties
-