protected Collection<InjectableProvider<?>> createDefaultInjectables() { Collection<InjectableProvider<?>> singletons = new ArrayList<>(); Database database = getDatabase(); singletons.add( new DatabaseProvider( database ) ); singletons.add( new DatabaseActions.Provider( databaseActions ) ); singletons.add( new GraphDatabaseServiceProvider( database ) ); singletons.add( new NeoServerProvider( this ) ); singletons.add( providerForSingleton( new ConfigAdapter( getConfig() ), Configuration.class ) ); singletons.add( providerForSingleton( getConfig(), Config.class ) ); singletons.add( new WebServerProvider( getWebServer() ) ); PluginInvocatorProvider pluginInvocatorProvider = new PluginInvocatorProvider( this ); singletons.add( pluginInvocatorProvider ); RepresentationFormatRepository repository = new RepresentationFormatRepository( this ); singletons.add( new InputFormatProvider( repository ) ); singletons.add( new OutputFormatProvider( repository ) ); singletons.add( new CypherExecutorProvider( cypherExecutor ) ); singletons.add( providerForSingleton( transactionFacade, TransactionFacade.class ) ); singletons.add( providerFromSupplier( authManagerSupplier, AuthManager.class ) ); singletons.add( providerFromSupplier( userManagerSupplier, UserManagerSupplier.class ) ); singletons.add( new TransactionFilter( database ) ); singletons.add( new LoggingProvider( userLogProvider ) ); singletons.add( providerForSingleton( userLogProvider.getLog( NeoServer.class ), Log.class ) ); singletons.add( providerForSingleton( resolveDependency( UsageData.class ), UsageData.class ) ); return singletons; }
public AbstractNeoServer( Config config, GraphFactory graphFactory, Dependencies dependencies ) { this.config = config; this.userLogProvider = dependencies.userLogProvider(); this.log = userLogProvider.getLog( getClass() ); log.info( NEO4J_IS_STARTING_MESSAGE ); verifyConnectorsConfiguration( config ); httpConnector = findConnector( config, Encryption.NONE ); httpListenAddress = listenAddressFor( config, httpConnector ); httpAdvertisedAddress = advertisedAddressFor( config, httpConnector ); httpsConnector = findConnector( config, Encryption.TLS ); httpsListenAddress = listenAddressFor( config, httpsConnector ); httpsAdvertisedAddress = advertisedAddressFor( config, httpsConnector ); database = new LifecycleManagingDatabase( config, graphFactory, dependencies ); life.add( database ); life.add( new ServerDependenciesLifeCycleAdapter() ); life.add( new ServerComponentsLifecycleAdapter() ); }
private void startWebServer() throws Exception { try { setUpHttpLogging(); webServer.start(); registerHttpAddressAfterStartup(); registerHttpsAddressAfterStartup(); log.info( "Remote interface available at %s", baseUri() ); } catch ( Exception e ) { ListenSocketAddress address = httpListenAddress != null ? httpListenAddress : httpsListenAddress; log.error( "Failed to start Neo4j on %s: %s", address, e.getMessage() ); throw e; } }
@Override public void start() { dependencyResolver = database.getGraph().getDependencyResolver(); authManagerSupplier = dependencyResolver.provideDependency( AuthManager.class ); userManagerSupplier = dependencyResolver.provideDependency( UserManagerSupplier.class ); sslPolicyFactorySupplier = dependencyResolver.provideDependency( SslPolicyLoader.class ); webServer = createWebServer(); for ( ServerModule moduleClass : createServerModules() ) { registerModule( moduleClass ); } } }
@Override public void start() throws Throwable { DiagnosticsManager diagnosticsManager = resolveDependency( DiagnosticsManager.class ); Log diagnosticsLog = diagnosticsManager.getTargetLog(); diagnosticsLog.info( "--- SERVER STARTED START ---" ); connectorPortRegister = dependencyResolver.resolveDependency( ConnectorPortRegister.class ); databaseActions = createDatabaseActions(); transactionFacade = createTransactionalActions(); cypherExecutor = new CypherExecutor( database, userLogProvider ); configureWebServer(); cypherExecutor.start(); startModules(); startWebServer(); diagnosticsLog.info( "--- SERVER STARTED END ---" ); }
private Jetty9WebServer getWebServer(NeoServer neoServer) { if (neoServer instanceof AbstractNeoServer) { WebServer webServer = ((AbstractNeoServer) neoServer).getWebServer(); if (webServer instanceof Jetty9WebServer) { return (Jetty9WebServer) webServer; } throw new IllegalStateException("Server is not Jetty9WebServer"); } throw new IllegalStateException("Server is not an AbstractNeoServer"); }
private static void verifyConnectorsConfiguration( Config config ) { HttpConnector httpConnector = findConnector( config, Encryption.NONE ); HttpConnector httpsConnector = findConnector( config, Encryption.TLS ); if ( httpConnector == null && httpsConnector == null ) { throw new IllegalArgumentException( "Either HTTP or HTTPS connector must be configured to run the server" ); } }
private void setUpHttpLogging() throws IOException { if ( !getConfig().get( http_logging_enabled ) ) { return; } requestLog = new AsyncRequestLog( dependencyResolver.resolveDependency( FileSystemAbstraction.class ), config.get( db_timezone ).getZoneId(), config.get( http_log_path ).toString(), config.get( http_logging_rotation_size ), config.get( http_logging_rotation_keep_number ) ); webServer.setRequestLog( requestLog ); }
private void configureWebServer() { webServer.setHttpAddress( httpListenAddress ); webServer.setHttpsAddress( httpsListenAddress ); webServer.setMaxThreads( config.get( ServerSettings.webserver_max_threads ) ); webServer.setWadlEnabled( config.get( ServerSettings.wadl_enabled ) ); webServer.setDefaultInjectables( createDefaultInjectables() ); String sslPolicyName = config.get( ServerSettings.ssl_policy ); if ( sslPolicyName != null ) { SslPolicy sslPolicy = sslPolicyFactorySupplier.get().getPolicy( sslPolicyName ); webServer.setSslPolicy( sslPolicy ); } }
@Override public void start() { dependencyResolver = database.getGraph().getDependencyResolver(); authManagerSupplier = dependencyResolver.provideDependency( AuthManager.class ); userManagerSupplier = dependencyResolver.provideDependency( UserManagerSupplier.class ); sslPolicyFactorySupplier = dependencyResolver.provideDependency( SslPolicyLoader.class ); webServer = createWebServer(); for ( ServerModule moduleClass : createServerModules() ) { registerModule( moduleClass ); } } }
@Override public void start() throws Throwable { DiagnosticsManager diagnosticsManager = resolveDependency( DiagnosticsManager.class ); Log diagnosticsLog = diagnosticsManager.getTargetLog(); diagnosticsLog.info( "--- SERVER STARTED START ---" ); connectorPortRegister = dependencyResolver.resolveDependency( ConnectorPortRegister.class ); databaseActions = createDatabaseActions(); transactionFacade = createTransactionalActions(); cypherExecutor = new CypherExecutor( database, userLogProvider ); configureWebServer(); cypherExecutor.start(); startModules(); startWebServer(); diagnosticsLog.info( "--- SERVER STARTED END ---" ); }
private static void verifyConnectorsConfiguration( Config config ) { HttpConnector httpConnector = findConnector( config, Encryption.NONE ); HttpConnector httpsConnector = findConnector( config, Encryption.TLS ); if ( httpConnector == null && httpsConnector == null ) { throw new IllegalArgumentException( "Either HTTP or HTTPS connector must be configured to run the server" ); } }
private void setUpHttpLogging() throws IOException { if ( !getConfig().get( http_logging_enabled ) ) { return; } requestLog = new AsyncRequestLog( dependencyResolver.resolveDependency( FileSystemAbstraction.class ), config.get( db_timezone ).getZoneId(), config.get( http_log_path ).toString(), config.get( http_logging_rotation_size ), config.get( http_logging_rotation_keep_number ) ); webServer.setRequestLog( requestLog ); }
private void configureWebServer() { webServer.setHttpAddress( httpListenAddress ); webServer.setHttpsAddress( httpsListenAddress ); webServer.setMaxThreads( config.get( ServerSettings.webserver_max_threads ) ); webServer.setWadlEnabled( config.get( ServerSettings.wadl_enabled ) ); webServer.setDefaultInjectables( createDefaultInjectables() ); String sslPolicyName = config.get( ServerSettings.ssl_policy ); if ( sslPolicyName != null ) { SslPolicy sslPolicy = sslPolicyFactorySupplier.get().getPolicy( sslPolicyName ); webServer.setSslPolicy( sslPolicy ); } }
protected Collection<InjectableProvider<?>> createDefaultInjectables() { Collection<InjectableProvider<?>> singletons = new ArrayList<>(); Database database = getDatabase(); singletons.add( new DatabaseProvider( database ) ); singletons.add( new DatabaseActions.Provider( databaseActions ) ); singletons.add( new GraphDatabaseServiceProvider( database ) ); singletons.add( new NeoServerProvider( this ) ); singletons.add( providerForSingleton( new ConfigAdapter( getConfig() ), Configuration.class ) ); singletons.add( providerForSingleton( getConfig(), Config.class ) ); singletons.add( new WebServerProvider( getWebServer() ) ); PluginInvocatorProvider pluginInvocatorProvider = new PluginInvocatorProvider( this ); singletons.add( pluginInvocatorProvider ); RepresentationFormatRepository repository = new RepresentationFormatRepository( this ); singletons.add( new InputFormatProvider( repository ) ); singletons.add( new OutputFormatProvider( repository ) ); singletons.add( new CypherExecutorProvider( cypherExecutor ) ); singletons.add( providerForSingleton( transactionFacade, TransactionFacade.class ) ); singletons.add( providerFromSupplier( authManagerSupplier, AuthManager.class ) ); singletons.add( providerFromSupplier( userManagerSupplier, UserManagerSupplier.class ) ); singletons.add( new TransactionFilter( database ) ); singletons.add( new LoggingProvider( userLogProvider ) ); singletons.add( providerForSingleton( userLogProvider.getLog( NeoServer.class ), Log.class ) ); singletons.add( providerForSingleton( resolveDependency( UsageData.class ), UsageData.class ) ); return singletons; }
private void startWebServer() throws Exception { try { setUpHttpLogging(); webServer.start(); registerHttpAddressAfterStartup(); registerHttpsAddressAfterStartup(); log.info( "Remote interface available at %s", baseUri() ); } catch ( Exception e ) { ListenSocketAddress address = httpListenAddress != null ? httpListenAddress : httpsListenAddress; log.error( "Failed to start Neo4j on %s: %s", address, e.getMessage() ); throw e; } }
public AbstractNeoServer( Config config, GraphFactory graphFactory, Dependencies dependencies ) { this.config = config; this.userLogProvider = dependencies.userLogProvider(); this.log = userLogProvider.getLog( getClass() ); log.info( NEO4J_IS_STARTING_MESSAGE ); verifyConnectorsConfiguration( config ); httpConnector = findConnector( config, Encryption.NONE ); httpListenAddress = listenAddressFor( config, httpConnector ); httpAdvertisedAddress = advertisedAddressFor( config, httpConnector ); httpsConnector = findConnector( config, Encryption.TLS ); httpsListenAddress = listenAddressFor( config, httpsConnector ); httpsAdvertisedAddress = advertisedAddressFor( config, httpsConnector ); database = new LifecycleManagingDatabase( config, graphFactory, dependencies ); life.add( database ); life.add( new ServerDependenciesLifeCycleAdapter() ); life.add( new ServerComponentsLifecycleAdapter() ); }