示例#1
0
        /// <param name="config"> </param>
        /// <param name="dependencies"> </param>
        /// <param name="policyNameSetting">
        /// @return </param>
        private SslPolicy GetSslPolicy(Config config, Dependencies dependencies, Setting <string> policyNameSetting)
        {
            SslPolicyLoader sslPolicyLoader = ( SslPolicyLoader )dependencies.ResolveDependency(typeof(SslPolicyLoader));
            string          policyName      = ( string )config.Get(policyNameSetting);

            return(sslPolicyLoader.GetPolicy(policyName));
        }
示例#2
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldConsultUnsatisfiedDependencyHandlerOnFailingDependencyClasses()
        public virtual void ShouldConsultUnsatisfiedDependencyHandlerOnFailingDependencyClasses()
        {
            // GIVEN
            KernelContext context = mock(typeof(KernelContext));
            KernelExtensionFailureStrategy handler = mock(typeof(KernelExtensionFailureStrategy));
            Dependencies dependencies = new Dependencies();               // that hasn't got anything.
            UninitializableKernelExtensionFactory extensionFactory = new UninitializableKernelExtensionFactory();
            GlobalKernelExtensions extensions = new GlobalKernelExtensions(context, iterable(extensionFactory), dependencies, handler);

            // WHEN
            LifeSupport life = new LifeSupport();

            life.Add(extensions);
            try
            {
                life.Start();

                // THEN
                verify(handler).handle(eq(extensionFactory), any(typeof(System.ArgumentException)));
            }
            finally
            {
                life.Shutdown();
            }
        }
示例#3
0
        public ClusteringModule(DiscoveryServiceFactory discoveryServiceFactory, MemberId myself, PlatformModule platformModule, File clusterStateDirectory, DatabaseLayout databaseLayout)
        {
            LifeSupport           life                  = platformModule.Life;
            Config                config                = platformModule.Config;
            LogProvider           logProvider           = platformModule.Logging.InternalLogProvider;
            LogProvider           userLogProvider       = platformModule.Logging.UserLogProvider;
            Dependencies          dependencies          = platformModule.Dependencies;
            Monitors              monitors              = platformModule.Monitors;
            FileSystemAbstraction fileSystem            = platformModule.FileSystem;
            RemoteMembersResolver remoteMembersResolver = chooseResolver(config, platformModule.Logging);

            _topologyService = discoveryServiceFactory.CoreTopologyService(config, myself, platformModule.JobScheduler, logProvider, userLogProvider, remoteMembersResolver, ResolveStrategy(config, logProvider), monitors);

            life.Add(_topologyService);

            dependencies.SatisfyDependency(_topologyService);                 // for tests

            CoreBootstrapper coreBootstrapper = new CoreBootstrapper(databaseLayout, platformModule.PageCache, fileSystem, config, logProvider, platformModule.Monitors);

            SimpleStorage <ClusterId> clusterIdStorage = new SimpleFileStorage <ClusterId>(fileSystem, clusterStateDirectory, CLUSTER_ID_NAME, new ClusterId.Marshal(), logProvider);

            SimpleStorage <DatabaseName> dbNameStorage = new SimpleFileStorage <DatabaseName>(fileSystem, clusterStateDirectory, DB_NAME, new DatabaseName.Marshal(), logProvider);

            string dbName           = config.Get(CausalClusteringSettings.database);
            int    minimumCoreHosts = config.Get(CausalClusteringSettings.minimum_core_cluster_size_at_formation);

            Duration clusterBindingTimeout = config.Get(CausalClusteringSettings.cluster_binding_timeout);

            _clusterBinder = new ClusterBinder(clusterIdStorage, dbNameStorage, _topologyService, Clocks.systemClock(), () => sleep(100), clusterBindingTimeout, coreBootstrapper, dbName, minimumCoreHosts, platformModule.Monitors);
        }
示例#4
0
        /// <param name="config">
        /// @return </param>
        protected internal virtual PipelineWrapper CreatePipelineWrapper(Config config)
        {
            SecurePipelineWrapperFactory factory = new SecurePipelineWrapperFactory();
            Dependencies deps = new Dependencies();

            deps.SatisfyDependencies(new object[] { SslPolicyLoader.create(config, this.LogProvider) });
            return(factory.ForClient(config, deps, this.LogProvider, OnlineBackupSettings.ssl_policy));
        }
示例#5
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @SuppressWarnings("unchecked") public static org.neo4j.kernel.extension.DatabaseKernelExtensions instantiateKernelExtensions(java.io.File databaseDirectory, org.neo4j.io.fs.FileSystemAbstraction fileSystem, org.neo4j.kernel.configuration.Config config, org.neo4j.logging.internal.LogService logService, org.neo4j.io.pagecache.PageCache pageCache, org.neo4j.scheduler.JobScheduler jobScheduler, org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector recoveryCollector, org.neo4j.kernel.impl.factory.DatabaseInfo databaseInfo, org.neo4j.kernel.monitoring.Monitors monitors, org.neo4j.kernel.impl.core.TokenHolders tokenHolders)
        public static DatabaseKernelExtensions InstantiateKernelExtensions(File databaseDirectory, FileSystemAbstraction fileSystem, Config config, LogService logService, PageCache pageCache, JobScheduler jobScheduler, RecoveryCleanupWorkCollector recoveryCollector, DatabaseInfo databaseInfo, Monitors monitors, TokenHolders tokenHolders)
        {
            Dependencies deps = new Dependencies();

            deps.SatisfyDependencies(fileSystem, config, logService, pageCache, recoveryCollector, monitors, jobScheduler, tokenHolders);
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @SuppressWarnings("rawtypes") Iterable kernelExtensions = org.neo4j.helpers.Service.load(org.neo4j.kernel.extension.KernelExtensionFactory.class);
            System.Collections.IEnumerable kernelExtensions = Service.load(typeof(KernelExtensionFactory));
            KernelContext kernelContext = new SimpleKernelContext(databaseDirectory, databaseInfo, deps);

            return(new DatabaseKernelExtensions(kernelContext, kernelExtensions, deps, KernelExtensionFailureStrategies.ignore()));
        }
示例#6
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Before public void setup()
        public virtual void Setup()
        {
            Dependencies dependencies = new Dependencies();

            dependencies.SatisfyDependency(_checkPointer);
            StoreCopyCheckPointMutex storeCopyCheckPointMutex = new StoreCopyCheckPointMutex();

            when(_neoStoreDataSource.StoreCopyCheckPointMutex).thenReturn(storeCopyCheckPointMutex);
            when(_neoStoreDataSource.DependencyResolver).thenReturn(dependencies);
            PrepareStoreCopyRequestHandler subject = CreateHandler();

            _embeddedChannel = new EmbeddedChannel(subject);
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void shouldThrowOnLookupOnUnknownProvider()
        internal virtual void ShouldThrowOnLookupOnUnknownProvider()
        {
            // given
            IndexProvider           provider   = mock(typeof(IndexProvider));
            IndexProviderDescriptor descriptor = new IndexProviderDescriptor("provider", "1.2");

            when(provider.ProviderDescriptor).thenReturn(descriptor);
            Dependencies dependencies = new Dependencies();

            dependencies.SatisfyDependency(provider);

            // when
            DefaultIndexProviderMap defaultIndexProviderMap = CreateDefaultProviderMap(dependencies, descriptor);

            defaultIndexProviderMap.Init();
            assertThrows(typeof(IndexProviderNotFoundException), () => defaultIndexProviderMap.Lookup(new IndexProviderDescriptor("provider2", "1.2")));
        }
示例#8
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void buildDefaultContextWithDependencies() throws java.io.IOException
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void BuildDefaultContextWithDependencies()
        {
            SimpleLogVersionRepository logVersionRepository = new SimpleLogVersionRepository(2);
            SimpleTransactionIdStore   transactionIdStore   = new SimpleTransactionIdStore();
            Dependencies dependencies = new Dependencies();

            dependencies.SatisfyDependency(logVersionRepository);
            dependencies.SatisfyDependency(transactionIdStore);

            TransactionLogFilesContext context = builder(TestDirectory.databaseLayout(), _fileSystem).withDependencies(dependencies).buildContext();

            assertEquals(_fileSystem, context.FileSystem);
            assertNotNull(context.LogEntryReader);
            assertSame(LogFileCreationMonitor_Fields.NoMonitor, context.LogFileCreationMonitor);
            assertEquals(ByteUnit.mebiBytes(250), context.RotationThreshold.get());
            assertEquals(1, context.LastCommittedTransactionId);
            assertEquals(2, context.LogVersionRepository.CurrentLogVersion);
        }
示例#9
0
        protected internal override QueryExecutionEngine CreateEngine(Dependencies deps, GraphDatabaseAPI graphAPI)
        {
            GraphDatabaseCypherService queryService = new GraphDatabaseCypherService(graphAPI);

            deps.SatisfyDependency(queryService);

            DependencyResolver         resolver        = graphAPI.DependencyResolver;
            LogService                 logService      = resolver.ResolveDependency(typeof(LogService));
            Monitors                   monitors        = resolver.ResolveDependency(typeof(Monitors));
            Config                     config          = resolver.ResolveDependency(typeof(Config));
            CypherConfiguration        cypherConfig    = CypherConfiguration.fromConfig(config);
            CypherPlannerConfiguration plannerConfig   = cypherConfig.toCypherPlannerConfiguration(config);
            CypherRuntimeConfiguration runtimeConfig   = cypherConfig.toCypherRuntimeConfiguration();
            LogProvider                logProvider     = logService.InternalLogProvider;
            CommunityCompilerFactory   compilerFactory = new CommunityCompilerFactory(queryService, monitors, logProvider, plannerConfig, runtimeConfig);

            deps.SatisfyDependencies(compilerFactory);
            return(CreateEngine(queryService, config, logProvider, compilerFactory));
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void shouldNotSupportMultipleProvidersWithSameDescriptor()
        internal virtual void ShouldNotSupportMultipleProvidersWithSameDescriptor()
        {
            // given
            IndexProviderDescriptor descriptor = new IndexProviderDescriptor("provider", "1.2");
            IndexProvider           provider1  = mock(typeof(IndexProvider));

            when(provider1.ProviderDescriptor).thenReturn(descriptor);
            IndexProvider provider2 = mock(typeof(IndexProvider));

            when(provider2.ProviderDescriptor).thenReturn(descriptor);

            Dependencies dependencies = new Dependencies();

            dependencies.SatisfyDependency(provider1);
            dependencies.SatisfyDependency(provider2);

            // when
            assertThrows(typeof(System.ArgumentException), () => CreateDefaultProviderMap(dependencies, descriptor).init());
        }
示例#11
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Before public void setUp()
        public virtual void SetUp()
        {
            DataSourceManager  dataSourceManager = new DataSourceManager(Config.defaults());
            NeoStoreDataSource dataSource        = mock(typeof(NeoStoreDataSource));

            when(dataSource.DatabaseLayout).thenReturn(TestDirectory.databaseLayout());
            dataSourceManager.Register(dataSource);
            KernelData kernelData = new KernelData(_fs, mock(typeof(PageCache)), new File("storeDir"), Config.defaults(), dataSourceManager);

            Dependencies dependencies = new Dependencies();

            dependencies.SatisfyDependency(_clusterStateDirectory);
            dependencies.SatisfyDependency(_raftMachine);
            dependencies.SatisfyDependency(DatabaseInfo.CORE);

            when(dataSource.DependencyResolver).thenReturn(dependencies);
            ManagementData data = new ManagementData(new CausalClusteringBean(), kernelData, ManagementSupport.load());

            _ccBean = ( CausalClustering )(new CausalClusteringBean()).CreateMBean(data);
        }
示例#12
0
        //@Test
        public virtual void ClientSslEncryptionPoliciesThrowException()
        {
            // given
            SecurePipelineWrapperFactory pipelineWrapperFactory = CreateSecurePipelineWrapperFactory();

            // and
            Config config = Config.defaults();

            config.Augment(CausalClusteringSettings.ssl_policy, "cluster");

            // and
            LogProvider  logProvider  = NullLogProvider.Instance;
            Dependencies dependencies = null;

            // then
            ExpectedException.expectMessage("Unexpected SSL policy causal_clustering.ssl_policy is a string");

            // when
            pipelineWrapperFactory.ForClient(config, dependencies, logProvider, CausalClusteringSettings.ssl_policy);
        }
示例#13
0
        //@Test
        public virtual void ServerSslEncryptionPoliciesThrowException()
        {
            // given
            SecurePipelineWrapperFactory pipelineWrapperFactory = CreateSecurePipelineWrapperFactory();

            // and
            Config config = Config.defaults();

            config.Augment(OnlineBackupSettings.ssl_policy, "backup");

            // and
            LogProvider  logProvider  = NullLogProvider.Instance;
            Dependencies dependencies = null;

            // then
            ExpectedException.expectMessage("Unexpected SSL policy dbms.backup.ssl_policy is a string");

            // when
            pipelineWrapperFactory.ForServer(config, dependencies, logProvider, OnlineBackupSettings.ssl_policy);
        }
示例#14
0
        private RecordStorageEngine Get(FileSystemAbstraction fs, PageCache pageCache, IndexProvider indexProvider, DatabaseHealth databaseHealth, DatabaseLayout databaseLayout, System.Func <BatchTransactionApplierFacade, BatchTransactionApplierFacade> transactionApplierTransformer, Monitors monitors, LockService lockService)
        {
            IdGeneratorFactory    idGeneratorFactory          = new EphemeralIdGenerator.Factory();
            ExplicitIndexProvider explicitIndexProviderLookup = mock(typeof(ExplicitIndexProvider));

            when(explicitIndexProviderLookup.AllIndexProviders()).thenReturn(Iterables.empty());
            IndexConfigStore indexConfigStore = new IndexConfigStore(databaseLayout, fs);
            JobScheduler     scheduler        = _life.add(createScheduler());
            Config           config           = Config.defaults(GraphDatabaseSettings.default_schema_provider, indexProvider.ProviderDescriptor.name());

            Dependencies dependencies = new Dependencies();

            dependencies.SatisfyDependency(indexProvider);

            BufferingIdGeneratorFactory bufferingIdGeneratorFactory = new BufferingIdGeneratorFactory(idGeneratorFactory, Org.Neo4j.Kernel.impl.store.id.IdReuseEligibility_Fields.Always, new CommunityIdTypeConfigurationProvider());
            DefaultIndexProviderMap     indexProviderMap            = new DefaultIndexProviderMap(dependencies, config);
            NullLogProvider             nullLogProvider             = NullLogProvider.Instance;

            _life.add(indexProviderMap);
            return(_life.add(new ExtendedRecordStorageEngine(databaseLayout, config, pageCache, fs, nullLogProvider, nullLogProvider, mockedTokenHolders(), mock(typeof(SchemaState)), new StandardConstraintSemantics(), scheduler, mock(typeof(TokenNameLookup)), lockService, indexProviderMap, IndexingService.NO_MONITOR, databaseHealth, explicitIndexProviderLookup, indexConfigStore, new SynchronizedArrayIdOrderingQueue(), idGeneratorFactory, new BufferedIdController(bufferingIdGeneratorFactory, scheduler), transactionApplierTransformer, monitors, RecoveryCleanupWorkCollector.immediate(), OperationalMode.single)));
        }
示例#15
0
        //@Test
        public virtual void ClientAndServersWithoutPoliciesFail()
        {
            // given
            SecurePipelineWrapperFactory pipelineWrapperFactory = CreateSecurePipelineWrapperFactory();

            SslPolicyConfig policyConfig = new SslPolicyConfig("default");
            Config          config       = Config.defaults();

            // Setup SslPolicy
            config.augment(neo4j_home.name(), _home.AbsolutePath);
            config.Augment(policyConfig.BaseDirectory.name(), "certificates/default");

            // and
            LogProvider  logProvider  = NullLogProvider.Instance;
            Dependencies dependencies = null;

            // when
            // expectedException.expect( java.lang.NullPointerException.class );
            pipelineWrapperFactory.ForServer(config, dependencies, logProvider, CausalClusteringSettings.ssl_policy);
            pipelineWrapperFactory.ForClient(config, dependencies, logProvider, CausalClusteringSettings.ssl_policy);
            pipelineWrapperFactory.ForServer(config, dependencies, logProvider, OnlineBackupSettings.ssl_policy);
            pipelineWrapperFactory.ForClient(config, dependencies, logProvider, OnlineBackupSettings.ssl_policy);
        }
 private static DefaultIndexProviderMap CreateDefaultProviderMap(Dependencies dependencies, IndexProviderDescriptor descriptor)
 {
     return(new DefaultIndexProviderMap(dependencies, Config.defaults(GraphDatabaseSettings.default_schema_provider, descriptor.Name())));
 }
示例#17
0
        ///
        /// <param name="platformModule"> </param>
        /// <param name="discoveryServiceFactory"> </param>
        /// <param name="clusterStateDirectory"> </param>
        /// <param name="identityModule"> </param>
        /// <param name="dependencies"> </param>
        /// <param name="databaseLayout">
        /// @return </param>
        protected internal virtual ClusteringModule GetClusteringModule(PlatformModule platformModule, DiscoveryServiceFactory discoveryServiceFactory, ClusterStateDirectory clusterStateDirectory, IdentityModule identityModule, Dependencies dependencies, DatabaseLayout databaseLayout)
        {
            SslPolicyLoader sslPolicyFactory = ( SslPolicyLoader )dependencies.SatisfyDependency(SslPolicyLoader.create(this.Config, this.LogProvider));
            SslPolicy       sslPolicy        = sslPolicyFactory.GetPolicy(( string )this.Config.get(CausalClusteringSettings.SslPolicy));

            if (discoveryServiceFactory is SecureHazelcastDiscoveryServiceFactory)
            {
                (( SecureHazelcastDiscoveryServiceFactory )discoveryServiceFactory).SslPolicy = sslPolicy;
            }

            return(new ClusteringModule(discoveryServiceFactory, identityModule.Myself(), platformModule, clusterStateDirectory.Get(), databaseLayout));
        }
示例#18
0
 public virtual void SatisfyDependencies(Dependencies dependencies)
 {
     dependencies.SatisfyDependencies(_transactionCommitProcess, _kernel, _kernelTransactions, _fileListing);
 }
 public virtual void SatisfyDependencies(Dependencies dependencies)
 {
     dependencies.SatisfyDependencies(_checkPointer, _logFiles, _logFiles.LogFileInformation, _explicitIndexTransactionOrdering, _logicalTransactionStore, _logRotation, _appender);
 }
示例#20
0
        /// <param name="config"> </param>
        /// <param name="dependencies"> </param>
        /// <param name="logProvider"> </param>
        /// <param name="policyName">
        /// @return </param>
        public override PipelineWrapper ForClient(Config config, Dependencies dependencies, LogProvider logProvider, Setting <string> policyName)
        {
            SslPolicy policy = this.GetSslPolicy(config, dependencies, policyName);

            return(new SecureClientPipelineWrapper(policy));
        }
示例#21
0
        /// <param name="discoveryServiceFactory"> </param>
        /// <param name="dependencies"> </param>
        /// <param name="config"> </param>
        /// <param name="logProvider"> </param>
        protected internal virtual void ConfigureDiscoveryService(DiscoveryServiceFactory discoveryServiceFactory, Dependencies dependencies, Config config, LogProvider logProvider)
        {
            SslPolicyLoader sslPolicyFactory = ( SslPolicyLoader )dependencies.SatisfyDependency(SslPolicyLoader.create(config, logProvider));
            SslPolicy       clusterSslPolicy = sslPolicyFactory.GetPolicy(( string )config.Get(CausalClusteringSettings.ssl_policy));

            if (discoveryServiceFactory is SecureHazelcastDiscoveryServiceFactory)
            {
                (( SecureHazelcastDiscoveryServiceFactory )discoveryServiceFactory).SslPolicy = clusterSslPolicy;
            }
        }