# Package net.i2p.router.startup

The I2P startup package loads configuration when I2P is started.

See: Description

- Class Summary
  Class | Description
  --- | ---
  BootCommSystemJob | This actually boots almost everything
  BootNetworkDbJob | start up the network database
  BootPeerManagerJob | start up the peer manager
  BuildTrustedLinksJob | For future restricted routes.
  ClientAppConfig | Contains a really simple ClientApp "structure" and some static methods so they can be used both by LoadClientAppsJob and by the configuration page in the router console.
  CreateRouterInfoJob | Warning - misnamed.
  LoadClientAppsJob | Run any client applications specified in clients.config.
  LoadClientAppsJob.DelayedRunClient | Public for router console only, not for use by others, subject to change
  LoadRouterInfoJob | Run once or twice at startup by StartupJob, and then runs BootCommSystemJob
  LoadRouterInfoJob.KeyData | Key data container for router information.
  MigrateJetty | Second migration, as of 2.9.0:
  PortableWorkingDir | Get a relative working directory for i2p based upon properties by parent process.
  RebuildRouterInfoJob | This used be called from StartAcceptingClientsJob but is now disabled.
  RouterAppManager | Notify the router of events, and provide methods for client apps to find each other.
  StartAcceptingClientsJob | start I2CP interface
  StartupJob | The StartupJob should be run once on router startup to initialize the system and set things in motion.
  WorkingDir | Get a working directory for i2p.

## Package net.i2p.router.startup Description

The I2P startup package loads configuration when I2P is started.

The startup consists of a number of different jobs, like loading data from files for network database, creating new router information (keypairs), and so on.

    Calling order:

    StartupJob
            LoadClientAppsJob
                    starts clients and queues delayed client jobs
            start stats publisher
            LoadRouterInfoJob
                    RebuildRouterInfoJob if necessary
                            CreateRouterInfoJob if necessary
                    BootCommSystemJob
                            allow parallel operation in job queue
                            BootNetworkDbJob
                                    starts netdb
                            BuildTrustedLinksJob (never used)
                            BootPeerManagerJob
                                    starts peer manager
                            start comm system
                            start tunnel manager
                            StartAcceptingClientsJob
                                    starts client manager
                            ReadConfigJob
                                    loops every 30 seconds