Exemple #1
0
        private URI BoltURI()
        {
            ConnectorPortRegister connectorPortRegister = (( GraphDatabaseAPI )_db).DependencyResolver.resolveDependency(typeof(ConnectorPortRegister));
            HostnamePort          boltHostNamePort      = connectorPortRegister.GetLocalAddress("bolt");

            return(URI.create("bolt://" + boltHostNamePort.Host + ":" + boltHostNamePort.Port));
        }
Exemple #2
0
 /// <param name="tf"> used to create IO threads to listen and handle network events </param>
 /// <param name="initializersMap">  function per bolt connector map to bootstrap configured protocols </param>
 /// <param name="connectorRegister"> register to keep local address information on all configured connectors </param>
 public NettyServer(ThreadFactory tf, IDictionary <BoltConnector, ProtocolInitializer> initializersMap, ConnectorPortRegister connectorRegister, Log log)
 {
     this._bootstrappersMap = initializersMap;
     this._tf = tf;
     this._connectionRegister = connectorRegister;
     this._log = log;
 }
Exemple #3
0
 internal PrometheusOutput(HostnamePort hostnamePort, MetricRegistry registry, Log logger, ConnectorPortRegister portRegister)
 {
     this._hostnamePort  = hostnamePort;
     this._registry      = registry;
     this._logger        = logger;
     this._portRegister  = portRegister;
     this._eventRegistry = new MetricRegistry();
 }
Exemple #4
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldBeAbleToSpecifyHostAndPort() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldBeAbleToSpecifyHostAndPort()
        {
            // When
            StartServerWithBoltEnabled();

            ConnectorPortRegister connectorPortRegister = GetDependency(typeof(ConnectorPortRegister));

            // Then
            AssertEventuallyServerResponds("localhost", connectorPortRegister.GetLocalAddress("bolt").Port);
        }
Exemple #5
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldLaunchBolt() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldLaunchBolt()
        {
            // When I run Neo4j with Bolt enabled
            _server = serverOnRandomPorts().withProperty((new BoltConnector("bolt")).type.name(), "BOLT").withProperty((new BoltConnector("bolt")).enabled.name(), "true").withProperty((new BoltConnector("bolt")).encryption_level.name(), "REQUIRED").withProperty((new BoltConnector("bolt")).listen_address.name(), "localhost:0").usingDataDir(TmpDir.Root.AbsolutePath).build();
            _server.start();
            ConnectorPortRegister connectorPortRegister = GetDependency(typeof(ConnectorPortRegister));

            // Then
            AssertEventuallyServerResponds("localhost", connectorPortRegister.GetLocalAddress("bolt").Port);
        }
Exemple #6
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldLookupBoltPortInRegisterIfConfiguredTo0() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldLookupBoltPortInRegisterIfConfiguredTo0()
        {
            BoltConnector         bolt     = new BoltConnector("honestJakesBoltConnector");
            ConnectorPortRegister register = new ConnectorPortRegister();

            register.Register(bolt.Key(), new InetSocketAddress(1337));

            DiscoverableURIs uris = communityDiscoverableURIs(Config.builder().withSetting(bolt.AdvertisedAddress, "apple.com:0").withSetting(bolt.Enabled, "true").withSetting(bolt.Type, BoltConnector.ConnectorType.BOLT.name()).build(), register);

            assertEquals("bolt://apple.com:1337", ToMap(uris)["bolt"]);
        }
Exemple #7
0
 public BoltServer(DatabaseManager databaseManager, JobScheduler jobScheduler, ConnectorPortRegister connectorPortRegister, NetworkConnectionTracker connectionTracker, UsageData usageData, Config config, Clock clock, Monitors monitors, LogService logService, DependencyResolver dependencyResolver)
 {
     this._databaseManager       = databaseManager;
     this._jobScheduler          = jobScheduler;
     this._connectorPortRegister = connectorPortRegister;
     this._connectionTracker     = connectionTracker;
     this._usageData             = usageData;
     this._config             = config;
     this._clock              = clock;
     this._monitors           = monitors;
     this._logService         = logService;
     this._dependencyResolver = dependencyResolver;
 }
Exemple #8
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: AbstractRESTInteraction(java.util.Map<String,String> config) throws java.io.IOException
        internal AbstractRESTInteraction(IDictionary <string, string> config)
        {
            CommunityServerBuilder builder = EnterpriseServerBuilder.serverOnRandomPorts();

            builder = builder.WithProperty((new BoltConnector("bolt")).type.name(), "BOLT").withProperty((new BoltConnector("bolt")).enabled.name(), "true").withProperty((new BoltConnector("bolt")).encryption_level.name(), OPTIONAL.name()).withProperty(LegacySslPolicyConfig.tls_key_file.name(), NeoInteractionLevel.tempPath("key", ".key")).withProperty(LegacySslPolicyConfig.tls_certificate_file.name(), NeoInteractionLevel.tempPath("cert", ".cert")).withProperty(GraphDatabaseSettings.auth_enabled.name(), Convert.ToString(true));

            foreach (KeyValuePair <string, string> entry in config.SetOfKeyValuePairs())
            {
                builder = builder.WithProperty(entry.Key, entry.Value);
            }
            this.Server = builder.Build();
            this.Server.start();
            _authManager           = this.Server.DependencyResolver.resolveDependency(typeof(EnterpriseAuthManager));
            _connectorPortRegister = Server.DependencyResolver.resolveDependency(typeof(ConnectorPortRegister));
        }
Exemple #9
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldGrabPortFromRegisterIfSetTo0() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldGrabPortFromRegisterIfSetTo0()
        {
            // Given
            BoltConnector         bolt   = new BoltConnector("honestJakesBoltConnector");
            Config                config = Config.builder().withSetting(EnterpriseEditionSettings.mode, EnterpriseEditionSettings.Mode.CORE.name()).withSetting(bolt.Enabled, "true").withSetting(bolt.Type, BoltConnector.ConnectorType.BOLT.name()).withSetting(bolt.ListenAddress, ":0").build();
            ConnectorPortRegister ports  = new ConnectorPortRegister();

            ports.Register(bolt.Key(), new InetSocketAddress(1337));

            // When
            IDictionary <string, object> asd = ToMap(EnterpriseDiscoverableURIs.EnterpriseDiscoverableURIsConflict(config, ports));

            // Then
            assertThat(asd["bolt_routing"], equalTo("bolt+routing://localhost:1337"));
        }
Exemple #10
0
 public override void Close()
 {
     _server.stop();
     this._connectorPortRegister = null;
     try
     {
         _additionalClosable.Dispose();
     }
     catch (IOException e)
     {
         throw new Exception(e);
     }
     try
     {
         if (LooksLikeMd5Hash(_serverFolder.Name))
         {
             FileUtils.deleteRecursively(_serverFolder);
         }
     }
     catch (IOException e)
     {
         throw new Exception("Failed to clean up test server directory.", e);
     }
 }
Exemple #11
0
        public static HostnamePort ConnectorAddress(GraphDatabaseService db, string name)
        {
            ConnectorPortRegister portRegister = (( GraphDatabaseAPI )db).DependencyResolver.resolveDependency(typeof(ConnectorPortRegister));

            return(portRegister.GetLocalAddress(name));
        }
Exemple #12
0
		 private int GetBoltConnectorPort( GraphDatabaseAPI databaseAPI )
		 {
			  ConnectorPortRegister connectorPortRegister = databaseAPI.DependencyResolver.resolveDependency( typeof( ConnectorPortRegister ) );
			  return connectorPortRegister.GetLocalAddress( BOLT_CONNECTOR_KEY ).Port;
		 }
Exemple #13
0
            public virtual Builder AddBoltConnectorFromConfig(string key, string scheme, Config config, Setting <URI> @override, ConnectorPortRegister portRegister)
            {
                // If an override is configured, add it with the HIGHEST precedence
                if (config.IsConfigured(@override))
                {
                    add(key, config.Get(@override), HIGHEST);
                }

                config.EnabledBoltConnectors().First().ifPresent(c =>
                {
                    AdvertisedSocketAddress address = config.Get(c.advertised_address);
                    int port = address.Port;
                    if (port == 0)
                    {
                        port = portRegister.GetLocalAddress(c.key()).Port;
                    }

                    // If advertised address is explicitly set, set the precedence to HIGH - eitherwise set it as LOWEST (default)
                    Add(key, scheme, address.Hostname, port, config.IsConfigured(c.advertised_address) ? HIGH : LOWEST);
                });

                return(this);
            }
Exemple #14
0
 public virtual void Start()
 {
     this._server.start();
     this._connectorPortRegister = ConnectorPortRegister(_server);
 }
Exemple #15
0
        public PlatformModule(File providedStoreDir, Config config, DatabaseInfo databaseInfo, GraphDatabaseFacadeFactory.Dependencies externalDependencies)
        {
            this.DatabaseInfo      = databaseInfo;
            this.DataSourceManager = new DataSourceManager(config);
            Dependencies           = new Dependencies();
            Dependencies.satisfyDependency(databaseInfo);

            Clock = Dependencies.satisfyDependency(CreateClock());
            Life  = Dependencies.satisfyDependency(CreateLife());

            this.StoreLayout = StoreLayout.of(providedStoreDir);

            config.AugmentDefaults(GraphDatabaseSettings.neo4j_home, StoreLayout.storeDirectory().Path);
            this.Config = Dependencies.satisfyDependency(config);

            FileSystem = Dependencies.satisfyDependency(CreateFileSystemAbstraction());
            Life.add(new FileSystemLifecycleAdapter(FileSystem));

            // Component monitoring
            Monitors = externalDependencies.Monitors() == null ? new Monitors() : externalDependencies.Monitors();
            Dependencies.satisfyDependency(Monitors);

            JobScheduler = Life.add(Dependencies.satisfyDependency(CreateJobScheduler()));
            StartDeferredExecutors(JobScheduler, externalDependencies.DeferredExecutors());

            // Cleanup after recovery, used by GBPTree, added to life in NeoStoreDataSource
            RecoveryCleanupWorkCollector = new GroupingRecoveryCleanupWorkCollector(JobScheduler);
            Dependencies.satisfyDependency(RecoveryCleanupWorkCollector);

            // Database system information, used by UDC
            UsageData = new UsageData(JobScheduler);
            Dependencies.satisfyDependency(Life.add(UsageData));

            // If no logging was passed in from the outside then create logging and register
            // with this life
            Logging = Dependencies.satisfyDependency(CreateLogService(externalDependencies.UserLogProvider()));

            config.Logger = Logging.getInternalLog(typeof(Config));

            Life.add(Dependencies.satisfyDependency(new StoreLockerLifecycleAdapter(CreateStoreLocker())));

            (new JvmChecker(Logging.getInternalLog(typeof(JvmChecker)), new JvmMetadataRepository())).checkJvmCompatibilityAndIssueWarning();

            string desiredImplementationName = config.Get(GraphDatabaseSettings.tracer);

            Tracers = Dependencies.satisfyDependency(new Tracers(desiredImplementationName, Logging.getInternalLog(typeof(Tracers)), Monitors, JobScheduler, Clock));
            Dependencies.satisfyDependency(Tracers.pageCacheTracer);
            Dependencies.satisfyDependency(FirstImplementor(typeof(LogRotationMonitor), Tracers.transactionTracer, LogRotationMonitor.NULL));
            Dependencies.satisfyDependency(FirstImplementor(typeof(CheckPointerMonitor), Tracers.checkPointTracer, CheckPointerMonitor.NULL));

            VersionContextSupplier = CreateCursorContextSupplier(config);

            CollectionsFactorySupplier = CreateCollectionsFactorySupplier(config, Life);

            Dependencies.satisfyDependency(VersionContextSupplier);
            PageCache = Dependencies.satisfyDependency(CreatePageCache(FileSystem, config, Logging, Tracers, VersionContextSupplier, JobScheduler));

            Life.add(new PageCacheLifecycle(PageCache));

            DiagnosticsManager = Life.add(Dependencies.satisfyDependency(new DiagnosticsManager(Logging.getInternalLog(typeof(DiagnosticsManager)))));
            SystemDiagnostics.registerWith(DiagnosticsManager);

            Dependencies.satisfyDependency(DataSourceManager);

            KernelExtensionFactories = externalDependencies.KernelExtensions();
            EngineProviders          = externalDependencies.ExecutionEngines();
            GlobalKernelExtensions   = Dependencies.satisfyDependency(new GlobalKernelExtensions(new SimpleKernelContext(StoreLayout.storeDirectory(), databaseInfo, Dependencies), KernelExtensionFactories, Dependencies, KernelExtensionFailureStrategies.fail()));

            UrlAccessRule = Dependencies.satisfyDependency(URLAccessRules.combined(externalDependencies.UrlAccessRules()));

            ConnectorPortRegister = new ConnectorPortRegister();
            Dependencies.satisfyDependency(ConnectorPortRegister);

            EventHandlers       = new KernelEventHandlers(Logging.getInternalLog(typeof(KernelEventHandlers)));
            PanicEventGenerator = new DatabasePanicEventGenerator(EventHandlers);

            PublishPlatformInfo(Dependencies.resolveDependency(typeof(UsageData)));
        }